maxmoritz6
Goto Top

Windows 2012 R2 DC und DNS-Server liefert FORMERR bzw. SERVFAIL

Ich habe eine Domäne mit Windows 2012 R2 als DC und DNS-Server. Als Forwarder ist der Provider-DNS-Server eingerichtet. Immer wieder passiert es, dass die Clients(Windows 7) beim STarten eines Browsers die Startseite nicht öffnen können und eine Fehlermeldung anzeigen(www.google.de).
Nach Einschalten des Debugging im DNS-Server zeigt sich, dass der DNS-Server an den Forwarder eine andere Anfrage stellt, die dieser mit einem Fehler beantwortet. Nach eine gewissen Zeit klappt alles wieder korrekt, bis dieser Fehler wieder auftritt.
Kommunikation zwischen DNS-Server und Forwarder korrekt:
*
07.01.2016 08:24:32 006C PACKET 0000003770CDC160 UDP Snd 10.42.99.65 d06a Q [0001 D NOERROR] A (3)www(6)google(2)de(0)
UDP question info at 0000003770CDC160
Socket = 10652
Remote addr 10.42.99.65, port 53
Time Query=0, Queued=0, Expire=0
Buf length = 0x0fa0 (4000)
Msg length = 0x001f (31)
Message:
XID 0xd06a
Flags 0x0100
QR 0 (QUESTION)
OPCODE 0 (QUERY)
AA 0
TC 0
RD 1
RA 0
Z 0
CD 0
AD 0
RCODE 0 (NOERROR)
QCOUNT 1
ACOUNT 0
NSCOUNT 0
ARCOUNT 0
QUESTION SECTION:
Offset = 0x000c, RR count = 0
Name "(3)www(6)google(2)de(0)"
QTYPE A (1)
QCLASS 1
ANSWER SECTION:
empty
AUTHORITY SECTION:
empty
ADDITIONAL SECTION:
empty

07.01.2016 08:24:32 006C PACKET 000000377653A0E0 UDP Rcv 10.42.99.65 d06a R Q [8081 DR NOERROR] A (3)www(6)google(2)de(0)
UDP response info at 000000377653A0E0
Socket = 10652
Remote addr 10.42.99.65, port 53
Time Query=254111, Queued=0, Expire=0
Buf length = 0x0fa0 (4000)
Msg length = 0x00c1 (193)
Message:
XID 0xd06a
Flags 0x8180
QR 1 (RESPONSE)
OPCODE 0 (QUERY)
AA 0
TC 0
RD 1
RA 1
Z 0
CD 0
AD 0
RCODE 0 (NOERROR)
QCOUNT 1
ACOUNT 1
NSCOUNT 4
ARCOUNT 4
QUESTION SECTION:
Offset = 0x000c, RR count = 0
Name "(3)www(6)google(2)de(0)"
QTYPE A (1)
QCLASS 1
ANSWER SECTION:
Offset = 0x001f, RR count = 0
Name "[C00C](3)www(6)google(2)de(0)"
TYPE A (1)
CLASS 1
TTL 166
DLEN 4
DATA 216.58.213.227
AUTHORITY SECTION:
Offset = 0x002f, RR count = 0
Name "[C010](6)google(2)de(0)"
TYPE NS (2)
CLASS 1
TTL 84556
DLEN 16
DATA (3)ns3(6)google(3)com(0)
Offset = 0x004b, RR count = 1
Name "[C010](6)google(2)de(0)"
TYPE NS (2)
CLASS 1
TTL 84556
DLEN 6
DATA (3)ns4[C03F](6)google(3)com(0)
Offset = 0x005d, RR count = 2
Name "[C010](6)google(2)de(0)"
TYPE NS (2)
CLASS 1
TTL 84556
DLEN 6
DATA (3)ns2[C03F](6)google(3)com(0)
Offset = 0x006f, RR count = 3
Name "[C010](6)google(2)de(0)"
TYPE NS (2)
CLASS 1
TTL 84556
DLEN 6
DATA (3)ns1[C03F](6)google(3)com(0)
ADDITIONAL SECTION:
Offset = 0x0081, RR count = 0
Name "[C07B](3)ns1[C03F](6)google(3)com(0)"

