Skip to content

In che modo Windows decide quale server DNS utilizzare per la risoluzione dei nomi?

Ciao utente del nostro sito web, abbiamo la soluzione a quello che stavi cercando, scorri e la troverai qui.

Soluzione:

Soluzione 1:

Se non sbaglio, è determinato dall'ordine di binding delle NIC nelle Impostazioni avanzate nella cartella delle connessioni di rete. È possibile verificarlo cambiando l'ordine di binding delle varie NIC ed eseguendo nslookup come test.

Per ampliare la mia risposta, citando l'articolo che Evan ha linkato, ecco un estratto di tale articolo:

Il servizio DNS Client interroga i server DNS nel seguente ordine:

  1. Il servizio DNS Client invia la query del nome al primo server DNS nell'elenco dei server DNS dell'adattatore preferito e attende un secondo per la risposta.

  2. Se il servizio DNS Client non riceve una risposta dal primo server DNS entro un secondo, invia la query del nome ai primi server DNS di tutti gli adattatori ancora in considerazione e attende due secondi per una risposta.

  3. Se il servizio DNS Client non riceve risposta da nessun server DNS entro due secondi, il servizio DNS Client invia la query a tutti i server DNS su tutti gli adattatori ancora in considerazione e attende altri due secondi per una risposta.

  4. Se il servizio Client DNS non riceve ancora una risposta da nessun server DNS, invia la query del nome a tutti i server DNS su tutti gli adattatori ancora in considerazione e attende quattro secondi per una risposta.

  5. Se il servizio Client DNS non riceve risposta da nessun server DNS, il client DNS invia la query a tutti i server DNS su tutti gli adattatori ancora in considerazione e attende otto secondi per una risposta.

L'adattatore preferito al punto 1 è quello elencato per primo nell'ordine di binding.

Soluzione 2:

In Windows 10 è necessario aggiornare la metrica di ciascuna interfaccia nell'ordine desiderato.

  1. Andare a Pannello di controllo > Rete e Internet > Connessioni di rete
  2. Fare clic con il pulsante destro del mouse sulla connessione desiderata (Connessione a priorità più alta)
  3. Fare clic su Proprietà > Protocollo Internet versione 4
  4. Fare clic su Proprietà > Avanzate
  5. Deselezionare 'Metrica automatica'.
  6. Inserire 10 in 'Metrica interfaccia'.
  7. Fare clic su OK

Riferimenti:

  • answers.microsoft.com
  • Configurare l'ordine delle interfacce di rete - Microsoft Docs

Ho usato 10 per la mia LAN, 20 per la WLAN e 100 per le interfacce VPN (al lavoro preferisco il DNS locale, per altri potrebbe essere il contrario). Ricordate che una metrica più bassa significa una priorità più alta.

Consultate questo articolo del Supporto Microsoft per una spiegazione della funzione Metrica automatica per le rotte IPv4.

Sospetto che funzioni perché parte della selezione del percorso consiste nell'impostare l'IP di origine dell'interfaccia con la priorità metrica più alta (numero più basso), in quanto non si utilizza lo stesso indirizzo IP per tutte le connessioni, mentre una connessione BGP dual-homed utilizzerebbe lo stesso IP di origine, ma selezionerebbe gateway next-hop diversi in attesa dell'IP di destinazione.

Per il server, installare il servizio DNS e fare qualcosa di mirato/intelligente, non sono d'accordo nel fare questo sul sistema operativo server.


Soluzione 3:

Per rispondere in modo specifico alla domanda, Windows utilizza i primi record DNS associati all'interfaccia di rete di rango più elevato (una InterfaceMetric con un valore inferiore ha un rango più alto). Gli esempi che seguono mostrano come ottenere e modificare il valore di ranking dell'interfaccia. Quando non ci sono server DNS manuali configurati su un'interfaccia, Windows si affida ai server DNS forniti da qualsiasi server DHCP associato a un'interfaccia di rete.

Uno scenario comune in cui si presenta questo problema è quando si dispone di una o più VPN che forniscono un server DNS per le risorse definite per quella rete virtuale.

Tuttavia, il server DNS pubblico assegnato da un router WiFi ha la precedenza e sostiene che gli host non esistono o risponde con un indirizzo IP inaspettato.

Per risolvere questo problema, è necessario indicare esplicitamente quale interfaccia di rete deve avere la precedenza, specificando la "metrica" associata. (Attualmente, questa metrica sembra essere impostabile solo tramite PowerShell... vedere sotto))

Modifica della metrica dell'interfaccia di rete (ad esempio, la VPN)

Per prima cosa, elencare le interfacce locali e le loro metriche

C:> Get-NetIPInterface | Select-Object -Property InterfaceAlias, InterfaceMetric | Sort-Object -Property InterfaceMetric

InterfaceAlias               InterfaceMetric
--------------               ---------------
vEthernet (DockerNAT)                     15
Npcap Loopback Adapter                    25
Ethernet 11                               25
Local Area Connection* 1                  25
Local Area Connection* 2                  25
Npcap Loopback Adapter                    25
Ethernet 2                                35
Wi-Fi                                     55
Bluetooth Network Connection              65
Loopback Pseudo-Interface 1               75
MY VPN                                   200   <--- There's my NIC with my fave DNS
vEthernet (Default Switch)              5000

