Server 2012R2 DNS-Server, der SERVFAIL für einige AAAA-Abfragen zurückgibt

17

(Das Umschreiben des größten Teils dieser Frage, da viele meiner ursprünglichen Tests angesichts neuer Informationen irrelevant sind.)

Ich habe Probleme mit den DNS-Servern von Server 2012R2. Der größte Nebeneffekt dieser Probleme ist, dass Exchange-E-Mails nicht durchlaufen werden. Tauschen Sie Abfragen gegen AAAA-Datensätze aus, bevor Sie A-Datensätze testen. Wenn es SERVFAIL für den AAAA-Datensatz sieht, versucht es nicht einmal A-Datensätze, es gibt einfach auf.

Bei einigen Domains erhalte ich beim Abfragen von Active Directory-DNS-Servern SERVFAIL anstelle von NOERROR ohne Ergebnisse.

Ich habe dies von mehreren verschiedenen Server 2012R2-Domänencontrollern versucht, auf denen DNS ausgeführt wird. Eine davon ist eine völlig separate Domain in einem anderen Netzwerk hinter einer anderen Firewall und Internetverbindung.

Zwei Adressen, die ich kenne, sind smtpgw1.gov.on.caundmxmta.owm.bell.net

Ich habe dies digauf einem Linux-Computer getestet (192.168.5.5 ist mein Domänencontroller):

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

Aber Abfragen gegen einen Public Domain Controller funktionieren wie erwartet:

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

Wie gesagt, ich habe dies in zwei verschiedenen Netzwerken und Domänen versucht. Eine ist eine brandneue Domain, die definitiv alle Standardeinstellungen für DNS hat. Der andere wurde auf Server 2012 migriert, sodass einige alte Einstellungen aus 2003/2008 möglicherweise übernommen wurden. Ich erhalte bei beiden die gleichen Ergebnisse.

Deaktivieren von EDNS mit dmscnd /config /enableednsprobes 0behebt es. Ich sehe viele Suchergebnisse zu EDNS als Problem in Server 2003, aber nicht viele, die dem entsprechen, was ich in Server 2012 sehe. Weder die Firewall hat ein Problem mit EDNS. Das Deaktivieren von EDNS sollte jedoch nur eine vorübergehende Problemumgehung sein - es verhindert die Verwendung von DNSSEC und kann andere Probleme verursachen.

Ich habe auch einige Posts zu Problemen mit Server 2008R2 und EDNS gesehen, aber in denselben Posts heißt es, dass die Probleme in Server 2012 behoben wurden, sodass sie ordnungsgemäß funktionieren sollten.

Ich habe auch versucht, das Debug-Protokoll für DNS zu aktivieren. Ich kann die Pakete sehen, die ich erwartet habe, aber es gibt mir nicht viel Aufschluss darüber, warum SERVFAIL zurückgegeben wird. Hier sind die relevanten Teile des DNS-Server-Debug-Protokolls:

Erstes Paket - Abfrage vom Client an meinen DNS-Server

16.10.2015 9:42:29 0974 PAKET 000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
UDP-Frageninfo unter 000000EFF1BF01A0
  Sockel = 508
  Remote-Adresse 172.16.0.254, Port 50764
  Zeitabfrage = 4556080, Warteschlange = 0, Ablaufdatum = 0
  Buf-Länge = 0x0fa0 (4000)
  Nachrichtenlänge = 0x002e (46)
  Botschaft:
    XID 0xa61e
    Flags 0x0120
      QR 0 (FRAGE)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 1
      RA 0
      Z 0
      CD 0
      AD 1
      RCODE 0 (NOERROR)
    QCOUNT 1
    KONTO 0
    NSCOUNT 0
    ARCOUNT 1
    FRAGE ABSCHNITT:
    Offset = 0x000c, RR count = 0
    Name "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      Menge AAAA (28)
      QKLASSE 1
    ANTWORT ABSCHNITT:
      leeren
    BEHÖRDEN ABSCHNITT:
      leeren
    ZUSÄTZLICHER ABSCHNITT:
    Offset = 0x0023, RR count = 0
    Name "(0)"
      TYP OPT (41)
      KLASSE 4096
      TTL 0
      DLEN 0
      DATEN   
        Puffergröße = 4096
        Rcode Ext = 0
        Rcode Full = 0
        Version = 0
        Flags = 0

