DNS nie może rozpoznać nazwy hosta; nslookup może

9

Mam użytkownika w systemie Windows 7, który próbuje uzyskać dostęp do lokalnego serwera o nazwie DNS windows.cs. Mamy dwa wewnętrzne serwery DNS. Serwer DHCP przypisuje użytkownikom dwa wewnętrzne serwery DNS jako główny i pomocniczy, a następnie DNS naszych ISP jako trzeciorzędny serwer DNS.

Od czasu do czasu użytkownik nie może uzyskać dostępu do witryny w witrynie windows.cs. Jeśli go pinguję, oznacza to, że nie może rozwiązać nazwy hosta. Opróżniam pamięć podręczną DNS, a następnie, gdy wyświetlam pamięć podręczną dns, ma ona następujące właściwości:

windows.cs - Nazwa nie istnieje

Jednak jeśli użyję nslookup, który domyślnie odpytuje główny serwer DNS (nasz wewnętrzny) i zapytam o windows.cs, zwraca poprawny adres IP.

Dlaczego więc system Windows nie może rozpoznać nazwy hosta za pomocą polecenia ping, ale może to zrobić przy użyciu narzędzia nslookup? I jak to naprawić?

Safado
źródło
1
+1, często mam ten problem ... nawet z nazwami hostów, których używałem 5 minut temu!
Brad

Odpowiedzi:

12

Z tego, co mówisz, wynika, że ​​żądanie Windows.cs trafia do serwera DNS usługodawców internetowych od czasu do czasu. Wynik nxdomain jest następnie buforowany przez klienta DNS systemu Windows, a zatem wykorzystywany do wszelkich prób za pomocą przeglądarki internetowej, ping itp. Wyczyszczenie pamięci podręcznej (ipconfig / flushdns) powinno zmusić klienta DNS systemu Windows do ponownej próby zapytania, ale nie ma gwarancji, że to nie chce ponownie przejść do serwera DNS ISP.

Powodem, dla którego ping nie może rozwiązać nazwy hosta, ale może to być nslookup, ponieważ nslookup to narzędzie niskiego poziomu, które omija klienta DNS systemu Windows. Wykorzystuje dowolny serwer DNS, który mu powiesz (domyślnie pierwszy), i wykonuje zapytanie w locie. Możesz zmienić serwer DNS, o który pyta, pisząc server <host>z monitu nslookup, gdzie host to IP lub FQDN.

Klient DNS systemu Windows będzie jednak wykonywać zapytania tylko dla wpisów, które nie znajdują się w pamięci podręcznej (lub wygasły). W przeciwnym razie zwraca buforowany wynik.

Nie wiadomo od razu, dlaczego klient Windows używa serwera DNS ISP. Być może ostatnio nie mógł rozwiązać lokalnego serwera (być może dlatego, że był w innej sieci), być może lokalny serwer zwracał błędy. Lub może nie jest poprawnie zamówiony w Zaawansowanych ustawieniach TCP / IP> DNS.

Osobiście wolę używać tylko lokalnych adresów serwerów DNS na stacjach roboczych (propagowanych przez DHCP), aby uprościć konfigurację i uniknąć takich problemów. Byłbym ciekawy uzasadnienia ustawienia serwera DNS ISP na komputerach stacjonarnych. Nie mogę sobie wyobrazić, aby istniały jakiekolwiek uzasadnione przyczyny związane z wydajnością, a jeśli chodzi o nadmiarowość, w większości sieci wystarczą dwa (jeśli nie dodać trzeciej).

Alex Forbes
źródło
Podnosisz dobry punkt. Nie ma konkretnego powodu, dla którego serwer DHCP przypisuje go jako trzeciorzędny. I wydaje się to rozsądnym wyjaśnieniem, dlaczego nie jest rozwiązany (ale dlaczego trafia na trzeci serwer DNS? Kto wie ..). Dzięki za wskazówki. Usunę publiczny serwer DNS z przydzielonego serwera DNS przekazanego przez DHCP i zobaczę, czy problem zostanie rozwiązany. Wewnętrzne serwery DNS powinny przekazywać wszelkie zapytania, na które i tak nie mogą odpowiedzieć na ten serwer DNS, więc nie powinno to stanowić problemu.
Safado
Aktualizacja: Wydaje się, że to rozwiązało nasz problem. Dzieki za sugestie!
Safado
0

Wyniki nslookupróżnią się od tych z pingpowodu nslookuposobliwości i błędów . Nie mają one jednak większego związku z głównym problemem, polegającym na tym, że naruszyłeś zasadę, że rezerwowe serwery DNS proxy muszą zapewniać taki sam widok przestrzeni nazw DNS, jak główny . Serwer DNS serwera proxy ISP nie zapewnia takiego samego widoku przestrzeni nazw DNS, jak własne serwery DNS proxy w sieci LAN.

Wydawałoby się, że kolejny administrator systemu spadła Faul z My ISP dostarcza i dokumentach, więc należy go używać. błąd. ☺

JdeBP
źródło
Tak więc, laikans, mówisz, że nie przypisuj serwerów DNS moim użytkownikom, chyba że wiem, że te serwery DNS mają te same informacje? Twoje linki nie działają.
Safado
0

Wersja TL; DR: IPv6 spowodował w moim przypadku problem z zapytaniem DNS, dezaktywacja go rozwiązała problem z zapytaniem DNS.

Miałem ten sam problem na mojej maszynie programistycznej. Za każdym razem, gdy logowałem się do sieci naszej firmy, nie byłem w stanie rozpoznać wewnętrznych nazw hostów, wszystkie zewnętrzne nazwy hostów / identyfikatory URI mogły zostać rozwiązane. Sprawdziłem serwery DNS przypisane do połączenia VPN i pokazały, że serwery DNS firmy zostały skonfigurowane jako podstawowe i pomocnicze. Mógłbym także użyć, nslookupale musiałem ręcznie zmienić serwer, server X.X.X.Xaby uzyskać rozdzielczość DNS.

W końcu odkryłem, że IPv6 powoduje problemy z rozpoznawaniem nazw: przy każdym zapytaniu DNS pytany jest DNS IPv6, a nie serwery DNS firmy IPv4. Po dezaktywacji IPv6, w ipconfig /flushdnsprzeciwnym razie adresy, których dotyczy zapytanie, mogą nadal nie zostać rozwiązane.

SaschaM78
źródło
0

Byłem w stanie rozwiązać problem w prosty sposób, usuwając rekord DNS i uruchamiając polecenia flushdns i registerdns, i to naprawia. powodem, dla którego sam wiek jest ustawiony na DNS. DNS nie usunął rekordu po wygaśnięciu dzierżawy i nie został odnowiony, co nie mogło rozwiązać nazwy, ponieważ jest dla niej stara. mam nadzieję, że pomogą ci rozwiązać problemy.

Mohamed
źródło