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 .

ECC-Dan
źródło
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
ECC-Dan
źródło
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.

LikeARock47
źródło
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).

Milan Kerslager
źródło