Dlaczego Windows wysyła nazwy VPN do serwera DNS, którego nigdy nie ustawiłeś
Zmiana DNS na karcie sieciowej wydaje się zamykać sprawę. Reguła przestrzeni nazw może jednak nadpisać tę listę, a bez reguły Windows pyta kilka kart.
Ustawiasz serwer DNS na karcie VPN, łączysz się ponownie, a nazwa prywatna wciąż wraca z firmowego resolvera, którego nikt nie skonfigurował na tym laptopie. Wynik wygląda tak, jakby ustawienie zignorowano, i w pewnym sensie tak było, bo lista kart to zbiór kandydatów, a nie decyzja. Windows rozwiązuje nazwy przez zasady przestrzeni nazw, która może wskazać inny serwer dla konkretnego sufiksu, i ta zasada jest stosowana, zanim ustawienie karty zostanie wzięte pod uwagę. Znalezienie reguły, która wygrała, to praca na pięć minut, gdy wiesz, którą tabelę czytać.
Co zmieniłeś i co naprawdę decyduje
Adres DNS na karcie mówi klientowi, dokąd to interfejs mógłby wysyłać zapytania. Tabela zasad rozwiązywania nazw mówi klientowi, dokąd musi wysyłać zapytania dla danej przestrzeni nazw, i jest oceniana według nazwy, a nie według karty. Gdy reguła pasuje do wpisanego sufiksu, używane są serwery tej reguły, a lista kart przestaje mieć znaczenie dla tego wyszukiwania.
Dlatego dwie nazwy na tym samym laptopie mogą w tej samej chwili iść różnymi drogami. Host w domenie firmowego sufiksu idzie zgodnie ze swoją regułą; nazwa publiczna idzie ścieżką domyślną, co zwykle oznacza kartę, która odpowie pierwsza.
Jak tabela dopasowuje nazwę
Reguły są kluczowane przestrzenią nazw i wygrywa najbardziej szczegółowe dopasowanie. Reguła dla corp.example dotyczy vpn.corp.example i nie dotyczy example.net. Reguła z przestrzenią nazw . obejmuje wszystko, czego nie obejmują inne reguły, co czyni ją najniebezpieczniejszym wpisem na liście i tym, który warto sprawdzić, gdy niepowiązana witryna jest rozwiązywana przez tunel.
Reguła może też nieść komentarz, zasady wyłączające wpis oraz ustawienia zabezpieczeń, które nie mają nic wspólnego z adresami DNS. Wyłączona reguła pozostaje widoczna w konfiguracji, ale nie działa, więc wpis, który na papierze wygląda poprawnie, może po zmianie profilu pozostać martwy.
Czytaj tabelę obowiązującą, a nie listę życzeń
Reguły skonfigurowane i reguły obowiązujące to dwa różne pytania. Get-DnsClientNrptRule wylicza, co istnieje na maszynie. Get-DnsClientNrptPolicy -Effective pokazuje, co klient rzeczywiście zastosuje, z wartościami scalonymi z zasad i ustawień lokalnych.
Porównaj sufiks w tym wyniku z testowaną nazwą, znak po znaku. Reguła dla corp.example nie wychwytuje nazwy kończącej się na corp.example.com, a kropka na końcu w jednym miejscu i brak jej w drugim wystarczą, by zmienić dopasowanie.
Bez reguły Windows pyta więcej niż jedną kartę
Gdy nic w tabeli nie rości sobie prawa do nazwy, klient może wysłać zapytanie przez kilka interfejsów i wziąć pierwszą odpowiedź, która dotrze. Wynik zależy od czasu: ta sama nazwa może zostać rozwiązana z karty przewodowej w poniedziałek i z tunelu we wtorek, a nic w konfiguracji którejkolwiek karty nie wyjaśnia różnicy.
Istnieją dwa wyjścia. Dodaj regułę dla przestrzeni nazw, aby decyzja przestała być wyścigiem, albo wyłącz równoległe zachowanie przez zasady klienta DNS i zaakceptuj wolniejsze, deterministyczne rozwiązywanie. Pierwsze zwykle lepiej pasuje do VPN z dzielonym tunelem, bo dokumentuje intencję zamiast polegać na kolejności.
Ścieżki, które całkowicie omijają resolver
Przeglądarka z włączonym bezpiecznym DNS rozwiązuje sama i przekazuje Windows tylko adres, więc tabela reguł nigdy nie widzi nazwy. Klienci zbudowani na środowiskach z własnym resolverem mogą zachowywać się tak samo. Gdy nazwa rozwiązuje się w jednej aplikacji, a w innej na tej samej maszynie zawodzi, porównaj obie ścieżki rozwiązywania, zanim dotkniesz zasad.
Sprawdź też, czy aplikacja łączy się z adresem z pamięci podręcznej z wcześniejszej sesji. Clear-DnsClientCache, a potem to samo wyszukiwanie daje czystszą odpowiedź niż wnioskowanie z nieaktualnego wyniku.
Testuj z nazwą, która zawiodła
Rozwiąż dokładną nazwę hosta z raportu, a nie publiczną domenę testu prędkości, i zanotuj, który serwer odpowiedział. Następnie zmień jedną rzecz: regułę, listę kart lub przypisanie zasad, i po ponownym połączeniu powtórz to samo wyszukiwanie, aby zastosowany stan został odbudowany.
Jeśli nazwa się rozwiązuje, a usługa nadal odmawia, przestań edytować DNS. Następnym użytecznym krokiem jest adres i trasa do niego, bo rozwiązywanie nazw już wykonało swoją pracę.