Zeitüberschreitungen bei der DNS-Auflösung mit mehreren Windows 10

11

Ich habe eine Reihe von Windows 10-Client-VMs mit mehreren Domänen, die einer Windows 2012 R2-Domäne beigetreten sind. Ethernet1 ist mit den Domänencontrollern (die keine Weiterleitungen oder keinen Zugriff auf die Stammserver haben) mit einem LAN verbunden. Ethernet2 ist mit einem LAN mit Internetzugang verbunden. Ethernet0 und Ethernet3 haben beide Medien getrennt. Abfragen nach Einträgen von den Domänencontrollern werden problemlos zurückgegeben, aber Abfragen nach Einträgen aus dem Internet dauern 10 Sekunden und wie lange die DNS-Server meines ISP brauchen, um eine Antwort zurückzugeben. Wenn ich die DNS-Server meines Internetdienstanbieters direkt über nslookupden Namen abfrage, wird diese sofort aufgelöst (<1 Sekunde). Wenn ich nur nslookupohne Angabe eines DNS-Servers ausgeführt werde, läuft die Abfrage ab und der Name wird nie aufgelöst. Wenn ich versuche, den DNS-Namen zu pingen Es dauert> 10 Sekunden, bis der Name aufgelöst ist.

Ich habe mich in Technet umgesehen, aber unter Windows 10 scheint es noch keine Dokumentation zu geben. Das Beste, was ich gefunden habe, ist:

http://blogs.technet.com/b/networking/archive/2009/06/26/dns-client-resolver-behavior.aspx http://blogs.technet.com/b/stdqry/archive/2011/12 /15/dns-clients-and-timeouts-part-2.aspx

Das heißt, ich sollte erwarten, dass mein Client den primären DNS-Server nach Ethernet1 abfragt, 1 Sekunde auf die Antwort auf das Zeitlimit wartet und dann sowohl den sekundären DNS-Server nach Ethernet1 als auch den primären DNS-Server nach Ethernet2 abfragt, aber dies scheint nicht der Fall zu sein geschehen. In der Dokumentation heißt es weiter, dass nach 10 Sekunden (und mehr als 3 Runden DNS-Abfragen mit längeren Zeitüberschreitungen) die DNS-Auflösung für alle Adapter vollständig fehlschlagen würde, das Verhalten des Clients jedoch den Eindruck erweckt, dass es 10 Sekunden dauert, bevor es überhaupt versucht wird Verwenden Sie die DNS-Server für den zweiten Adapter.

Wenn ich (oder Sie) Wireshark nicht öffnen und an der Leitung schnüffeln oder blind ändern, HKLM\System\CurrentControlSet\Services\dnscache\Parameters\DNSQueryTimeoutsweiß jemand, wie sich Windows 10 verhalten soll und was noch wichtiger ist, wie ich das Verhalten konfigurieren kann? Ich bin bereit, mit einer Auflösungszeit von ~ 1 Sekunde zu leben, aber 10 Sekunden sind ziemlich brutal.

ipconfig

