Rozdzielczość DNS systemu Windows 10 przez połączenie VPN nie działa


49

W systemie Windows 10, po podłączeniu do VPN z włączonym dzielonym tunelowaniem (brama wyłączona), rozpoznawanie DNS zawsze wykorzystuje serwery DNS LAN, ignorując serwery DNS i sufiks DNS ustawiony na połączeniu VPN.

Oczekiwanym zachowaniem jest używanie serwerów DNS VPN, w przeciwnym razie niemożliwe będzie rozpoznanie wpisów DNS w sieci zdalnej (na przykład na komputerach domeny).

Działa to poprawnie w poprzedniej wersji systemu Windows.

Zostało to szeroko omówione w tym wątku z odpowiedziami Microsoft .


Z pytania nie wynika jasno, na czym polega problem (czy chcesz, aby korzystał z serwera DNS określonego przez VPN?), Edytuj go.
— Máté Juhász

Edytowane zgodnie z sugestią.
— ECC-Dan,

tbh: Coś jest nie tak z twoimi serwerami. Pierwsze żądanie DNS powinno ZAWSZE trafiać na serwery lokalne. Tylko jeśli host jest nierozwiązywalny, system powinien podjąć próbę wysłania zapytania do Remote-DNS. Problem może polegać na tym, że sieci lokalne i zdalne działają w tych samych podsieciach, dlatego lokalna twierdzi, że „jest w stanie rozwiązać zapytanie”, ale dostarcza „host nie został znaleziony”? (Jeśli serwer skonfigurowany do obsługi podsieci abcd nie może rozpoznać hosta, nie jest odpytywany o dalszy serwer dns dla tej podsieci, chyba że podstawowy jest offline, ponieważ POWINNY być zsynchronizowane - stąd zakłada, że ​​host jest nieznany)
— dognose

Odpowiedzi:


55

Naprawiłem ten problem na stałe, ręcznie ustawiając metrykę mojego połączenia LAN na wyższą (15) niż ta, którą Windows przypisuje mojej sieci VPN (11).

Można to zrobić na dwa sposoby:

  • Przez GUI: Połączenia sieciowe, Właściwości, Właściwości TCP / IP v4, Zaawansowane, Ustaw metryczny na 15;
  • Wiersz poleceń: netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

Efekt jest natychmiastowy (przynajmniej przy użyciu wiersza polecenia), a wyszukiwania DNS przechodzą teraz przez moją sieć VPN zgodnie z oczekiwaniami.

Działa to z Split Tunneling i jest stałą poprawką podczas ponownych połączeń i restartów.

Pamiętaj, że możesz również zmienić metrykę VPN zamiast połączenia LAN, ale nie byłoby to trwałe, ponieważ system Windows resetuje metrykę po ustanowieniu połączenia.

W zależności od środowiska możesz mieć inną domyślną metrykę dla połączenia LAN i VPN. Po prostu odpowiednio dostosuj, aby twoja sieć VPN miała niższy wskaźnik niż twoje połączenie LAN.

Ponadto, jeśli okaże się, że nie można edytować właściwości TCP / IP sieci VPN, ponieważ zostało to również uszkodzone w systemie Windows 10 , można ustawić większość właściwości za pomocą programu Powershell :

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local

2
Dla mnie to nie działa ... Mam dwie maszyny z Windows 10, jedna działa dobrze, druga jest problematyczna z VPN. Jestem w stanie rozwiązać domyślną bramę włączającą SplitTunneling, ale DNS VPN nadal nie rozpoznaje, kiedy zmieniam metrykę ...
— ceinmart

3
To naprawiło problem dla nas (i walczymy od jakiegoś czasu), z jednym ważnym dodatkowym krokiem - wyłączeniem IPv6. Nasza sieć VPN nie obsługuje IPv6, ale rozumiem, że jakikolwiek resolver IPv6 będzie miał pierwszeństwo przed IPv4. Po wyłączeniu protokołu IPv6 na adapterach, a następnie dostosowaniu metryki DNS w podzielonym tunelu wznowiono pracę. Jeśli Twoja sieć VPN obsługuje protokół IPv6, prawdopodobnie nie jest to konieczne, a sama regulacja metryki naprawia system DNS, ponieważ protokół IPv6 jest włączony na karcie.
— Adam Strohl

Ciekawostka: dla mnie problemem było „vice versa” - po podłączeniu do sieci VPN system Windows nie był w stanie rozwiązać lokalnych nazw FQDN ... Ustawiał domyślną metrykę dla „połączenia VPN” na 1 - więc podałem lokalny połączenie niższy numer, który rozwiązał mój problem. (Moje lokalne serwery są poprawnie skonfigurowane, więc wszelkie nierozwiązywalne nazwy będą wyszukiwane przy połączeniu „drugiej preferencji” - co powoduje, że zarówno lokalne, jak i zdalne dns będą działały zgodnie z oczekiwaniami podczas ustanawiania sieci VPN.)
— opublikuj

