Polecenie nslookup służy do odpytywania serwerów DNS w celu powiązania nazwy domeny z jej adresem IP lub odwrotnie. Administratorzy sieci i webmasterzy używają tego narzędzia wiersza poleceń do diagnozowania problemów z rozwiązywaniem nazw, weryfikacji konfiguracji poczty e-mail oraz sprawdzania propagacji rekordów strefy.
Pamiętam wdrożenie serwera na warszawskim Mokotowie we wtorek rano. Przenosiliśmy strefę klienta na nowe maszyny. Nagle przestały spływać zamówienia ze sklepu internetowego. Klient dzwoni z pretensjami. Ping pokazuje stary adres maszyny. Odpaliłem terminal i wpisałem po prostu nslookup sklep.pl 8.8.8.8. Wyszło szydło z worka. Ktoś z zespołu zostawił stary wpis CNAME w panelu rejestratora. Zmieniliśmy te zasady na robocie od ręki. Bez tego małego narzędzia szukalibyśmy błędu w kodzie aplikacji przez resztę dnia. To absolutna podstawa przy każdej awarii infrastruktury sieciowej.
Jak działa polecenie nslookup w praktyce?
Narzędzie to komunikuje się z serwerem nazw. Wysyła zapytanie o konkretny zasób w sieci. Ty podajesz adres w formie czytelnej dla człowieka. Program zwraca ciąg liczb. Systemy komputerowe nie rozumieją słów. Potrzebują twardych adresów IP.
Aplikacja wykorzystuje domyślnie protokół UDP na porcie 53. Tworzy krótki pakiet sieciowy. Wypycha go do najbliższego resolwera. Czeka na odpowiedź w określonym limicie czasu. Jeśli odpowiedź nie nadchodzi, zwraca błąd przekroczenia limitu. To wysoce deterministyczny proces. Nie ma tu miejsca na zgadywanie. Albo rekord istnieje w strefie, albo go tam po prostu nie ma.
Co to jest system DNS i dlaczego nslookup go potrzebuje?
Zrobiliśmy na wdrożeniu nowy kontroler domeny, potem zawiesiło się wiązanie stref, więc wprowadzono poprawkę wymuszającą odpytanie głównego hosta. DNS to po prostu rozproszona baza danych. Nslookup działa w niej jak bezpośredni interfejs odczytu. Narzędzie wyciąga informacje z infrastruktury sieciowej na dwa sposoby:
- Odpytuje lokalny bufor systemu operacyjnego lub routera.
- Wymusza bezpośrednie połączenie z autorytatywnymi serwerami Root zarządzającymi daną końcówką.
Bez usługi DNS polecenie to jest całkowicie bezużyteczne. Opiera się na architekturze klient-serwer. Wysłanie zapytania rekursywnego zmusza inne serwery w internecie do wykonania pracy za ciebie. Zbierają one dane z całego świata i dostarczają gotowy wynik na twój ekran.
Jak sprawdzić rekord A i adres IP domeny za pomocą nslookup?
Wpisujesz w wierszu poleceń nslookup allegro.pl. Wciskasz enter. Na ekranie pojawia się wynik. Pierwsza część odpowiedzi pokazuje serwer, z którego twój komputer pobrał dane. Druga część to właściwa odpowiedź z sieci.
Zobaczysz adresy IPv4, czyli klasyczny rekord A. Zobaczysz też adresy IPv6, identyfikowane jako wpisy AAAA. A co jeśli wynik jest pusty? Zapewne domena wygasła. Albo administrator usunął strefę u rejestratora. Prawda jest zresztą absolutnie taka, że większość problemów z niedziałającą stroną WWW zaczyna się od braku rekordu A w podstawowej konfiguracji domeny.
Czasami system zwraca kilka adresów IP dla jednej nazwy. To mechanizm zwany DNS Round Robin. Używa się go do najprostszego równoważenia obciążenia. Ruch kierowany jest naprzemiennie na różne maszyny fizyczne. Zmniejsza to ryzyko przeciążenia pojedynczego serwera WWW w godzinach szczytu.
Do czego służy nslookup przy weryfikacji poczty e-mail (rekordy MX)?
Zastanawiacie się zresztą, dlaczego to na produkcji tak wyje na testach po drodze, gdy maile nie chcą wychodzić? Sam borykałem się z tym rano u siebie. Klient mówi, że poczta mu nie działa. Myślisz, że to wina serwera SMTP. A to po prostu błąd we wpisach Mail Exchange.
Wpisujesz w terminalu nslookup -type=mx domena.pl. System wyrzuca listę hostów obsługujących pocztę. Każdy wpis ma przypisany priorytet, oznaczony liczbą. Niższa liczba oznacza wyższy priorytet dla nadawcy wiadomości. Jeżeli widzisz tu stary serwer hostingowy sprzed migracji, poczta leci w próżnię.
Dlaczego maile nie dochodzą? Analiza błędów serwera pocztowego
Zarząd zrestrukturyzował portfel usług zewnętrznych. Przenieśli skrzynki pracowników do Google Workspace. Zapomnieli wyciąć stare rekordy z panelu administracyjnego w nazwa.pl lub home.pl. Serwery nadawców z zewnątrz widziały dwa różne cele. Połowa wiadomości trafiała na stary, wyłączony serwer. Druga połowa lądowała poprawnie w nowej chmurze.
Sprawdzenie priorytetów MX zajmuje kilkanaście sekund. Wymaga wpisania jednej, prostej komendy. Brak odpowiedzi na zapytanie o typ MX powoduje, że serwer wysyłający próbuje dostarczyć wiadomość na adres z rekordu A. To często kończy się twardym odrzuceniem (hard bounce) i zablokowaniem IP nadawcy.
Jak wymusić odpytanie konkretnego serwera DNS (np. Google 8.8.8.8)?
Domyślnie program pyta serwer dostawcy internetu wpisany w ustawieniach karty sieciowej. Ten często przechowuje nieaktualne dane w swojej pamięci podręcznej. Musisz sprawdzić, jak widzi świat reszta globalnej sieci. Używamy do tego publicznych resolverów.
Składnia wygląda tak: nslookup onet.pl 1.1.1.1.
Omijasz w ten sposób lokalne blokady operatora. Diagnozujesz problem z rozchodzeniem się zmian. To w sumie chyba hipoteza z wczoraj, że lokalni dostawcy trzymają cache przez 24 godziny. Zazwyczaj odświeżają go o wiele szybciej. Mimo to, wymuszanie zapytania to nawyk każdego administratora systemów linuksowych i windowsowych.
Czym różni się tryb interaktywny od nieinteraktywnego w nslookup?
Tryb nieinteraktywny to jedno polecenie i jeden wynik w oknie. Wrzucasz komendę z parametrami i od razu wracasz do znaku zachęty powłoki. Tryb interaktywny to z kolei osobna podpowłoka programu. Otwierasz ją wpisując po prostu samo słowo nslookup i wciskając enter.
Znak zachęty zmienia się na znak większości. Możesz teraz seryjnie wpisywać nazwy domen bez powtarzania nazwy narzędzia. Zmieniasz typy odpytywanych rekordów krótkim poleceniem set type=txt. Przełączasz serwery docelowe poleceniem server 8.8.4.4. Wychodzisz z tego trybu wpisując exit. To znacznie przyspiesza pracę przy audycie całej strefy dla dużego przedsiębiorstwa.
Kiedy lepiej używać trybu interaktywnego?
Dla jednej domeny szkoda czasu na wchodzenie w osobną powłokę. Tryb interaktywny odpalam, gdy muszę przetestować całą strukturę sieciową firmy. Sprawdzam rekordy A. Potem sprawdzam MX. Następnie weryfikuję wpisy tekstowe autoryzujące usługi chmurowe. Wszystko w jednym oknie.
(Mała dygresja – ostatnio na testach audytowych w sieci zamkniętej okazało się, że tryb interaktywny zawieszał się na starych maszynach z Windows Server 2012, jeśli serwer DNS wewnątrz sieci miał zablokowane zapytania rekursywne. Zwykły timeout, ale irytujący). Zmieniliśmy konfigurację zapory na poziomie brzegowym.
Jakie są najważniejsze typy rekordów DNS do sprawdzenia w konsoli?
Weryfikacja infrastruktury wymaga znajomości typów wpisów, którymi posługuje się internet. Zestawiliśmy te najczęściej analizowane na produkcji przez zespoły wsparcia.
| Typ rekordu | Praktyczne znaczenie dla sieci | Składnia komendy nslookup |
| A | Przypisuje domenę do adresu IPv4. Podstawa działania stron WWW. | nslookup -type=A domena.pl |
| AAAA | Przypisuje domenę do adresu IPv6. Nowszy standard adresacji. | nslookup -type=AAAA domena.pl |
| MX | Wskazuje hosty odpowiedzialne za przyjmowanie poczty e-mail. | nslookup -type=MX domena.pl |
| TXT | Przechowuje dowolny tekst. Używany do weryfikacji własności i polityk antyspamowych. | nslookup -type=TXT domena.pl |
Często zapomina się o rekordach CNAME. Tworzą one aliasy nazewnicze. Wskazują z jednej domeny na drugą nazwę domenową, a nie bezpośrednio na IP. Jeśli CNAME jest źle skonfigurowany, przeglądarka użytkownika wpadnie w pętlę nieskończonych przekierowań. Zdiagnozujesz to wpisując nslookup -type=cname www.twojastrona.pl.
Dlaczego nslookup zwraca błąd „Non-authoritative answer”?
To nie jest błąd systemu. To sucha informacja diagnostyczna. System mówi ci wprost, że odpowiedź pochodzi z pamięci podręcznej. Serwer, który odpytałeś z poziomu terminala, nie jest prawowitym właścicielem tej domeny. On po prostu zapamiętał wynik z poprzedniego zapytania od innego użytkownika w sieci.
Większość zapytań w internecie kończy się takim właśnie komunikatem. Maszyny wymieniają się informacjami i przechowują je lokalnie, aby zminimalizować czas oczekiwania na załadowanie strony. Jeżeli potrzebujesz absolutnej pewności co do stanu konfiguracji, musisz odpytać serwer autorytatywny obsługujący konkretny adres.
Czym różni się serwer autorytatywny od buforującego?
Serwer autorytatywny trzyma oryginalny, tekstowy plik strefy. On ma zawsze w stu procentach pewne dane wpisane ręcznie przez administratora. Serwer buforujący (resolver lokalny) tylko pyta innych i zapisuje odpowiedzi do pamięci RAM. Odciąża w ten sposób globalną infrastrukturę sieciową. Przyspiesza to drastycznie ładowanie stron internetowych dla użytkowników domowych.
Aby sprawdzić, kto jest autorytatywny dla danej nazwy, używasz komendy sprawdzającej serwery nazw: nslookup -type=ns domena.pl. System zwróci listę maszyn (najczęściej dwie lub więcej), które trzymają oryginalne wpisy. Wtedy możesz wymusić odpytanie jednej z nich.
Jak zdiagnozować problem z propagacją domeny używając nslookup?
Kupiłeś domenę u rejestratora. Podpiąłeś ją pod swój nowy hosting VPS. Strona nie działa u ciebie w biurze. Znajomy z drugiego końca Polski dzwoni i mówi, że u niego wszystko się ładuje poprawnie. Masz do czynienia z propagacją światową.
Informacja o nowym adresie IP musi rozejść się po serwerach na całym świecie. To zajmuje czas, determinowany przez parametr TTL (Time To Live) zapisany w strefie. Wpisujesz nslookup twojadomena.pl. Widzisz stary adres. Odpytujesz serwer autorytatywny hostingu podając jego IP na końcu komendy. Widzisz nowy adres. Wiesz już, że konfiguracja po twojej stronie jest całkowicie poprawna.
Musisz po prostu poczekać, aż serwer twojego dostawcy internetu wyczyści stary wpis z cache i zaciągnie nowe dane. Czasem pomaga zresetowanie routera brzegowego w biurze, który ma własny, wbudowany bufor DNS. PISZĘ TO z pełną frustracją, bo ludzie ciągle szukają błędów w kodzie strony, gdy wina leży w starym buforze operatora T-Mobile czy Orange.
Czy nslookup potrafi sprawdzić rekordy TXT i zabezpieczenia SPF?
Oszustwa phishingowe to ogromny problem dla biznesu. Administratorzy walczą z nimi za pomocą rekordów SPF (Sender Policy Framework), DKIM i DMARC. Wszystkie one są zapisywane w systemie DNS jako zwykłe, płaskie rekordy typu TXT. Program wbudowany w Windowsa i Linuksa bez problemu je wyciąga i parsuje na ekranie.
Wydajesz polecenie nslookup -type=txt paypal.com.
Otrzymujesz długi ciąg znaków w cudzysłowach. Zaczyna się od frazy v=spf1. To ścisła reguła określająca, z jakich puli adresów IP wolno wysyłać maile w imieniu tej domeny. Jeśli weryfikujesz dlaczego wiadomości z twojego sklepu internetowego lądują w spamie u klientów na kontach Gmail, zacznij od sprawdzenia tego właśnie wpisu w konsoli.
Brak rekordu SPF to w obecnych realiach gwarantowana blokada na serwerach pocztowych Google i Microsoftu. Twój mail nawet nie dotrze do folderu spam. Zostanie odrzucony na poziomie nawiązywania sesji SMTP.
Co to jest Reverse DNS Lookup i jak go wykonać?
Zwykłe zapytanie zamienia nazwę na cyfry. Zapytania odwrotne (Reverse DNS) działają dokładnie w drugą stronę. Masz w logach serwera ciąg liczb. Jakiś adres IP nieustannie skanuje twoje porty SSH. Chcesz poznać nazwę maszyny i dostawcę usług, do którego ona należy.
Wpisujesz adres IP prosto do konsoli: nslookup 142.250.190.46.
System odpytuje specjalną strefę in-addr.arpa zarezerwowaną dla adresacji odwrotnej. W odpowiedzi otrzymujesz ciąg znaków, na przykład waw02s22-in-f14.1e100.net. Od razu widzisz, że ruch pochodzi z infrastruktury Google. Jeśli serwer pocztowy wysyłający do ciebie wiadomości nie ma skonfigurowanego rekordu odwrotnego (PTR), większość nowoczesnych systemów antyspamowych uzna go za bota spamerów i odrzuci pakiety.
Jak debugować błędy „DNS request timed out”?
Czasami konsola wyrzuca suchy błąd o przekroczeniu limitu czasu. Serwer nie odpowiedział. Zwykle to wina źle skonfigurowanej zapory sieciowej. Firewall wycina pakiety UDP na porcie 53, traktując je jako potencjalny atak DDoS (DNS Amplification).
Wtedy wymuszam połączenie po protokole TCP używając parametru debugowania. Uruchamiam tryb interaktywny. Wpisuję set vc (od Virtual Circuit). Wpisuję set debug. Następnie uderzam z zapytaniem o domenę. Widzę cały proces nawiązywania trójetapowego uścisku dłoni TCP. Jeśli pakiet przejdzie, wiem gdzie dokładnie szukać problemu w konfiguracji sprzętowego routera brzegowego na serwerowni.
Alternatywy dla nslookup: Kiedy użyć dig lub host?
W zaawansowanych środowiskach linuksowych nslookup uchodzi za narzędzie przestarzałe. Mimo to, wciąż jest domyślnie instalowane w większości dystrybucji. Większość inżynierów woli jednak komendę dig (Domain Information Groper).
Daje ona o wiele bardziej szczegółowe i surowe wyniki. Pokazuje dokładny czas odpowiedzi serwera w milisekundach. Wyrzuca czystszy format tekstu, który nieporównywalnie łatwiej parsować w skryptach bashowych automatyzujących infrastrukturę.
Narzędzie host to kolejna opcja w terminalu. Jest o wiele prostsze od obu powyższych. Skupia się na zwróceniu pojedynczej, czytelnej linijki z adresem IP. Idealnie nadaje się do bardzo szybkich testów manualnych w biegu.
Ja osobiście używam nslookup na maszynach z systemem Windows, bo jest tam po prostu domyślnie dostępne z pudełka bez instalowania dodatkowych pakietów. Na serwerach linuksowych odruchowo wpisuję dig. Ważne jest to, by znać ich składnię i dokładnie wiedzieć, czego szuka się w zrzutach tekstu na ekranie.
Wiesz już jak diagnozować strefy sieciowe krok po kroku. Przestań polegać na kolorowych, przeglądarkowych testerach z reklamami. Odpal czarny terminal. Wpisz komendę dla własnej domeny firmowej. Sprawdź, gdzie dokładnie kieruje rekord MX i czy masz poprawnie ustawiony tekstowy SPF. Znajdziesz tam często błędy, o których nie miałeś pojęcia, a które od miesięcy blokują twoje maile z ofertami handlowymi do klientów.
Często zadawane pytania (FAQ)
- Czy nslookup działa tylko w systemie Windows?
Nie. Narzędzie jest wbudowane natywnie w systemy Windows, macOS oraz większość dystrybucji systemu Linux (z pakietu bind-utils). - Dlaczego nslookup pokazuje inny adres IP niż przeglądarka?
Przeglądarki internetowe często posiadają własny, wewnętrzny bufor DNS (np. Chrome odpytuje własne struktury). Nslookup omija przeglądarkę i pyta bezpośrednio serwer sieciowy systemu operacyjnego. - Jak wyczyścić cache DNS po zmianie rekordów?
W systemie Windows należy otworzyć wiersz poleceń z uprawnieniami administratora i wpisać komendęipconfig /flushdns. - Co oznacza rekord CNAME w wynikach odpytania?
CNAME to alias. Oznacza, że odpytywana domena nie ma własnego, przypisanego na sztywno adresu IP, lecz wskazuje na inną nazwę domenową, która docelowo posiada rekord A. - Jak sprawdzić, kto jest rejestratorem danej domeny?
Nslookup nie służy do sprawdzania danych właściciela ani rejestratora. Do tego celu używa się narzędziawhoiswyszukującego informacje w bazach danych rejestrów krajowych. - Czy można sprawdzić historię zmian rekordów DNS przez nslookup?
Nie. Protokół DNS i samo narzędzie odpytuje wyłącznie o aktualny stan strefy. Do sprawdzania historii zmian należy użyć zewnętrznych archiwów internetowych i portali typu SecurityTrails.
Bibliografia i źródła
1. Główny Urząd Statystyczny – https://stat.gov.pl
2. Naukowa i Akademicka Sieć Komputerowa (NASK) – https://nask.pl
3. Internet Engineering Task Force – https://ietf.org
4. Wydawnictwo Naukowe PWN – https://pwn.pl
5. Microsoft Learn – https://learn.microsoft.com
