Comment puis-je résoudre les problèmes DNS quelque part au milieu de la récursivité?

13

J'ai un problème vraiment bizarre avec mon DNS. Mon nom de domaine ( strugee.net) est insoluble sur certains réseaux et résoluble sur d'autres.

Par exemple, sur mon réseau domestique (même réseau que celui du serveur):

% 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

Cependant, si je me connecte à un serveur que j'ai sur Digital Ocean, le domaine ne parvient pas à résoudre:

% 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

Mais , aller directement aux serveurs de noms faisant autorité fonctionne très bien:

% 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

Il est assez clair qu'il y a un problème avec un grand réseau quelque part qui ne parvient pas à résoudre mon domaine, mais je n'arrive pas à comprendre où. J'ai parcouru la digpage de manuel pour les options qui pourraient aider, mais je n'ai rien trouvé de particulièrement utile.

Je suis sur Namecheap à la fois comme registraire de domaine et hébergeur DNS. J'ai l'option DNSSEC activée. Je n'ai apporté aucune modification à mes paramètres DNS récemment.

Comment puis-je déboguer ce problème et trouver le serveur de noms incriminé?

strugee
la source
7
Merci d'avoir fourni le nom du domaine. Des problèmes comme celui-ci sont extrêmement difficiles à résoudre par nous sur Serverfault sans ces informations.
Andrew B
@AndrewB oh, je sais. Vous êtes les bienvenus, croyez-moi :)
strugee
2
@ La réponse d'AndrewB est logique et me semble correcte. Avant de le lire, j'ai remarqué que votre requête échouée utilisait un serveur de noms IPV6, tandis que celles qui réussissaient utilisaient IPV4. Souvent (ce n'est pas le cas dans ce cas), cela indique une mauvaise configuration IPV6, et il peut être utile d'utiliser explicitement les adresses IPV [4/6] numériques des serveurs de noms au lieu d'alias.
Guntram Blohm prend en charge Monica le
@Guntram Tant que nous gardons à l'esprit que nous avons reçu une réponse du serveur de noms, ce qui signifie que nous avons au moins une connectivité au serveur DNS. Je veux juste m'assurer que les gens ne s'en éloignent pas avec une mauvaise impression ... SERVFAILpeut indiquer un problème en amont, mais cela indique toujours un paquet de réponse.
Andrew B
@GuntramBlohm Vous êtes sur quelque chose. strugee.neta cinq enregistrements NS, mais aucun AAAAenregistrement de Acollage uniquement des enregistrements de collage. Le pire, c'est que ces cinq Aenregistrements de colle ne pointent que sur deux adresses IP différentes. Cela semble être une configuration assez fragile. Même si ce n'est pas la cause première du problème, c'est quelque chose à surveiller.
kasperd

Réponses:

24

Comment puis-je déboguer ce problème et trouver le serveur de noms incriminé?

daxd5 a offert de bons conseils de départ, mais la seule vraie réponse ici est que vous devez savoir comment penser comme un serveur DNS récursif. Étant donné qu'il existe de nombreuses erreurs de configuration au niveau de la couche faisant autorité qui peuvent entraîner une incohérence SERVFAIL, vous avez besoin d'un professionnel DNS ou d'outils de validation en ligne.

Quoi qu'il en soit, le but n'est pas de ne pas vous aider, mais je voulais m'assurer que vous comprenez qu'il n'y a pas de réponse concluante à cette question.


Dans votre cas particulier, j'ai remarqué qu'il strugee.netsemble s'agir d'une zone signée avec DNSSEC. Cela est évident à partir de la présence du DSet des RRSIGenregistrements dans la chaîne de référence:

# 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

Avant d'aller plus loin, nous devons vérifier si la signature est valide ou non. DNSViz est un outil fréquemment utilisé à cet effet, et il confirme qu'il y a bien des problèmes . Le rouge en colère sur l'image suggère que vous avez un problème, mais plutôt que de passer la souris sur tout, nous pouvons simplement développer les avis dans la barre latérale gauche:

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)

Le problème est clair: la signature de votre zone a expiré et les clés doivent être rafraîchies. La raison pour laquelle vous voyez des résultats incohérents est que la validation DNSSEC n'est pas activée sur tous les serveurs récursifs. Ceux qui valident abandonnent votre domaine, et pour ceux qui ne le font pas, c'est comme d'habitude.


Edit: l'infrastructure DNS de Comcast est connue pour implémenter la validation DNSSEC, et en tant que client, je peux confirmer que je vois également un SERVFAIL.

$ dig @75.75.75.75 strugee.net | grep status
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 2011
Andrew B
la source
Oups, j'ai eu stugee.netdans la sortie de fouille, qui est évidemment une faute de frappe. La partie DNSSEC de cette analyse a été effectuée par rapport au nom correct.
Andrew B
5

Bien que vous constatiez en effet que les serveurs de noms faisant autorité répondent correctement, vous devez suivre toute la chaîne de résolution DNS. Autrement dit, parcourez toute la hiérarchie DNS à partir des serveurs racine.

$ 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

Cela vérifie essentiellement que les serveurs DNS publics fonctionnent, et vous faites la même chose que votre résolveur DNS devrait faire. Vous devriez donc obtenir les mêmes réponses que ci-dessus sur votre serveur Digital Ocean, sauf si quelque chose ne va pas avec leur résolveur DNS:

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

Si les deux premières requêtes échouent, c'est le DNS du côté de Digital Ocean qui échoue. Vérifiez votre /etc/resolv.confet essayez d'interroger le serveur DNS secondaire. Si le secondaire fonctionne, changez simplement l'ordre des résolveurs et réessayez.

daxd5
la source