Rozlišení názvu DNS nefunguje s aktivním připojením VPN v systému Windows 10

V systému Windows 10 s aktivním připojením VPN v režimu Vynutit tunelování (je povolena možnost „Použít výchozí bránu ve vzdálené síti“), servery DNS a přípony nakonfigurované pro připojení VPN se používají k překladu názvů prostřednictvím služby DNS. V důsledku toho ztratíte schopnost překládat názvy DNS ve vaší místní síti a používat internet prostřednictvím interní sítě LAN.

Ve Windows 10 můžete současně pingovat prostředky ve vaší síti LAN (ping vaší brány, sousedního počítače nebo tiskárny), ale nejsou k dispozici podle názvu, protože Windows se pokusí přeložit názvy v místní síti prostřednictvím serveru DNS určeného pro připojení VPN.

Na Googlu jsem našel doporučení pro deaktivaci IPv6 na lokálním (LAN) připojení a toto funguje (pokud chcete použít Force-Tunneling).

Pokud je režim používán pro připojení VPN Rozdělené tunelování (políčko „Použít výchozí bránu ve vzdálené síti“ není zaškrtnuto), můžete používat internet prostřednictvím místní sítě, ale ve vzdálené síti VPN nelze překládat adresy DNS (v tomto případě deaktivace protokolu IPv6 nepomůže).

Musíte pochopit, že Windows odešle dotaz DNS ze síťového rozhraní, které má nejvyšší prioritu (nižší hodnota metriky rozhraní). Řekněme, že vaše připojení VPN funguje v režimu Split Tunneling (chcete používat internet prostřednictvím sítě LAN a podnikové zdroje prostřednictvím připojení VPN).

Pomocí PowerShell zkontrolujte metriky všech síťových rozhraní:

Get-NetIPInterface | Interfacemetrické řazení objektů

Obrázek nahoře ukazuje, že místní připojení Ethernet má nižší metriku (25) než rozhraní VPN (v tomto příkladu 100). V souladu s tím provoz DNS prochází rozhraním s nižší metrickou hodnotou. To znamená, že vaše dotazy DNS jsou odesílány na váš místní server DNS a nikoli na připojení VPN serveru DNS. I.e. v této konfiguraci nemůžete rozlišovat adresy v externí síti VPN.

Kromě toho je nutné zmínit novou funkci klienta DNS ve Windows 8.1 a Windows 10. V těchto verzích OS byla přidána funkce překládače DNS pod názvem Inteligentní rozlišení více doménových jmen (SMHNR). Při použití SMHNR systém ve výchozím nastavení odesílá dotazy DNS na všechny servery DNS známé systému paralelně a používá odpověď, která přišla rychleji. To není bezpečné, protože potenciálně externí servery DNS (které jsou uvedeny ve vašem připojení VPN) mohou zobrazit vaše dotazy DNS (únik vašich dotazů DNS venku). SMHNR v systému Windows 10 můžete zakázat pomocí zásad skupiny:

Konfigurace počítače -> Šablony pro správu -> Síť -> Klient DNS-> Vypněte inteligentní rozlišení více domén = Povoleno.

Nebo příkazy (pro Windows 8.1):

Set-ItemProperty - Cesta "HKLM: \ Software \ Policies \ Microsoft \ Windows NT \ DNSClient" -Name DisableSmartNameResolution -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM: \ SYSTEM \ CurrentControlSet \ Services \ Dnscache \ Parameters" -Name DisableParallelAandAAAA -Value 1 -Type DWord

V aktualizaci Windows 10 Creators Update (1709) a vyšší jsou dotazy DNS odesílány na všechny známé servery DNS v pořadí, nikoli paralelně. Pokud omezíte jeho metriku, můžete zvýšit prioritu konkrétního DNS..

V souladu s tím změna metriky vám umožní odesílat dotazy DNS prostřednictvím tohoto síťového rozhraní (LAN nebo VPN), přičemž rozlišení jmen, díky kterému je pro vás prioritnější.

Čím menší je tedy hodnota metriky rozhraní, tím vyšší je priorita takového připojení. Windows vystavuje metriky IPv4 síťovým rozhraním automaticky v závislosti na jejich rychlosti a typu. Například pro připojení LAN s rychlostí> 200 Mb / s je hodnota metriky rozhraní 10 a pro bezdrátové připojení Wi-FI s rychlostí 50–80 Mb / s je metrika 50 (viz tabulka https://support.microsoft.com/en-us/help/ 299540 / vysvětlení automatických metrických funkcí pro trasy ipv4).

Metriku rozhraní můžete změnit pomocí grafického rozhraní, prostředí PowerShell nebo příkazu netsh.

Například chcete, aby dotazy DNS byly zasílány prostřednictvím připojení VPN. Musíte zvýšit metriku připojení k místní síti LAN tak, aby se staly více než 100 (v mém příkladu).

Otevřeno Ovládací panel -> Síť a internet -> Síťová připojení, otevřete vlastnosti vašeho ethernetového připojení, vyberte vlastnosti protokolu TCP / IPv4, přejděte na „Pokročilá nastavení TCP / IP" Zrušte zaškrtnutí “Automatické přiřazení metrik„A změňte metriku rozhraní na 120.

Totéž lze provést pomocí příkazů pro správu sítě PowerShell (použijte index rozhraní LAN získaný pomocí cmdlet) Get-NetIPInterface):

Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 120

Nebo netsh (musíte zadat název vašeho připojení k LAN)

netsh int ip set interface interface = "Ethernet 3" metrika = 120

Podobně můžete snížit metrickou hodnotu ve vlastnostech připojení VPN..

Nastavení připojení VPN můžete také změnit změnou režimu na SplitTunneling a určit příponu DNS pro připojení pomocí PowerShell:

Získejte připojení
Set-VpnConnection - název "VPN" - SpliteTunneling $ True
Set-VpnConnection - název "VPN" -DnsSuffix yourdomain.com