Masz pojęcie, dlaczego ta poprawka jest potrzebna tylko dla mnie, gdy podłączam się przez jednego ISP, ale nie drugiego (oba podłączone kabel koncentryczny)?
— Gaia,

W jakiś sposób udało mi się w pierwszej kolejności rozwiązać problem: mój lokalny laptop Win10 automatycznie używa tylko DNS w VPN (przez większość czasu), a ponieważ ten DNS w tej wewnętrznej sieci VPN nie jest (jeszcze) skonfigurowany do świadczenia usługi DNS, mogę nie przeglądać żadnej strony internetowej w okresie aktywacji VPN. Tak więc używam tego rozwiązania w odwrotny sposób, tzn. Ustawiam moje lokalne połączenie LAN na liczbę tak małą jak 1, co na pozór rozwiązuje problem. FWIW, nie znam wartości metryki dla mojego połączenia VPN, ponieważ w wyskakującym oknie właściwości połączenia VPN nie ma przycisku „Advance”.
— RayLuo

11

Uruchomiłem nową instalację systemu Windows 10 na maszynie wirtualnej do przetestowania po zobaczeniu tego problemu na każdym fizycznym komputerze Win10, który mam. Przetestowałem wszystkie odpowiedzi w tym wątku i żadna z nich nie zadziałała. Odkryłem, że rozwiązaniem jest połączenie odpowiedzi zamieszczonych tutaj przez „Keenans” i „ECC-Dan”:

http://answers.microsoft.com/en-us/windows/forum/windows_10-networking/win-10-dns-resolution-of-remote-network-via-vpn/513bdeea-0d18-462e-9ec3-a41129eec736? strona = 1

Panel sterowania> Centrum sieci i udostępniania> Zmień ustawienia karty sieciowej> Kliknij prawym przyciskiem myszy kartę Ethernet lub Wi-Fi> Właściwości> kliknij dwukrotnie IPv4> Zaawansowane> Odznacz metrykę automatyczną> Wprowadź 15 dla metryki interfejsu> OK> OK.

Na tej samej stronie Właściwości kliknij dwukrotnie IPv6> Zaawansowane> Odznacz metrykę automatyczną> Wprowadź 15 dla metryki interfejsu> OK> OK.

Dopiero po zmianie obu tych ustawień problem został rozwiązany. Testowałem zmianę jednego z nich i znów się łamie. Po zmianie obu uruchomiłem nslookup z wiersza poleceń i zwrócił serwer DNS w sieci zdalnej, do której podłączona jest sieć VPN, gdzie w przeciwnym razie zwróciłby lokalny serwer DNS. Następnie użyłem przechwytywania Wireshark na interfejsie Ethernet, wykonałem kilka pingów do losowych stron internetowych i zweryfikowałem, że nie przechwycono żadnych pakietów DNS. Dowodzi to, że po dokonaniu zmian zapytania DNS są wysyłane TYLKO przez połączenie VPN, a nie jednocześnie przez wszystkie połączenia (co jest znane jako wyciek DNS Win10). Jest to również część rozwiązania problemu wycieku DNS Win10:

https://medium.com/@ValdikSS/beware-of-windows-10-dns-resolver-and-dns-leaks-5bc5bfb4e3f1#.7ppsn1nda

Pamiętaj, że naprawić wyciek DNS, musisz najpierw wykonać powyższe kroki. Następnie musisz ustawić dwie wartości rejestru. W linkowanych artykułach wymieniono tylko jeden, który sam w sobie nie rozwiązuje problemu w nowszych wersjach Win10. Ustaw te wartości rejestru:

Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
Value:  DisableSmartNameResolution
Data:  1

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Value: DisableParallelAandAAAA
Data:  1

Dopiero po wykonaniu wszystkich tych czynności zachowanie klienta DNS powróci do stanu z Win7. Musisz się zastanawiać, jak to przeszło przez kontrolę jakości w firmie Microsoft.


1

Nie działa, nawet zmieniłem metryki zarówno na IPv4, jak i IPv6 i użyłem rejestru DisableSmartNameResolution i DisableParallelAandAAAA z bieżącym Windows 10 Edu (od grudnia 2018 r.), Gdy klient jest podłączony kablem UTP, a protokół IPv6 jest obsługiwany w lokalnej sieci LAN (tj. klient ma publiczny / globalny adres IPv6).

Wystarczy wyłączyć protokół IPv6 na interfejsie UTP / LAN używanym do VPN, aby działał (aby usunąć / nie_używać globalnego adresu IPv6 na kliencie).

Działa bez problemu, gdy klient jest podłączony do Internetu przez Wi-Fi, a protokół IPv6 jest dostępny (klient ma globalny adres IPv6 i nie ma połączenia UTP / LAN).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.