(Réécrire la plupart de cette question car beaucoup de mes tests originaux ne sont pas pertinents à la lumière de nouvelles informations)
Je rencontre des problèmes avec les serveurs DNS Server 2012R2. Le plus grand effet secondaire de ces problèmes est que les e-mails Exchange ne passent pas. Échangez les requêtes pour les enregistrements AAAA avant d'essayer les enregistrements A. Lorsqu'il voit SERVFAIL pour l'enregistrement AAAA, il n'essaie même pas les enregistrements A, il abandonne simplement.
Pour certains domaines, lorsque j'interroge mes serveurs DNS Active Directory, j'obtiens SERVFAIL au lieu de NOERROR sans résultat.
J'ai essayé cela à partir de plusieurs contrôleurs de domaine Server 2012R2 différents qui exécutent DNS. L'un d'eux est un domaine entièrement séparé, sur un réseau différent derrière un pare-feu et une connexion Internet différents.
Deux adresses que je connais sont à l'origine de ce problème smtpgw1.gov.on.ca
etmxmta.owm.bell.net
J'utilise dig
sur une machine Linux pour tester cela (192.168.5.5 est mon contrôleur de domaine):
grant@linuxbox:~$ dig @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56328
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;smtpgw1.gov.on.ca. IN AAAA
;; Query time: 90 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Oct 21 14:09:10 EDT 2015
;; MSG SIZE rcvd: 46
Mais les requêtes sur un contrôleur du domaine public fonctionnent comme prévu:
grant@home-ssh:~$ dig @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 269
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 8192
;; QUESTION SECTION:
;smtpgw1.gov.on.ca. IN AAAA
;; Query time: 136 msec
;; SERVER: 4.2.2.1#53(4.2.2.1)
;; WHEN: Wed Oct 21 14:11:19 EDT 2015
;; MSG SIZE rcvd: 46
Comme je l'ai dit, j'ai essayé cela sur deux réseaux et domaines différents. L'un est un tout nouveau domaine, qui a définitivement tous les paramètres par défaut pour DNS. L'autre a été migré vers Server 2012, donc certains anciens paramètres de 2003/2008 peuvent avoir été transférés. J'obtiens les mêmes résultats sur les deux.
La désactivation d'EDNS avec le dmscnd /config /enableednsprobes 0
corrige. Je vois de nombreux résultats de recherche sur EDNS étant un problème dans Server 2003, mais pas beaucoup qui correspond à ce que je vois dans Server 2012. Aucun pare-feu n'a de problème avec EDNS. La désactivation d'EDNS ne devrait être qu'une solution de contournement temporaire - elle empêche l'utilisation de DNSSEC et peut entraîner d'autres problèmes.
J'ai également vu quelques messages sur des problèmes avec Server 2008R2 et EDNS, mais ces mêmes messages disent que les choses sont corrigées dans Server 2012, donc cela devrait fonctionner correctement.
J'ai également essayé d'activer le journal de débogage pour DNS. Je peux voir les paquets que j'attendais, mais cela ne me donne pas beaucoup d'informations sur la raison pour laquelle il retourne SERVFAIL. Voici les parties pertinentes du journal de débogage du serveur DNS:
Premier paquet - requête du client vers mon serveur DNS
16/10/2015 09:42:29 0974 PACKET 000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informations sur la question UDP à 000000EFF1BF01A0 Prise = 508 Adresse distante 172.16.0.254, port 50764 Time Query = 4556080, Queued = 0, Expire = 0 Longueur Buf = 0x0fa0 (4000) Longueur msg = 0x002e (46) Message: XID 0xa61e Drapeaux 0x0120 QR 0 (QUESTION) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 0 Z 0 CD 0 AD 1 RCODE 0 (NOERROR) QCOUNT 1 COMPTE 0 NSCOUNT 0 ARCOUNT 1 SECTION QUESTION: Décalage = 0x000c, compte RR = 0 Nom "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SECTION RÉPONSE: vide SECTION DE L'AUTORITÉ: vide SECTION SUPPLÉMENTAIRE: Décalage = 0x0023, compte RR = 0 Nom "(0)" TYPE OPT (41) CLASSE 4096 TTL 0 DLEN 0 LES DONNÉES Taille du tampon = 4096 Rcode Ext = 0 Rcode complet = 0 Version = 0 Drapeaux = 0
Deuxième paquet - requête de mon serveur DNS vers leur serveur DNS
16/10/2015 09:42:29 0974 PACKET 000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informations sur la question UDP au 000000EFF0A22160 Prise = 9812 Adresse distante 204.41.8.237, port 53 Time Query = 0, Queued = 0, Expire = 0 Longueur Buf = 0x0fa0 (4000) Longueur msg = 0x0023 (35) Message: XID 0x3e6c Drapeaux 0x0000 QR 0 (QUESTION) OPCODE 0 (QUERY) AA 0 TC 0 RD 0 RA 0 Z 0 CD 0 AD 0 RCODE 0 (NOERROR) QCOUNT 1 COMPTE 0 NSCOUNT 0 ARCOUNT 0 SECTION QUESTION: Décalage = 0x000c, compte RR = 0 Nom "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SECTION RÉPONSE: vide SECTION DE L'AUTORITÉ: vide SECTION SUPPLÉMENTAIRE: vide
Troisième paquet - réponse de leur serveur DNS (NOERROR)
16/10/2015 09:42:29 0974 PACKET 000000EFF2188100 UDP Rcv 204.41.8.237 3e6c RQ [0084 A NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informations de réponse UDP au 000000EFF2188100 Prise = 9812 Adresse distante 204.41.8.237, port 53 Time Query = 4556080, Queued = 0, Expire = 0 Longueur Buf = 0x0fa0 (4000) Longueur msg = 0x0023 (35) Message: XID 0x3e6c Drapeaux 0x8400 QR 1 (RÉPONSE) OPCODE 0 (QUERY) AA 1 TC 0 RD 0 RA 0 Z 0 CD 0 AD 0 RCODE 0 (NOERROR) QCOUNT 1 COMPTE 0 NSCOUNT 0 ARCOUNT 0 SECTION QUESTION: Décalage = 0x000c, compte RR = 0 Nom "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SECTION RÉPONSE: vide SECTION DE L'AUTORITÉ: vide SECTION SUPPLÉMENTAIRE: vide
Quatrième paquet - réponse de mon serveur DNS au client (SERVFAIL)
16/10/2015 09:42:29 0974 PACKET 000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informations de réponse UDP à 000000EFF1BF01A0 Prise = 508 Adresse distante 172.16.0.254, port 50764 Time Query = 4556080, Queued = 4556080, Expire = 4556083 Longueur Buf = 0x0fa0 (4000) Longueur msg = 0x002e (46) Message: XID 0xa61e Drapeaux 0x8182 QR 1 (RÉPONSE) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 1 Z 0 CD 0 AD 0 RCODE 2 (SERVFAIL) QCOUNT 1 COMPTE 0 NSCOUNT 0 ARCOUNT 1 SECTION QUESTION: Décalage = 0x000c, compte RR = 0 Nom "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SECTION RÉPONSE: vide SECTION DE L'AUTORITÉ: vide SECTION SUPPLÉMENTAIRE: Décalage = 0x0023, compte RR = 0 Nom "(0)" TYPE OPT (41) CLASSE 4000 TTL 0 DLEN 0 LES DONNÉES Taille du tampon = 4000 Rcode Ext = 0 Rcode complet = 2 Version = 0 Drapeaux = 0
Autres choses à noter:
- L'un des réseaux dispose d'un accès Internet IPv6 natif, l'autre non (mais la pile IPv6 est activée sur les serveurs avec les paramètres par défaut). Ne semble pas être un problème de réseau IPv6
- Cela n'affecte pas tous les domaines. Par exemple,
dig @192.168.5.5 -t AAAA serverfault.com
renvoie NOERROR et aucun résultat. Même chose pourgoogle.com
les adresses IPv6 de google retournées correctement. - J'ai essayé d'installer le correctif de KB3014171 , cela n'a fait aucune différence.
- La mise à jour de KB3004539 est déjà installée.
Modifier le 7 novembre 2015
J'ai configuré une autre machine Server 2012R2 n'appartenant pas à un domaine et j'ai installé le rôle de serveur DNS et testé avec la commande nslookup -type=aaaa smtpgw1.gov.on.ca localhost
. Il n'a PAS les mêmes problèmes.
Les deux machines virtuelles sont sur le même hôte et le même réseau, ce qui élimine tout problème de réseau / pare-feu. C'est maintenant au niveau du correctif ou d'être un membre de domaine / contrôleur de domaine qui fait la différence.
Modifier le 8 novembre 2015
Appliqué toutes les mises à jour, n'a fait aucune différence. Je suis allé jusqu'à vérifier s'il y avait des différences de configuration entre mon nouveau serveur de test et les paramètres DNS de mon contrôleur de domaine, et il y a - le contrôleur de domaine avait configuré des redirecteurs.
Maintenant, je suis sûr que j'ai essayé avec des redirecteurs et sans dans mes tests initiaux, mais je ne l'ai essayé qu'en utilisant dig
une machine Linux. J'obtiens des résultats légèrement différents avec et sans configuration de redirecteurs (essayé avec Google, OpenDNS, 4.2.2.1 et mes serveurs DNS ISP) lorsque j'utilise nslookup sur une machine Windows.
Avec un ensemble de transitaires, je reçois Server failed
.
Sans transitaire (il utilise donc des serveurs DNS racine), j'obtiens No IPv6 address (AAAA) records available for smtpgw1.gov.on.ca
.
Mais ce n'est toujours pas la même chose que ce que j'obtiens pour d'autres domaines qui n'ont pas d'enregistrements IPv6 - nslookup sur Windows ne renvoie simplement aucun résultat pour les autres domaines.
Avec ou sans redirecteurs, dig
s'affiche toujours SERVFAIL
pour ce nom lors de la requête sur mon serveur DNS Windows.
Il y a une petite différence entre le domaine problématique et d'autres qui semblent pertinents, même lorsque je n'implique pas mon serveur DNS Windows:
dig -t aaaa @8.8.8.8 smtpgw1.gov.on.ca
n'a pas de réponse et n'a pas de section d'autorité.
dig -t aaaa @8.8.8.8 serverfault.com
ne renvoie aucune réponse, mais a une section d'autorité. Il en va de même pour la plupart des autres domaines que j'essaie, quel que soit le résolveur que j'utilise.
Alors, pourquoi cette section d'autorité est-elle manquante et pourquoi le serveur DNS Windows la traite-t-il comme un échec alors que les autres serveurs DNS ne le font pas?