Zweites Paket - Abfrage von meinem DNS-Server an dessen DNS-Server

16.10.2015 9:42:29 0974 PAKET 000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
UDP-Frageninfo unter 000000EFF0A22160
  Sockel = 9812
  Remote-Adresse 204.41.8.237, Port 53
  Zeitabfrage = 0, Warteschlange = 0, Ablaufdatum = 0
  Buf-Länge = 0x0fa0 (4000)
  Nachrichtenlänge = 0x0023 (35)
  Botschaft:
    XID 0x3e6c
    Flags 0x0000
      QR 0 (FRAGE)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 0
      RA 0
      Z 0
      CD 0
      AD 0
      RCODE 0 (NOERROR)
    QCOUNT 1
    KONTO 0
    NSCOUNT 0
    ARCOUNT 0
    FRAGE ABSCHNITT:
    Offset = 0x000c, RR count = 0
    Name "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      Menge AAAA (28)
      QKLASSE 1
    ANTWORT ABSCHNITT:
      leeren
    BEHÖRDEN ABSCHNITT:
      leeren
    ZUSÄTZLICHER ABSCHNITT:
      leeren

Drittes Paket - Antwort von ihrem DNS-Server (NOERROR)

16.10.2015 9: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)
UDP-Antwortinfo unter 000000EFF2188100
  Sockel = 9812
  Remote-Adresse 204.41.8.237, Port 53
  Zeitabfrage = 4556080, Warteschlange = 0, Ablaufdatum = 0
  Buf-Länge = 0x0fa0 (4000)
  Nachrichtenlänge = 0x0023 (35)
  Botschaft:
    XID 0x3e6c
    Flags 0x8400
      QR 1 (ANTWORT)
      OPCODE 0 (QUERY)
      AA 1
      TC 0
      RD 0
      RA 0
      Z 0
      CD 0
      AD 0
      RCODE 0 (NOERROR)
    QCOUNT 1
    KONTO 0
    NSCOUNT 0
    ARCOUNT 0
    FRAGE ABSCHNITT:
    Offset = 0x000c, RR count = 0
    Name "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      Menge AAAA (28)
      QKLASSE 1
    ANTWORT ABSCHNITT:
      leeren
    BEHÖRDEN ABSCHNITT:
      leeren
    ZUSÄTZLICHER ABSCHNITT:
      leeren

Viertes Paket - Antwort von meinem DNS-Server an den Client (SERVFAIL)

16.10.2015 9:42:29 0974 PAKET 000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0)
UDP-Antwortinfo bei 000000EFF1BF01A0
  Sockel = 508
  Remote-Adresse 172.16.0.254, Port 50764
  Zeitabfrage = 4556080, Warteschlange = 4556080, Ablauf = 4556083
  Buf-Länge = 0x0fa0 (4000)
  Nachrichtenlänge = 0x002e (46)
  Botschaft:
    XID 0xa61e
    Flags 0x8182
      QR 1 (ANTWORT)
      OPCODE 0 (QUERY)
      AA 0
      TC 0
      RD 1
      RA 1
      Z 0
      CD 0
      AD 0
      RCODE 2 (SERVFAIL)
    QCOUNT 1
    KONTO 0
    NSCOUNT 0
    ARCOUNT 1
    FRAGE ABSCHNITT:
    Offset = 0x000c, RR count = 0
    Name "(7) smtpgw1 (3) gov (2) on (2) ca (0)"
      Menge AAAA (28)
      QKLASSE 1
    ANTWORT ABSCHNITT:
      leeren
    BEHÖRDEN ABSCHNITT:
      leeren
    ZUSÄTZLICHER ABSCHNITT:
    Offset = 0x0023, RR count = 0
    Name "(0)"
      TYP OPT (41)
      KLASSE 4000
      TTL 0
      DLEN 0
      DATEN   
        Puffergröße = 4000
        Rcode Ext = 0
        Rcode voll = 2
        Version = 0
        Flags = 0