Kommunikation zwischen DNS-Server und Forwarder fehlerbehaftet:
*
07.01.2016 10:13:04 2130 PACKET 000000376F628200 UDP Snd 10.42.99.65 619b Q [0001 D NOERROR] A (3)www(6)google(2)de(0)
UDP question info at 000000376F628200
Socket = 7944
Remote addr 10.42.99.65, port 53
Time Query=0, Queued=0, Expire=0
Buf length = 0x0fa0 (4000)
Msg length = 0x002a (42)
Message:
XID 0x619b
Flags 0x0100
QR 0 (QUESTION)
OPCODE 0 (QUERY)
AA 0
TC 0
RD 1
RA 0
Z 0
CD 0
AD 0
RCODE 0 (NOERROR)
QCOUNT 1
ACOUNT 0
NSCOUNT 0
ARCOUNT 1
QUESTION SECTION:
Offset = 0x000c, RR count = 0
Name "(3)www(6)google(2)de(0)"
QTYPE A (1)
QCLASS 1
ANSWER SECTION:
empty
AUTHORITY SECTION:
empty
ADDITIONAL SECTION:
Offset = 0x001f, RR count = 0
Name "(0)"
TYPE OPT (41)
CLASS 4000
TTL 32768
DLEN 0
DATA
Buffer Size = 4000
Rcode Ext = 0
Rcode Full = 0
Version = 0
Flags = 80 DO

07.01.2016 10:13:04 2130 PACKET 00000037743A0250 UDP Rcv 10.42.99.65 619b R Q [8181 DR FORMERR] A (3)www(6)google(2)de(0)
UDP response info at 00000037743A0250
Socket = 7944
Remote addr 10.42.99.65, port 53
Time Query=260623, Queued=0, Expire=0
Buf length = 0x0fa0 (4000)
Msg length = 0x002a (42)
Message:
XID 0x619b
Flags 0x8181
QR 1 (RESPONSE)
OPCODE 0 (QUERY)
AA 0
TC 0
RD 1
RA 1
Z 0
CD 0
AD 0
RCODE 1 (FORMERR)
QCOUNT 1
ACOUNT 0
NSCOUNT 0
ARCOUNT 1
QUESTION SECTION:
Offset = 0x000c, RR count = 0
Name "(3)www(6)google(2)de(0)"
QTYPE A (1)
QCLASS 1
ANSWER SECTION:
empty
AUTHORITY SECTION:
empty
ADDITIONAL SECTION:
Offset = 0x001f, RR count = 0
Name "(0)"
TYPE OPT (41)
CLASS 4000
TTL 32768
DLEN 0
DATA
Buffer Size = 4000
Rcode Ext = 0
Rcode Full = 1
Version = 0
Flags = 80 DO

Es zeigt sich, dass bei der Anfrage der Abschnitt:
ADDITIONAL SECTION:
Offset = 0x001f, RR count = 0
Name "(0)"
TYPE OPT (41)
CLASS 4000
TTL 32768
DLEN 0
DATA
Buffer Size = 4000
Rcode Ext = 0
Rcode Full = 0
Version = 0
Flags = 80 DO
zusätzlich vorhanden ist, die der Forwarder(ich habe schon einen anderen ausprobiert) mit "FORMERR" beantwortet. Das kann man auch mit nslookup direkt anzeigen. Der Browser und alles andere(Windowsupdate usw.) reagiert dann entsprechend.
Nach einem Neustart des DNS-Server Dienstes läuft erstmal alles korrekt, bis dann ein Ausfall kommt. Hin und wieder ist eine Kommunikation wieder möglich.

Ich vermute fast, dass der DNS-Server die Ursache ist. In der Konfiguration habe ich schon alles überprüft und keine Unstimmigkeit gefunden.

Hat jemand eine Idee?

MaxMoritz

Content-Key: 292449

Url: https://administrator.de/contentid/292449

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: AndiEoh
Lösung AndiEoh 07.01.2016, aktualisiert am 08.01.2016 um 09:56:54 Uhr
Goto Top
Hallo,

habt Ihr irgend eine Form von Firewall dazwischen die in den DNS Packeten rumschnüffelt. Es gibt eine Menge an "Sicherheitssoftware" die mit modernen DNS Records oder größer 512 Byte UDP nichts anfangen können oder diese schlicht kürzen. Auch beachten das viele Security Suites unter Windows genau das auch tun.

