Timeout di risoluzione DNS Windows 10 multihomed


11

Ho un numero di VM client Windows 10 multihomed unite a un dominio Windows 2012 R2. Ethernet1 è connessa a una LAN con i controller di dominio (che non dispongono di server d'inoltro o accesso ai server root), Ethernet2 è connessa a una LAN con accesso a Internet, Ethernet0 ed Ethernet3 hanno entrambi i loro supporti disconnessi. Le query per i record dai controller di dominio vengono restituite correttamente, ma le query per i record da Internet richiedono 10 secondi più il tempo impiegato dai server DNS del mio ISP per restituire una risposta. Se eseguo una query sui server DNS del mio ISP direttamente tramite nslookupil nome viene risolto prontamente (<1 secondo), se eseguo nslookupsenza specificare un server DNS la query scade e il nome non viene mai risolto, e se provo a eseguire il ping del nome DNS esso richiede> 10 secondi prima che il nome venga risolto.

Ho guardato intorno a Technet, ma non sembra esserci ancora alcuna documentazione su Windows 10. Il migliore che ho trovato è:

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

Ciò significa che dovrei aspettarmi che il mio client esegua una query sul server DNS primario per Ethernet1, attenda 1 secondo per la risposta al timeout e quindi esegua una query sia sul server DNS secondario per Ethernet1 che sul server DNS primario per Ethernet2, ma questo non sembra sta accadendo. La documentazione prosegue dicendo che dopo 10 secondi (e più altri 3 round di query DNS con timeout più lunghi) la risoluzione DNS fallirebbe completamente per tutti gli adattatori, ma il comportamento del client dà l'impressione che ci vorranno 10 secondi prima ancora di provare a utilizzare i server DNS per il secondo adattatore.

Assente che io (o te) apra Wireshark e annusi la linea o modifichi ciecamente HKLM\System\CurrentControlSet\Services\dnscache\Parameters\DNSQueryTimeoutsqualcuno sa come dovrebbe comportarsi Windows 10 e, soprattutto, come posso fare per configurare il comportamento? Sono disposto a vivere con un tempo di risoluzione di circa 1 secondo, ma 10 secondi sono piuttosto brutali.

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

Aggiornare

Nel caso qualcuno si stia chiedendo, sono entrato a far parte di una VM Win7 SP1 (senza patch) con la stessa configurazione dell'adattatore di rete nel dominio, l'ho spostata nella stessa unità organizzativa delle altre VM e ho aggiornato i criteri di gruppo sul client per ogni evenienza. È in grado di risolvere immediatamente le query DNS sia dai server DNS del controller di dominio che dai miei ISP. Quindi sembra che questo sia un comportamento specifico per il client DNS di Windows 10.

Aggiornamento 2

Quindi le cose stanno diventando più strane. Sembra che Win10, per impostazione predefinita, invierà le query in parallelo, ma non passerà la risposta a qualsiasi processo richiesto fino al timeout di tutte le query. E per qualche ragione il server DNS sul mio secondo controller di dominio non funziona. Qualcuno sa come disabilitare questo comportamento?

Traccia pacchetto Wireshark


Dai un'occhiata a questa domanda: superuser.com/questions/966017/… haarymc ha sottolineato che il resolver DNS di Windows 10 è stato significativamente modificato e indica alcune possibili soluzioni.
Brandon Xavier,

Vorrei iniziare con DisableSmartNameResolution che è stato menzionato.
Brandon Xavier,

Brandon, sembra che l'impostazione DisableSmartNameResolution su 1 (anziché su 0 come raccomandato dal collegamento) abbia funzionato! Se vuoi pubblicarlo è come una risposta, assegnerò il rappresentante. Grazie!
Matt,

LOL, tanta proiezione. Resta arrabbiato che Brandon Xavier abbia trovato il problema qui, riceverà il rappresentante +100 quando riporterà il suo commento come risposta e che non potresti essere disturbato a leggere le tue citazioni.
Matt,

1
Ecco un altro link bene con questa nuova funzione, e come cambia da Windows 8.1 a Windows 10. medium.com/@ValdikSS/...
GuitarPicker

Risposte:


11

Microsoft in Windows 10 ha sostanzialmente modificato o riscritto il resolver DNS.

Il cambiamento più grande è stato quello di inviare query DNS a tutti gli adattatori in parallelo, quindi prendere la prima risposta per arrivare. Sfortunatamente il nuovo codice contiene bug e omissioni e sembra che invece di prendere la prima risposta, aspetti tutte le risposte. Se una delle query DNS scadrà, ciò significa un'attesa di 10 secondi prima che il DNS venga risolto.

Questo bug verrà sicuramente corretto in un futuro aggiornamento di Windows 10. Fino ad allora, per restituire il comportamento il più possibile a quello delle versioni precedenti di Windows, esistono le seguenti modifiche al registro:

DisableSmartNameResolution (DWORD)

Nella chiave di registro HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient.
Il valore è 1 per disabilitare, 0 per abilitare la risoluzione intelligente.
Da Disattiva la risoluzione intelligente dei nomi multi-homed :

Specifica che un client DNS multihom dovrebbe ottimizzare la risoluzione dei nomi su tutte le reti. L'impostazione migliora le prestazioni inviando query DNS (LLMNR) locali con collegamento DNS parallelo e NetBIOS su TCP / IP (NetBT) su tutte le reti. Nel caso in cui vengano ricevute più risposte positive, l'ordine di associazione di rete viene utilizzato per determinare quale risposta accettare. Se si attiva questa impostazione di criterio, il client DNS non eseguirà alcuna ottimizzazione. Le query DNS verranno prima emesse su tutte le reti. Le query LLMNR verranno emesse se le query DNS falliscono seguite dalle query NetBT se le query LLMNR falliscono. Se si disabilita questa impostazione di criterio o se non si configura questa impostazione di impostazione, la risoluzione dei nomi verrà ottimizzata quando si inviano query DNS LLMNR e NetBT.

DisableParallelAandAAAA (DWORD)

Nella chiave di registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters.
Il valore è 0 per abilitare, 1 per disabilitare le query DNS A e AAAA dall'esecuzione in parallelo su tutti i server DNS configurati, con la risposta più rapida accettata teoricamente per prima.


1
Volevo solo aggiungere che sono su Win 10.0.10586 e HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClientnon esiste. Inoltre, DisableParallelAandAAAAnon esiste ma esistono le chiavi, quindi è possibile aggiungerlo.
Mahdi,

Questo ha risolto il problema di split-dns VPN su Windows 10. Quando è collegato a un VPN (cioè usando un client Cisco), il DNS di VPN è usato solo un po 'di tempo a causa di queste due funzionalità. Disabilitando entrambi (risoluzione dei nomi intelligenti e query DNS parallele), è possibile utilizzare in modo affidabile i DNS VPN. Inoltre, risolve il problema di "perdita del DNS" che si ha quando si è su una rete Wi-Fi non sicura / non affidabile come in una caffetteria con Windows 10. Le query del DNS andranno ora su vpn invece di andare a volte alla caffetteria dns. Grazie mille per aver fornito questa soluzione!
truemedia,

2
Pratica versione di PowerShell per chiunque lo colpisca (siamo allo Stack Stack): Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\DNSClient" -Name DisableSmartNameResolution -Value 1 -Type DWordeSet-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" -Name DisableParallelAandAAAA -Value 1 -Type DWord
Nick Craver

1
Questa chiave di registro non ha avuto alcun effetto sul mio Windows 10, ciò che ha funzionato è stato: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

fonte

SMHNR è leggermente modificato per Windows 10 rispetto a Windows 8. In Windows 10, non è possibile disattivarlo tramite il registro.

Per Windows 10, puoi utilizzare "Criteri locali" per disattivare la funzione. Seguire i passaggi seguenti per fare questo:

  • Premi WIN + R e scrivi gpedit.msc
  • Espandi Modelli amministrativi Espandi rete
  • Fare clic su Client DNS Fare doppio clic su "Disattiva la risoluzione intelligente dei nomi multihomed"
  • Seleziona la casella "Abilitato"
  • Fai clic su "Applica tutto" e poi su "OK"

Julien, non sto dicendo che i percorsi non siano stati spostati nel registro, ma quando aggiorni le impostazioni nei Criteri locali, la stragrande maggioranza di ciò che stai facendo è apportare modifiche al registro (tramite l'Editor dei criteri locali). In realtà, questo è un modo molto comune per capire quale parte del registro modificare direttamente per una determinata impostazione. Eseguire ProcMon (da Sysinternals) e apportare la modifica, quindi determinare quale sia il percorso di registro effettivo in quale hive è stato aggiornato da cosa a cosa.
thepip3r

0

Poiché i server DNS del tuo dominio non hanno accesso ai server root e non hai impostato l'inoltro, devi eliminare i suggerimenti di root irraggiungibili dal server DNS per accelerare le query per gli indirizzi che non ospita. Ciò dovrebbe accelerare i timeout e, a sua volta, accelerare la risoluzione del client. Altrimenti, continuerà a provare a contattare i server root prima di arrendersi.

La procedura per rimuovere i suggerimenti di root su 2008 R2 è documentata qui .


Grazie per la risposta, ma questa domanda riguardava il comportamento dei client, non il server DNS del controller di dominio, come notato da "... qualcuno sa come dovrebbe comportarsi Windows 10 e, soprattutto, come posso fare per configurare il comportamento "
Matt

Giusto. Sembrava che i client si comportassero in questo modo a causa di una configurazione non ottimale. Hai client non Windows 10 che si comportano diversamente?
GuitarPicker,

No, ho altri client VM Win10 che hanno Ethernet3 (accesso a Internet basato su VPN e server DNS 1.2.3.4) connessi invece di Ethernet2 e si comportano allo stesso modo. E come un client multihomed con server DNS per entrambe le reti sarebbe mai considerato non ottimale?
Matt,

1
GuitarPicker, ho provato il tuo suggerimento client non Win10 e sembra che questo sia un comportamento specifico di Windows 10.
Matt

La risposta di @ harrymc sembra che si occuperà delle cose dal lato client. In realtà l'ho trovato dopo aver letto il tuo commento e prima di leggere la sua risposta. Microsoft è sorprendentemente silenziosa nel documentarlo. La mia soluzione potrebbe darti un po 'più di tempo in termini di risoluzione per tutti i client, ma la sua risposta spiegherebbe la differenza nei client.
GuitarPicker,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.