Andere bemerkenswerte Dinge:

  • Eines der Netzwerke verfügt über einen nativen IPv6-Internetzugang, das andere nicht (der IPv6-Stapel ist jedoch auf den Servern mit den Standardeinstellungen aktiviert). Scheint kein IPv6-Netzwerkproblem zu sein
  • Es betrifft nicht alle Domänen. Beispielsweise wird dig @192.168.5.5 -t AAAA serverfault.comNOERROR und keine Ergebnisse zurückgegeben. Dasselbe gilt für google.comdie ordnungsgemäße Rückgabe der IPv6-Adressen von Google.
  • Versucht, Hotfix von KB3014171 zu installieren , machte keinen Unterschied.
  • Das Update von KB3004539 ist bereits installiert.

7. November 2015 bearbeiten

Ich habe einen anderen Nicht-Domänen-Server für 2012R2 eingerichtet, die DNS-Serverrolle installiert und mit dem Befehl getestet nslookup -type=aaaa smtpgw1.gov.on.ca localhost. Es hat nicht die gleichen Probleme.

Beide VMs befinden sich auf demselben Host und im selben Netzwerk, sodass keine Netzwerk- / Firewall-Probleme mehr auftreten. Es liegt nun entweder an der Patch-Ebene oder daran, ein Domänenmitglied / Domänencontroller zu sein, der den Unterschied ausmacht.

Bearbeiten 8. November 2015

Alle Updates angewendet, machte keinen Unterschied. Wir sind durchgegangen, um zu überprüfen, ob es Konfigurationsunterschiede zwischen meinem neuen Testserver und den DNS-Einstellungen meines Domänencontrollers gab, und zwar - der Domänencontroller hatte Weiterleitungen eingerichtet.

Jetzt bin ich sicher, dass ich es in meinen ersten Tests mit und ohne Weiterleitungen versucht habe, aber ich habe es nur mit digeinem Linux-Computer versucht . Wenn ich nslookup auf einem Windows-Computer verwende, werden mit und ohne Forwarder-Setup (mit Google, OpenDNS, 4.2.2.1 und meinen ISP-DNS-Servern ausprobiert) geringfügig unterschiedliche Ergebnisse erzielt.

Mit einem Forwarder-Set bekomme ich Server failed.

Ohne eine Weiterleitung (also mit Root-DNS-Servern) bekomme ich No IPv6 address (AAAA) records available for smtpgw1.gov.on.ca.

Dies ist jedoch immer noch nicht das Gleiche wie für andere Domains, die keine IPv6-Einträge haben - nslookup unter Windows gibt nur keine Ergebnisse für andere Domains zurück.

Mit oder ohne Spediteure, digzeigt nochSERVFAIL bei der Abfrage meines Windows-DNS-Servers nach diesem Namen angezeigt.

Es gibt einen kleinen Unterschied zwischen der Problemdomäne und anderen Domänen, der relevant erscheint, auch wenn ich meinen Windows-DNS-Server nicht einbeziehe:

dig -t aaaa @8.8.8.8 smtpgw1.gov.on.ca hat keine Antworten und keinen Autoritätsabschnitt.

dig -t aaaa @8.8.8.8 serverfault.comgibt keine Antworten zurück, verfügt jedoch über einen Berechtigungsabschnitt. Die meisten anderen Domänen, die ich versuche, auch, egal welchen Resolver ich verwende.

Warum fehlt dieser Autoritätsabschnitt, und warum wird er vom Windows-DNS-Server als Fehler behandelt, wenn andere DNS-Server dies nicht tun?

Gewähren
quelle
Führen Sie diese Tests vom Exchange-Server aus? Wenn nicht, würde ich vorschlagen, dies zu tun, damit Sie es aus der Sicht von Exchange sehen können. Möglicherweise möchten Sie versuchen, SMTPDiag auch vom Exchange-Server auszuführen. Ich würde vorschlagen, es während einer Netzwerkerfassung auf dem Exchange-Server auszuführen, damit Sie die Details der Netzwerk- / DNS-Aktivität anzeigen können. SMTPDiag ist ein altes Tool, aber es ist ein Befehlszeilentool, das keine Installation erfordert. Daher denke ich, dass es auf allen Versionen von Exchange funktionieren sollte. - Microsoft.com/en-us/download/details.aspx?id=11393
Joeqwerty
Einige Netzwerkgeräte erkennen EDNS-Pakete nicht und lehnen sie ab. Hat Ihr Netzwerkteam kürzlich ein neues Gerät / eine neue Einstellung eingeführt? Um diese Möglichkeit auszuschließen, versuchen Sie, den AAAA-Eintrag von google.com aufzulösen, und geben Sie eine IPv6-Adresse zurück.
Strongline
@ Strongline EDNS-Pakete kommen gut durch. AAAA-Eintrag für Google funktioniert, ebenso wie einige andere Websites, von denen ich weiß, dass IPv6 ausgeführt wird. Die einzige Chance, die kürzlich gemacht wurde, war, unseren letzten Server 2008R2 DC / DNS-Server loszuwerden und ihn durch 2012R2 zu ersetzen.
Grant
Ist IPv6 in Ihrer Umgebung in irgendeiner Weise deaktiviert?
Jim B
@JimB ist weder wirklich aktiviert noch deaktiviert ... Der IPv6-Stapel wird auf den Servern ausgeführt, da er standardmäßig aktiviert ist, unabhängig von der Standardkonfiguration. Gateway und Internetverbindung haben überhaupt kein IPv6.
Grant