Ethernet adapter Ethernet1:

   Connection-specific DNS Suffix  . : intranet.mydomain.net
   Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection #2
   Physical Address. . . . . . . . . : 00-0C-29-CC-E8-93
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::999b:3e21:749b:6f55%7(Preferred)
   IPv4 Address. . . . . . . . . . . : 10.2.0.20(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   Lease Obtained. . . . . . . . . . : Sunday, September 6, 2015 8:17:00 AM
   Lease Expires . . . . . . . . . . : Sunday, September 13, 2015 8:17:00 AM
   Default Gateway . . . . . . . . . :
   DHCP Server . . . . . . . . . . . : 10.2.0.2
   DHCPv6 IAID . . . . . . . . . . . : 83889193
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1D-74-AB-6A-00-0C-29-CC-E8-89
   DNS Servers . . . . . . . . . . . : 10.2.0.1
                                       10.2.0.2
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Ethernet2:

   Connection-specific DNS Suffix  . : internet.mydomain.net
   Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection #3
   Physical Address. . . . . . . . . : 00-0C-29-CC-E8-9D
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::944:ded1:dc53:cec4%6(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.1.116(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Sunday, September 6, 2015 8:17:04 AM
   Lease Expires . . . . . . . . . . : Monday, September 7, 2015 8:17:04 AM
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 83889193
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1D-74-AB-6A-00-0C-29-CC-E8-89
   DNS Servers . . . . . . . . . . . : 75.75.75.75
                                       75.75.76.76
                                       8.8.8.8
   NetBIOS over Tcpip. . . . . . . . : Enabled

nslookup

C:\Users\username>nslookup www.google.com 75.75.75.75
Server:  cdns01.comcast.net
Address:  75.75.75.75

Non-authoritative answer:
Name:    www.google.com
Addresses:  2607:f8b0:4001:c07::69
          74.125.196.106
          74.125.196.104
          74.125.196.147
          74.125.196.105
          74.125.196.99
          74.125.196.103


C:\Users\username>nslookup www.google.com
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  10.2.0.1

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Request to UnKnown timed-out

Aktualisieren

Für den Fall, dass sich jemand anderes wundert, habe ich eine Win7 SP1-VM (keine Patches) mit derselben Netzwerkadapterkonfiguration in die Domäne aufgenommen, sie in dieselbe Organisationseinheit wie die anderen VMs verschoben und die Gruppenrichtlinie auf dem Client für alle Fälle aktualisiert. Es ist in der Lage, DNS-Abfragen sowohl von den DNS-Servern des DC als auch von meinen ISPs sofort zu lösen. Es sieht also so aus, als wäre dies ein spezifisches Verhalten für den Windows 10-DNS-Client.

Update 2

Die Dinge werden also seltsamer. Es sieht so aus, als würde Win10 die Abfragen standardmäßig parallel ausgeben, aber die Antwort wird erst nach Ablauf aller Abfragen an den angeforderten Prozess weitergeleitet. Und aus irgendeinem Grund funktioniert der DNS-Server auf meinem 2. Domänencontroller nicht. Weiß jemand, wie man dieses Verhalten deaktiviert?

Wireshark Packet Trace

Matt
quelle
Werfen Sie einen Blick auf diese Frage: superuser.com/questions/966017/... haarymc wies darauf hin , dass die Windows - 10 DNS - Resolver erheblich geändert und weist darauf hin , einige mögliche Lösungen wurde.
Brandon Xavier
Ich würde mit DisableSmartNameResolution beginnen, das erwähnt wurde.
Brandon Xavier
Brandon, es sieht so aus, als hätte es funktioniert, DisableSmartNameResolution auf 1 zu setzen (anstatt auf 0, wie vom Link empfohlen)! Wenn Sie es als Antwort posten möchten, werde ich den Repräsentanten vergeben. Vielen Dank!
Matt
LOL, so viel Projektion. Seien Sie wütend, dass Brandon Xavier das Problem hier gefunden hat, die +100 Wiederholung erhält, wenn er seinen Kommentar als Antwort erneut veröffentlicht, und dass Sie sich nicht die Mühe machen konnten, Ihre eigenen Zitate zu lesen.
Matt
1
Hier ist ein weiterer guter Link zu dieser neuen Funktion, und wie es ändert sich von Windows - 8.1 auf Windows 10. medium.com/@ValdikSS/...
GuitarPicker

Antworten:

11

Microsoft hat in Windows 10 den DNS-Resolver grundlegend geändert oder neu geschrieben.

Die größte Änderung bestand darin, DNS-Abfragen parallel an alle Adapter zu senden und dann die erste Antwort zu erhalten. Leider enthält der neue Code Fehler und Auslassungen, und es scheint, dass er nicht die erste Antwort, sondern auf alle Antworten wartet. Wenn bei einer der DNS-Abfragen eine Zeitüberschreitung auftritt, bedeutet dies eine Wartezeit von 10 Sekunden, bevor der DNS aufgelöst wird.

Dieser Fehler wird zweifellos in einem zukünftigen Update von Windows 10 behoben. Bis dahin sind die folgenden Registrierungsänderungen vorhanden, um das Verhalten so weit wie möglich auf das der vorherigen Windows-Versionen zurückzuführen.

DisableSmartNameResolution (DWORD)

Im Registrierungsschlüssel HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient.
Der Wert ist 1 zum Deaktivieren und 0 zum Aktivieren der intelligenten Auflösung.
Aus Deaktivieren Sie die intelligente Multi-Homed-Namensauflösung :

Gibt an, dass ein DNS-Client mit mehreren Standorten die Namensauflösung in allen Netzwerken optimieren soll. Die Einstellung verbessert die Leistung, indem parallele lokale Multicast-Namensauflösung (LLMNR) für DNS-Verbindungen und NetBIOS über TCP / IP-Abfragen (NetBT) in allen Netzwerken ausgegeben werden. Für den Fall, dass mehrere positive Antworten empfangen werden, wird anhand der Netzwerkbindungsreihenfolge bestimmt, welche Antwort akzeptiert werden soll. Wenn Sie diese Richtlinieneinstellung aktivieren, führt der DNS-Client keine Optimierungen durch. DNS-Abfragen werden zuerst in allen Netzwerken ausgegeben. LLMNR-Abfragen werden ausgegeben, wenn die DNS-Abfragen fehlschlagen, gefolgt von NetBT-Abfragen, wenn LLMNR-Abfragen fehlschlagen. Wenn Sie diese Richtlinieneinstellung deaktivieren oder wenn Sie diese Richtlinieneinstellung nicht konfigurieren, wird die Namensauflösung beim Ausgeben von DNS-LLMNR- und NetBT-Abfragen optimiert.

DisableParallelAandAAAA (DWORD)

Im Registrierungsschlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters.
Der Wert ist 0 zum Aktivieren, 1 zum Deaktivieren der parallelen Ausführung von DNS A- und AAAA-Abfragen auf allen konfigurierten DNS-Servern, wobei die schnellste Antwort theoretisch zuerst akzeptiert wird.

harrymc
quelle
1
Ich wollte nur hinzufügen, dass ich auf Win 10.0.10586 bin und HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClientnicht existiert. Auch DisableParallelAandAAAAexistiert nicht, aber die Schlüssel existieren, so dass man sie hinzufügen kann.
Mahdi
Dies hat das VPN-Split-DNS-Problem unter Windows 10 gelöst. Wenn eine Verbindung zu einem VPN (dh über einen Cisco-Client) hergestellt wird, wird der DNS des VPN aufgrund dieser beiden Funktionen nur teilweise verwendet. Durch Deaktivieren dieser beiden Funktionen (Smart Name Resolution und parallele DNS-Abfragen) können die DNS des VPN zuverlässig verwendet werden. Außerdem wird das Problem "DNS-Leck" behoben, das in einem unsicheren / nicht vertrauenswürdigen Wi-Fi-Netzwerk auftritt, z. B. in einem Café mit Windows 10. Ihre DNS-Abfragen werden jetzt über den VPN gesendet, anstatt manchmal in das Café zu gehen DNS. Vielen Dank für die Bereitstellung dieser Lösung!
Truemedia
2
Handliche PowerShell-Version für alle, die dies treffen (wir sind bei Stack Exchange): Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\DNSClient" -Name DisableSmartNameResolution -Value 1 -Type DWordundSet-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" -Name DisableParallelAandAAAA -Value 1 -Type DWord
Nick Craver
1
Diese Registrierungsschlüssel hatten keine Auswirkung auf mein Windows 10, was funktionierte war:Press WIN+R and write gpedit.msc Expand Administrative templates Expand Network Click DNS-client Double-click "Turn off smart multi-homed name resolution" Check the box called "Enabled" Click "Apply all" and then "OK"
Julien
1

Quelle

SMHNR wurde für Windows 10 im Vergleich zu Windows 8 geringfügig geändert. In Windows 10 können Sie es nicht über die Registrierung deaktivieren.

Unter Windows 10 können Sie die Funktion mithilfe von "Lokale Richtlinien" deaktivieren. Führen Sie dazu die folgenden Schritte aus:

  • Drücken Sie WIN + R und schreiben Sie gpedit.msc
  • Erweitern Sie Administrative Vorlagen Erweitern Sie Netzwerk
  • Klicken Sie auf DNS-Client. Doppelklicken Sie auf "Smart Multi-Homed Name Resolution deaktivieren".
  • Aktivieren Sie das Kontrollkästchen "Aktiviert".
  • Klicken Sie auf "Alle anwenden" und dann auf "OK".
Julien
quelle
Julien, ich sage nicht, dass die Pfade in der Registrierung nicht verschoben wurden, aber wenn Sie die Einstellungen in der lokalen Richtlinie aktualisieren, nimmt die überwiegende Mehrheit Ihrer Aktivitäten Registrierungsänderungen vor (per Editor für lokale Richtlinien). Tatsächlich ist dies eine sehr häufige Methode, um herauszufinden, welcher Teil der Registrierung für eine bestimmte Einstellung direkt geändert werden muss. Führen Sie ProcMon (von Sysinternals) aus, nehmen Sie die Änderung vor und bestimmen Sie dann, welcher effektive Registrierungspfad in welcher Struktur von was zu was aktualisiert wurde.
thepip3r
0

Da Ihre Domain-DNS-Server keinen Zugriff auf die Root-Server haben und keine Weiterleitung eingerichtet ist, müssen Sie Ihre nicht erreichbaren Root-Hinweise vom DNS-Server löschen, um die Abfragen nach Adressen zu beschleunigen, die nicht gehostet werden. Dies sollte die Zeitüberschreitungen beschleunigen und wiederum die Clientauflösung beschleunigen. Andernfalls wird weiterhin versucht, die Root-Server zu kontaktieren, bevor Sie aufgeben.

Das Verfahren zum Entfernen von Stammhinweisen in 2008 R2 ist hier dokumentiert .

GuitarPicker
quelle
Vielen Dank für die Antwort, aber diese Frage bezog sich auf das Verhalten der Clients und nicht auf den DNS-Server des Domänencontrollers. "... weiß jemand, wie sich Windows 10 verhalten soll und was noch wichtiger ist, wie ich das konfigurieren kann." Verhalten "
Matt
Meinetwegen. Es klang, als würden sich die Clients aufgrund einer nicht optimalen Konfiguration so verhalten. Haben Sie Nicht-Windows 10-Clients, die sich anders verhalten?
GuitarPicker
Nein, ich habe andere Win10-VM-Clients, die Ethernet3 (VPN-basierter Internetzugang und DNS-Server 1.2.3.4) anstelle von Ethernet2 angeschlossen haben, und sie verhalten sich gleich. Und wie würde ein Multihomed-Client mit DNS-Servern für beide Netzwerke jemals als nicht optimal angesehen werden?
Matt
1
GuitarPicker, ich habe Ihren Nicht-Win10-Client-Vorschlag ausprobiert und es sieht so aus, als wäre dies ein spezifisches Verhalten für Windows 10.
Matt
Die Antwort von @ harrymc sieht so aus, als würde sie sich um die Dinge auf der Client-Seite kümmern. Ich habe es tatsächlich gefunden, nachdem ich Ihren Kommentar gelesen und seine Antwort gelesen habe. Microsoft ist überraschend leise bei der Dokumentation. Meine Lösung könnte Ihnen die Auflösungszeit für alle Kunden etwas verlängern, aber seine Antwort würde den Unterschied zwischen den Kunden erklären.
GuitarPicker