Du kannst mal diese Test hier machen : https://www.dns-oarc.net/oarc/services/replysizetest

Gruß

Andi
Mitglied: MaxMoritz6
MaxMoritz6 08.01.2016 um 10:01:18 Uhr
Goto Top
Hallo,
ganz verstehe ich die tests nicht.
In der Zeit, wo alles ok ist, habe ich mal jeweils drei test gemacht(1. Windows-DNS Server; 2. Firewall; 3. Provider DNS):
C:\Temp\BIND\BIND9.10.3-P2.x64>nslookup www.google.de
Server: 10.42.99.72
Address: 10.42.99.72#53

Non-authoritative answer:
Name: www.google.de
Address: 173.194.112.95
Name: www.google.de
Address: 173.194.112.87
Name: www.google.de
Address: 173.194.112.88
Name: www.google.de
Address: 173.194.112.79


C:\Temp\BIND\BIND9.10.3-P2.x64>nslookup www.google.de 10.42.99.65
Server: 10.42.99.65
Address: 10.42.99.65#53

Non-authoritative answer:
Name: www.google.de
Address: 173.194.112.95
Name: www.google.de
Address: 173.194.112.79
Name: www.google.de
Address: 173.194.112.88
Name: www.google.de
Address: 173.194.112.87


C:\Temp\BIND\BIND9.10.3-P2.x64>nslookup www.google.de 10.254.1.253
Server: 10.254.1.253
Address: 10.254.1.253#53

Non-authoritative answer:
Name: www.google.de
Address: 173.194.116.143
Name: www.google.de
Address: 173.194.116.152
Name: www.google.de
Address: 173.194.116.151
Name: www.google.de
Address: 173.194.116.159


C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.42.99.72 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.42.99.72 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 14354
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; Query time: 0 msec
;; SERVER: 10.42.99.72#53(10.42.99.72)
;; WHEN: Fri Jan 08 09:53:53 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 44


C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.42.99.65 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.42.99.65 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 14633
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; Query time: 0 msec
;; SERVER: 10.42.99.65#53(10.42.99.65)
;; WHEN: Fri Jan 08 09:54:02 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 44


C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.254.1.253 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.254.1.253 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 22027
;; flags: qr rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; Query time: 0 msec
;; SERVER: 10.254.1.253#53(10.254.1.253)
;; WHEN: Fri Jan 08 09:54:23 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 44

Komisch, dass da zweimal der "FORMERR" kam.

Einmal ist vom Windows-DNS-Server die folgende Ausgabe erfolgt:
C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.42.99.72 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.42.99.72 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26873
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; ANSWER SECTION:
rs.dns-oarc.net. 23 IN CNAME rst.x487.rs.dns-oarc.net.
rst.x487.rs.dns-oarc.net. 23 IN CNAME rst.x461.x487.rs.dns-oarc.net.
rst.x461.x487.rs.dns-oarc.net. 22 IN CNAME rst.x466.x461.x487.rs.dns-oarc.n
et.
rst.x466.x461.x487.rs.dns-oarc.net. 21 IN TXT "Tested at 2016-01-08 08:41:31 U
TC"
rst.x466.x461.x487.rs.dns-oarc.net. 21 IN TXT "194.25.108.49 DNS reply size li
mit is at least 487"
rst.x466.x461.x487.rs.dns-oarc.net. 21 IN TXT "194.25.108.49 sent EDNS buffer
size 512"

;; Query time: 46 msec
;; SERVER: 10.42.99.72#53(10.42.99.72)
;; WHEN: Fri Jan 08 09:41:19 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 274

Kannst du da bitte etwas mit anfangen?

Gruß, MaxMoritz
Mitglied: AndiEoh
AndiEoh 08.01.2016 um 17:39:22 Uhr
Goto Top
Zitat von @MaxMoritz6:

Hallo,
ganz verstehe ich die tests nicht.
In der Zeit, wo alles ok ist, habe ich mal jeweils drei test gemacht(1. Windows-DNS Server; 2. Firewall; 3. Provider DNS):
C:\Temp\BIND\BIND9.10.3-P2.x64>nslookup www.google.de
Server: 10.42.99.72
Address: 10.42.99.72#53

C:\Temp\BIND\BIND9.10.3-P2.x64>nslookup www.google.de 10.42.99.65
Server: 10.42.99.65
Address: 10.42.99.65#53