Antworten:

3

Ich habe noch ein bisschen mehr in das Netzwerkgeschehen geschaut und etwas gelesen. Die Anforderung für den AAAA-Datensatz gibt eine SOA zurück, wenn sie nicht vorhanden ist. Es stellt sich heraus, dass die SOA für eine andere Domäne als die angeforderte bestimmt ist. Ich vermute, deshalb lehnt Windows die Antwort ab. Fordern Sie AAAA für mx.atomwide.com an. Antwort SOA für lgfl.org.uk. Ich werde sehen, ob wir mit diesen Informationen Fortschritte erzielen können. BEARBEITEN: Wenn Sie "Cache vor Verschmutzung schützen" vorübergehend deaktivieren, wird die Abfrage erfolgreich ausgeführt. Nicht ideal, beweist aber, dass es sich um einen zweifelhaften DNS-Eintrag handelt. RFC4074 ist auch eine gute Referenz - Intro und Section.

Shruti Chawla
quelle
Ich werde versuchen, dies heute in meiner Umgebung zu testen, aber ich denke, Sie könnten auf etwas stoßen!
Grant
Außerdem habe ich Ihren Link herausgeschnitten - Signaturen und Links außerhalb des Themas sind hier nicht zulässig, und ich möchte nicht, dass Ihre ansonsten ausgezeichnete Antwort dafür gelöscht wird.
Grant
0

Gemäß KB832223

Ursache

Dieses Problem tritt aufgrund der Erweiterungsmechanismen für DNS (EDNS0) -Funktionalität auf, die in Windows Server DNS unterstützt wird.

EDNS0 ermöglicht größere UDP-Paketgrößen (User Datagram Protocol). Einige Firewall-Programme erlauben jedoch möglicherweise keine UDP-Pakete, die größer als 512 Byte sind. Daher können diese DNS-Pakete von der Firewall blockiert werden.

Microsoft hat die folgende Auflösung:

Auflösung

Aktualisieren Sie das Firewall-Programm, um dieses Problem zu beheben und UDP-Pakete zu erkennen und zuzulassen, die größer als 512 Byte sind. Weitere Informationen hierzu erhalten Sie vom Hersteller Ihres Firewall-Programms.

Microsoft hat den folgenden Vorschlag, um das Problem zu umgehen:

Umgehung

Deaktivieren Sie die EDNS0-Funktion auf Windows-Basierten DNS-Servern, um dieses Problem umzugehen. Führen Sie dazu die folgende Aktion aus:

Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein und drücken Sie die Eingabetaste:

dnscmd /config /enableednsprobes 0

Hinweis Geben Sie in diesem Befehl eine 0 (Null) und nicht den Buchstaben "O" nach "enableednsprobes" ein.

Tim Penner
quelle
Ich habe diesen Artikel gesehen - die Firewalls, die ich getestet habe, bestehen große DNS-Pakete ohne Probleme, was sich darin zeigt, dass sie unter Linux perfekt funktionieren. Durch das Deaktivieren von edns wird die Verwendung von DNSSEC verhindert. Das Problem wird dadurch behoben, es ist jedoch keine gute Lösung.
Grant
Es tut mir leid, dass ich nicht wusste, dass Microsofts Richtlinien auch für Linux gelten würden. Aus Neugier haben Sie alle Microsoft Betriebssystem , das durch die Firewall funktioniert?
Tim Penner