Quindi, impostare la metrica dell'interfaccia di rete

(NOTA: Assicurarsi di eseguire questa operazione da una console PowerShell amministrativa)

C:>  Set-NetIPInterface -InterfaceAlias "MY VPN" -InterfaceMetric 10
C:> Get-NetIPInterface | Select-Object -Property InterfaceAlias, InterfaceMetric | Sort-Object -Property InterfaceMetric

InterfaceAlias               InterfaceMetric
--------------               ---------------
MY VPN                                    10   <--- Awesome!!! My fave DNS is now on top!!
vEthernet (DockerNAT)                     15
Npcap Loopback Adapter                    25
Ethernet 11                               25
Local Area Connection* 1                  25
Local Area Connection* 2                  25
Npcap Loopback Adapter                    25
Ethernet 2                                35
Wi-Fi                                     55
Bluetooth Network Connection              65
Loopback Pseudo-Interface 1               75
vEthernet (Default Switch)              5000

Verifica dell'effetto della metrica dell'interfaccia

In questo esempio, prima di modificare il valore della metrica, il ping di una risorsa locale che ha anche un IP definito pubblicamente restituisce il suo IP pubblico (invece dell'IP interno restituito dal server DNS della mia VPN).

Esempio quando non va bene! 🙁

> ping 10640-TEST

Pinging 10640-TEST.example.com [XX.163.171.155] with 32 bytes of data:
Reply from XX.163.171.155: bytes=32 time=80ms TTL=45
Reply from XX.163.171.155: bytes=32 time=76ms TTL=45

Esempio di quando va bene! 🙂

Dopo aver cambiato la metrica sull'interfaccia di rete, ora vedo l'indirizzo IP interno previsto che viene restituito dal server DNS associato alla mia VPN:

> ping 10640-TEST

Pinging 10640-TEST.example.com [192.168.100.44] with 32 bytes of data:
Reply from 192.168.100.44: bytes=32 time=42ms TTL=127
Reply from 192.168.100.44: bytes=32 time=52ms TTL=127

Soluzione 4:

Questa pagina descrive l'algoritmo utilizzato da Windows per eseguire le query DNS. Non è abbastanza approfondita da fornire tutte le risposte che cercate, ma un po' di tempo con uno sniffer e questo articolo dovrebbero essere sufficienti per determinare cosa sta accadendo nella vostra situazione specifica.


Soluzione 5:

Ho avuto esattamente lo stesso problema. Ho passato una giornata a cercare di capirlo.

Se si dispone di diverse schede di rete e si specifica un server DNS in ciascuna di esse, si sa quale server DNS verrà utilizzato?

Si può controllare con:

nslookup 192.168.3.6

Così si vede il server che il PC utilizza effettivamente.

La domanda è: come fa Windows a scegliere quale server DNS utilizzare e come possiamo cambiarlo.

Ne abbiamo bisogno soprattutto quando utilizziamo i client VPN.

La risposta di qwerty2010 è giusta e corretta. Ma è possibile utilizzarlo SOLO quando si dispone di una NIC in pannello di controllo - centro connessioni di rete e condivisione - modifica impostazioni adattatore - elenco delle NIC

Solo se vedi la nic che è responsabile per il tuo client VPN puoi usare il modo grafico.

Quindi andate in Centro connessioni di rete e condivisione -> Modifica impostazioni adattatore -> Avanzate -> Impostazioni avanzate -> e spostate SU la nic con i DNS che si desidera utilizzare.

Tuttavia, se ad esempio si utilizza il client vpn Shrew, non si avrà alcun nic.

Cosa fare? Si apre il registro di sistema.

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}

E si cerca nelle sottocartelle 0000, 0001 ecc. la cartella con

DriverDesc = Shrew Soft Virtual Adapter

Poi si copia negli appunti

NetCfgInstanceId = {B498E7DE-7257-48F6-AD32-60E470030F05}

Ora si va

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipLinkage]

e si apre key = Bind. Vedrete l'elenco in questo modo

Device{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
Device{70126DBE-B44D-4392-9417-0CABD6E384B1}
Device{D5127F8E-E7BB-4661-AE5A-A922614173D0}
Device{C44039AB-6801-4A9B-A736-3B12782FF411}
Device{85231D0F-CD05-4774-A983-632C5D83AC62}
Device{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
Device{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
Device{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

Tutto quello che si deve fare è mettere in cima

Device{B498E7DE-7257-48F6-AD32-60E470030F05}
Device{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
Device{70126DBE-B44D-4392-9417-0CABD6E384B1}
Device{D5127F8E-E7BB-4661-AE5A-A922614173D0}
Device{C44039AB-6801-4A9B-A736-3B12782FF411}
Device{85231D0F-CD05-4774-A983-632C5D83AC62}
Device{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
Device{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
Device{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

Questo è tutto. Non è necessario riavviare.

Ora Windows utilizzerà il DNS specificato in shrew vpn nic quando si utilizza la connessione vpn.

Se accetti, puoi lasciare una recensione su cosa aggiungeresti a questo post.



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.