C:\Temp\BIND\BIND9.10.3-P2.x64>nslookup www.google.de 10.254.1.253
Server: 10.254.1.253
Address: 10.254.1.253#53


Die DNS Antwort für www.google.de ist recht klein, also kein echter Test. Bis du sicher das dein Provider Resolver die IPv4 10.254.1.253 hat? Das ist eine "interne" Adresse...


C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.42.99.72 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.42.99.72 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 14354
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; Query time: 0 msec
;; SERVER: 10.42.99.72#53(10.42.99.72)
;; WHEN: Fri Jan 08 09:53:53 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 44


Es werden große DNS UDP Packete angefragt bzw. signalisiert das es unterstützt wird, leider verhindert das irgend einer dazwischen. Ist im Windows DNS ein Forwarder eingetragen und wenn ja was?


C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.42.99.65 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.42.99.65 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 14633
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; Query time: 0 msec
;; SERVER: 10.42.99.65#53(10.42.99.65)
;; WHEN: Fri Jan 08 09:54:02 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 44


Die Firewall mag wohl keine EDNS0 Abfragen oder stört sich an etwas anderem. Was ist das für eine Firewall, Cisco??



C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.254.1.253 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.254.1.253 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 22027
;; flags: qr rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; Query time: 0 msec
;; SERVER: 10.254.1.253#53(10.254.1.253)
;; WHEN: Fri Jan 08 09:54:23 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 44

Geht natürlich auch nicht.


Komisch, dass da zweimal der "FORMERR" kam.


Ist die typische Antwort wenn Optionen verwendet werden mit denen der Gegenpart nix anfangen kann. Der Hersteller der Firewall mal fragen warum er DNS Packete kaputt optimiert. Eventuell dem Windows DNS Server als Workaround EDNS0 abschalten (https://support.microsoft.com/de-de/kb/832223).


Einmal ist vom Windows-DNS-Server die folgende Ausgabe erfolgt:
C:\Temp\BIND\BIND9.10.3-P2.x64>dig @10.42.99.72 rs.dns-oarc.net txt

; <<>> DiG 9.10.3-P2 <<>> @10.42.99.72 rs.dns-oarc.net txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26873
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;rs.dns-oarc.net. IN TXT

;; ANSWER SECTION:
rs.dns-oarc.net. 23 IN CNAME rst.x487.rs.dns-oarc.net.
rst.x487.rs.dns-oarc.net. 23 IN CNAME rst.x461.x487.rs.dns-oarc.net.
rst.x461.x487.rs.dns-oarc.net. 22 IN CNAME rst.x466.x461.x487.rs.dns-oarc.n
et.
rst.x466.x461.x487.rs.dns-oarc.net. 21 IN TXT "Tested at 2016-01-08 08:41:31 U
TC"
rst.x466.x461.x487.rs.dns-oarc.net. 21 IN TXT "194.25.108.49 DNS reply size li
mit is at least 487"
rst.x466.x461.x487.rs.dns-oarc.net. 21 IN TXT "194.25.108.49 sent EDNS buffer
size 512"

;; Query time: 46 msec
;; SERVER: 10.42.99.72#53(10.42.99.72)
;; WHEN: Fri Jan 08 09:41:19 Mitteleuropõische Zeit 2016
;; MSG SIZE rcvd: 274


Wie befürchtet, 512Byte UDP geht, mehr wohl nicht.

Kannst du da bitte etwas mit anfangen?

Frag mal den Firewall Hersteller...

Gruß

Andi
Mitglied: MaxMoritz6
MaxMoritz6 13.01.2016 um 09:30:03 Uhr
Goto Top
Nach einigen recherchen mit dem Provider, haben wir festgestellt, dass es an EDNS0 liegt. Nach der Abschaltung bei den Windows 2012R2 Servern klappt es jetzt wunderbar.
Die Firewalls waren wohl nicht die Ursache.
Der Provider meint, dass es an dem "Load Balancing" liegt. Dort sind zwei DNS-Server installiert und die IP 10.254.1.253 ist nur die Adresse der Firewall davor. Unsere "alten" 2003R2-Server hatten keine Probleme, da dort standartmäßig EDNS0 deaktiviert ist.

Vielen Dank!

MfG
Max Moritz