Ločljivost imena DNS ne deluje z aktivno povezavo VPN v sistemu Windows 10

V sistemu Windows 10 z aktivno povezavo VPN v načinu Prisilno tuneliranje (omogočena je možnost »Uporabi privzeti prehod v oddaljenem omrežju«), DNS strežniki in pripone, konfigurirane za povezave VPN, se uporabljajo za razrešitev imen prek storitve DNS. V skladu s tem izgubite možnost razreševanja imen DNS v svojem lokalnem omrežju in uporabe interneta prek internega LAN-a.

Hkrati se z Windows 10 lahko pomikate do virov v vašem omrežju LAN (ping vašega prehoda, sosednjega računalnika ali tiskalnika), vendar po imenu niso na voljo, ker Windows poskuša razrešiti imena v lokalnem omrežju prek strežnika DNS, določenega za povezavo VPN.

V Googlu sem našel priporočila za onemogočanje IPv6 na lokalni povezavi (LAN) in to deluje (če želite uporabiti Force-Tunneling).

Če se način uporablja za povezavo VPN Split tuneliranje (polje "Uporabi privzeti prehod v oddaljenem omrežju" ni potrjeno), lahko uporabljate internet prek lokalnega omrežja, vendar naslovov DNS v oddaljenem omrežju VPN ne morete razrešiti (v tem primeru onemogočanje IPv6 ne pomaga).

Morate razumeti, da Windows pošlje poizvedbo DNS iz omrežnega vmesnika, ki ima najvišjo prednost (nižja vrednost metrike vmesnika). Recimo, da vaša VPN povezava deluje v načinu Split Tunneling (Internet želite uporabljati prek LAN-ja in poslovnih virov prek VPN povezave).

Uporabite PowerShell za preverjanje meritev za vse omrežne vmesnike:

Get-NetIPInterface | Interfacemetric razvrščanja-predmeta

Zgornja slika prikazuje, da ima lokalna povezava Ethernet nižjo metriko (25) kot vmesnik VPN (v tem primeru 100). V skladu s tem promet DNS poteka prek vmesnika z nižjo metrično vrednostjo. To pomeni, da se vaše poizvedbe DNS pošljejo na vaš lokalni DNS strežnik in ne na povezavo VPN strežnika DNS. I.e. v tej konfiguraciji ne morete razrešiti naslovov v zunanjem omrežju VPN.

Poleg tega je treba omeniti novo funkcijo odjemalca DNS v sistemih Windows 8.1 in Windows 10. V teh različicah OS je bila pod imenom dodana funkcionalnost razreševalnika DNS Pametna veččlanska ločljivost imena (SMHNR). Pri uporabi SMHNR sistem privzeto pošlje DNS poizvedbe vsem DNS strežnikom, ki so znani v sistemu, in uporabi hitrejši odgovor. To ni varno, ker potencialno zunanji strežniki DNS (ki so navedeni v povezavi VPN) lahko vidijo vaše poizvedbe DNS (puščanje DNS poizvedb zunaj). SMHNR lahko v sistemu Windows 10 onemogočite z uporabo skupinskih pravilnikov:

Konfiguracija računalnika -> Administrativne predloge -> Omrežje -> Odjemalec DNS-> Izklopite pametno večnamensko ločljivost imen = Omogočeno.

Ali z ukazi (za Windows 8.1):

Set-ItemProperty -Path "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 Windows 10 Creators Update (1709) in novejših različicah se poizvedbe DNS pošljejo vsem znanim DNS strežnikom po vrstnem redu in ne vzporedno. Prednost določenega DNS lahko povečate, če zmanjšate njegovo metriko..

Skladno s tem bo sprememba meritve omogočila pošiljanje poizvedb DNS prek omrežnega vmesnika (LAN ali VPN), katerega resolucija imena je za vas bolj prednostna.

Torej, čim manjša je vrednost metrike vmesnika, večja je prednost takšne povezave. Windows samodejno izpostavi meritve IPv4 omrežnim vmesnikom, odvisno od njihove hitrosti in vrste. Na primer, za povezavo LAN s hitrostjo> 200 Mbps je vrednost metrične vmesnika 10, za brezžično povezavo Wi-FI s hitrostjo 50-80 Mbps pa metrika 50 (glejte tabelo https://support.microsoft.com/en-us/help/ 299540 / razlaga-samodejne-metrične-lastnosti-za-ipv4-poti).

Metriko vmesnika lahko spremenite prek grafičnega vmesnika, PowerShell ali ukaza netsh.

Na primer, želite, da se poizvedbe DNS pošljejo prek povezave VPN. Povečati morate meritve lokalnih povezav LAN, tako da bodo postale več kot 100 (v mojem primeru).

Odpri Nadzorna plošča -> Omrežje in internet -> Omrežne povezave, odprite lastnosti povezave Ethernet, izberite lastnosti protokola TCP / IPv4, pojdite na »Napredne nastavitve TCP / IP" Počistite polje »Samodejno dodeljevanje meritev"In spremenite metriko vmesnika v 120.

Enako lahko storite z ukazi za upravljanje omrežja PowerShell (uporabite indeks vašega LAN vmesnika, pridobljenega z ukazom cmdlet Get-NetIPInterface):

Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 120

Ali netsh (morate določiti ime svoje LAN povezave)

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

Podobno lahko zmanjšate vrednost metrike v lastnostih povezave VPN..

Nastavitve povezave VPN lahko spremenite tudi tako, da spremenite način v SplitTunneling in določite pripono DNS za povezavo s programom PowerShell:

Get-vpnconnection
Set-VpnConnection -Name "VPN" -SplitTunneling $ True
Set-VpnConnection -Name "VPN" -DnsSuffix yourdomain.com