Como posso resolver problemas de DNS em algum lugar no meio da recursão?

13

Eu tenho um problema muito estranho com o meu DNS. Meu nome de domínio ( strugee.net ) é insolúvel em algumas redes e pode ser resolvido de outras pessoas.

Por exemplo, na minha rede doméstica (mesma rede em que o servidor está):

% dig strugee.net

; <<>> DiG 9.10.3-P4 <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10086
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; Query time: 186 msec
;; SERVER: 205.171.3.65#53(205.171.3.65)
;; WHEN: Sat Apr 16 15:42:36 PDT 2016
;; MSG SIZE  rcvd: 56

No entanto, se eu fizer login em um servidor que possuo no Oceano Digital, o domínio não será resolvido:

% dig strugee.net      

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58551
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;strugee.net.           IN  A

;; Query time: 110 msec
;; SERVER: 2001:4860:4860::8844#53(2001:4860:4860::8844)
;; WHEN: Sat Apr 16 18:44:25 EDT 2016
;; MSG SIZE  rcvd: 40

Mas , indo diretamente para os servidores de nomes oficiais funciona muito bem:

% dig @dns1.registrar-servers.com strugee.net   

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @dns1.registrar-servers.com strugee.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30856
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; AUTHORITY SECTION:
strugee.net.        1800    IN  NS  dns3.registrar-servers.com.
strugee.net.        1800    IN  NS  dns4.registrar-servers.com.
strugee.net.        1800    IN  NS  dns2.registrar-servers.com.
strugee.net.        1800    IN  NS  dns1.registrar-servers.com.
strugee.net.        1800    IN  NS  dns5.registrar-servers.com.

;; Query time: 3 msec
;; SERVER: 216.87.155.33#53(216.87.155.33)
;; WHEN: Sat Apr 16 18:46:36 EDT 2016
;; MSG SIZE  rcvd: 172

Está bem claro que há um problema com alguma rede grande em algum lugar que não está conseguindo resolver meu domínio, mas não consigo descobrir onde. Eu usei o dig manpage para opções que podem ajudar, mas não achei nada particularmente útil.

Estou no Namecheap tanto como registrador de domínios quanto como hospedagem de DNS. Eu tenho a opção DNSSEC ativada. Não fiz alterações nas configurações de DNS recentemente.

Como posso depurar este problema e encontrar o servidor de nomes ofensivo?

    
por strugee 17.04.2016 / 00:51

2 respostas

24

How can I debug this problem and find the offending nameserver?

O daxd5 ofereceu bons conselhos iniciais, mas a única resposta real aqui é que você precisa saber como pensar como um servidor DNS recursivo. Como há várias configurações incorretas na camada autoritativa que podem resultar em um SERVFAIL inconsistente, você precisa de um profissional de DNS ou de ferramentas de validação on-line.

De qualquer forma, o objetivo não é evitar você, mas queria ter certeza de que você entende que não há uma resposta conclusiva para essa pergunta.

No seu caso em particular, notei que strugee.net parece ser uma zona assinada com o DNSSEC. Isso fica evidente pela presença dos registros DS e RRSIG na cadeia de referência:

# dig +trace +additional strugee.net
<snip>
strugee.net.            172800  IN      NS      dns2.registrar-servers.com.
strugee.net.            172800  IN      NS      dns1.registrar-servers.com.
strugee.net.            172800  IN      NS      dns3.registrar-servers.com.
strugee.net.            172800  IN      NS      dns4.registrar-servers.com.
strugee.net.            172800  IN      NS      dns5.registrar-servers.com.
strugee.net.            86400   IN      DS      16517 8 1 B08CDBF73B89CCEB2FD3280087D880F062A454C2
strugee.net.            86400   IN      RRSIG   DS 8 2 86400 20160423051619 20160416040619 50762 net. w76PbsjxgmKAIzJmklqKN2rofq1e+TfzorN+LBQVO4+1Qs9Gadu1OrPf XXgt/AmelameSMkEOQTVqzriGSB21azTjY/lLXBa553C7fSgNNaEXVaZ xyQ1W/K5OALXzkDLmjcljyEt4GLfcA+M3VsQyuWI4tJOng184rGuVvJO RuI=
dns2.registrar-servers.com. 172800 IN   A       216.87.152.33
dns1.registrar-servers.com. 172800 IN   A       216.87.155.33
dns3.registrar-servers.com. 172800 IN   A       216.87.155.33
dns4.registrar-servers.com. 172800 IN   A       216.87.152.33
dns5.registrar-servers.com. 172800 IN   A       216.87.155.33
;; Received 435 bytes from 192.41.162.30#53(l.gtld-servers.net) in 30 ms

Antes de prosseguirmos, precisamos verificar se a assinatura é válida ou não. DNSViz é uma ferramenta freqüentemente usada para este propósito, e confirma que existem problemas . O vermelho com raiva na imagem está sugerindo que você tem um problema, mas em vez de passar o mouse sobre tudo, basta expandir Avisos na barra lateral esquerda:

RRSIG strugee.net/A alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/MX alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/NS alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/SOA alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
RRSIG strugee.net/TXT alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
net to strugee.net: No valid RRSIGs made by a key corresponding to a DS RR were found covering the DNSKEY RRset, resulting in no secure entry point (SEP) into the zone. (216.87.152.33, 216.87.155.33, UDP_0_EDNS0_32768_4096)

O problema é claro: a assinatura na sua zona expirou e as chaves precisam ser atualizadas. A razão pela qual você está vendo resultados inconsistentes é porque nem todos os servidores recursivos têm a validação DNSSEC ativada. Aqueles que validam estão descartando seu domínio, e para aqueles que não o fazem, como de costume.

Editar: A infra-estrutura de DNS da Comcast é conhecida por implementar a validação do DNSSEC e, como um de seus clientes, posso confirmar que estou vendo um SERVFAIL também.

$ dig @75.75.75.75 strugee.net | grep status
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 2011
    
por 17.04.2016 / 01:40
5

Enquanto você realmente está vendo que os servidores de nomes oficiais estão respondendo corretamente, você precisa acompanhar toda a cadeia de resolução de DNS. Isto é, percorra toda a hierarquia do DNS a partir dos servidores raiz.

$ dig net NS
;; ANSWER SECTION:
net.            172800  IN  NS  c.gtld-servers.net.
net.            172800  IN  NS  f.gtld-servers.net.
net.            172800  IN  NS  k.gtld-servers.net.
;; snipped extra servers given
$ dig @c.gtld-servers.net strugee.net NS
;; AUTHORITY SECTION:
strugee.net.        172800  IN  NS  dns2.registrar-servers.com.
strugee.net.        172800  IN  NS  dns1.registrar-servers.com.
;; snipped extra servers again

Isso basicamente verifica se os servidores DNS públicos estão funcionando e se você está fazendo a mesma coisa que seu resolvedor de DNS deve estar fazendo. Então você deve estar recebendo as mesmas respostas acima em seu servidor do Oceano Digital, a menos que algo esteja errado com o seu resolvedor de DNS:

$ dig net NS
$ dig strugee.net NS
$ dig strugee.net

Se as duas primeiras consultas falharem, haverá falha no DNS do Oceano Digital. Verifique seu /etc/resolv.conf e tente consultar o servidor DNS secundário. Se o secundário funcionar, basta mudar a ordem dos resolvedores e tentar novamente.

    
por 17.04.2016 / 01:14