Windows 10 e metrica delle interfacce di rete e ordine di utilizzo dei server DNS

In Windows 10 / Windows  Server, come nelle versioni precedenti del sistema operativo sia client che server, la metrica delle interfacce di rete può impattare sulla risoluzione DNS.

Si consideri ad esempio di aver configurato e avviato una connessione VPN se la metrica dell’interfaccia di rete della connessione VPN non è minore della metrica delle altre interfacce di rete la risoluzione DNS verrà eseguita utilizzando le interfacce di rete a metrica minore.

La spiegazione sta nel post “Adjusting the Network Protocol Bindings in Windows 10” che non è più disponibile, ma che avevo già citato nel mio post Server con più schede di rete, e che riporta quanto segue:

“There are no longer any components that utilize the binding order. The only known component that used the binding order was DNS ordering. By default, Windows uses the Route Metric + Interface Metric to determine which route has the highest priority by choosing the route with the lowest value.”

Al momento l’ordine con cui la risoluzione DNS viene eseguita in presenta di più interfacce di rete dipende ancora dalla metrica delle interfacce di rete, per impostazione predefinita la metrica è gestita in modo automantico e per avere indicazioni su come il sistema gestisce il valore della metrica in relazione alla velocità della connessione relativa all’interfaccia di rete si veda la KB299540 An explanation of the Automatic Metric feature for IPv4 routes.

Per meglio comprendere l’impatto della metrica delle interfacce di rete in relazione alla risoluzione DNS riporto un caso reale in cui un computer se connesso ad una determinata rete casalinga non consentiva una corretta risoluzione DNS quando veniva avviata una connessione VPN, ma la problematica di verificava solo si utilizzava la connessione Ethernet e non avveniva se era utilizzata la connessione WiFi.

Di seguito l’elenco delle interfacce di rete con relativa metrica del computer ottenuto mediante il seguente comando PowerShell:

Get-NetIPInterface | Select InterfaceAlias, AddressFamily, InterfaceMetric, InterfaceIndex | Sort InterfaceMetric

Come si può notare l’interfaccia Ethernet ha una metrica minore dell’interfaccia di rete relativa alla connessione VPN per quanto riguarda l’IPv6 e ciò comporta che venga utilizzata per tentare la risoluzione DNS con la conseguenza che le risoluzione di host raggiugibili tramite la VPN risultino non corrette.

Per risolvere il problema in questo caso è possibile impostare manualmente la metrica del protocollo TCP/IPv6 sull’interfaccia di rete Ethernet ad un valore maggiore di quello della connessione VPN, quindi ad esempio a 50.

E’ possibile impostare la metrica tramite l’applet del pannello di controllo ncpa.cpl:

In alternativa è possibile utilizzare il cmdlet Set-NetIPInterface, a riguardo si veda anche Configure the Order of Network Interfaces:

Set-NetIPInterface -InterfaceAlias “Ethernet” -InterfaceMetric 50 -AddressFamily IPv6