Co to jest DNS i jak sprawdzić, czy działa poprawnie?

Co to jest DNS i jak sprawdzić, czy działa poprawnie?

Wpisujesz adres strony w przeglądarce, naciskasz Enter i po chwili widzisz gotową witrynę. Zanim jednak serwer wyśle jej zawartość, komputer musi ustalić, gdzie ma się połączyć. Właśnie tym zajmuje się DNS — system, który przyporządkowuje czytelne nazwy domen do adresów IP używanych przez urządzenia w sieci.

DNS zwykle działa w tle i nie zwraca na siebie uwagi. Kiedy pojawi się błąd, strona może przestać otwierać się dla wszystkich albo tylko dla części użytkowników. Przyczyną bywa literówka w rekordzie, nieaktualna pamięć podręczna, problem u operatora, nieudana zmiana hostingu lub nieprawidłowe serwery nazw. Dobra wiadomość jest taka, że wiele takich usterek można wstępnie rozpoznać bez dostępu do serwera strony.

Najważniejsze informacje

  • DNS tłumaczy nazwę domeny, na przykład example.pl, na adres IP właściwego serwera.
  • Rekordy A i AAAA wskazują adres serwera, CNAME tworzy alias, MX obsługuje pocztę, a TXT przechowuje między innymi dane potrzebne do weryfikacji domeny i zabezpieczenia poczty.
  • Wynik może różnić się między sieciami z powodu cache i czasu TTL.
  • Komunikaty NXDOMAIN oraz SERVFAIL opisują inne problemy i wymagają innego sposobu diagnozy.
  • Pierwsze testy warto wykonać w kilku niezależnych resolverach i porównać z konfiguracją ustawioną u operatora domeny.

Jak działa DNS krok po kroku?

Gdy otwierasz stronę, przeglądarka najpierw sprawdza, czy zna już jej adres IP. Informacja może znajdować się w pamięci przeglądarki, systemu operacyjnego lub routera. Jeżeli jej nie ma, zapytanie trafia do resolvera DNS. Najczęściej jest to serwer udostępniany przez operatora internetu albo publiczna usługa DNS ustawiona ręcznie przez użytkownika.

Resolver szuka odpowiedzi w swojej pamięci podręcznej. Jeśli jej nie posiada, przechodzi przez hierarchię DNS: pyta serwery główne, serwery odpowiedzialne za końcówkę domeny, taką jak .pl, a następnie autorytatywne serwery nazw konkretnej domeny. To właśnie one przechowują właściwe rekordy i udzielają ostatecznej odpowiedzi.

Cały proces zwykle trwa ułamek sekundy. Uzyskany wynik jest zapisywany na określony czas, aby kolejne wizyty nie wymagały powtarzania wszystkich zapytań. Ten mechanizm przyspiesza internet, ale sprawia też, że po zmianie konfiguracji część osób może jeszcze przez pewien czas otrzymywać starą odpowiedź.

Najważniejsze rekordy DNS

Strefa DNS domeny może zawierać wiele typów rekordów. Do diagnozy strony internetowej najczęściej potrzebne są cztery z nich.

Rekord A kieruje nazwę na adres IPv4, na przykład 192.0.2.10. Rekord AAAA pełni podobną funkcję dla IPv6. Jeśli strona została przeniesiona na inny serwer, właśnie te wpisy często wymagają aktualizacji.

Rekord CNAME wskazuje inną nazwę domenową zamiast adresu IP. Może na przykład kierować www.example.pl na example.pl albo na nazwę dostarczoną przez platformę hostingową. CNAME nie jest przekierowaniem widocznym w przeglądarce — działa na etapie ustalania adresu serwera.

Rekord MX określa serwery odbierające pocztę dla domeny. Jego błąd zwykle nie wyłączy strony WWW, ale może zatrzymać dostarczanie wiadomości. Z kolei rekordy TXT są wykorzystywane między innymi przez SPF, DKIM, DMARC oraz mechanizmy potwierdzania własności domeny.

Osobną rolę pełnią rekordy NS, które wskazują autorytatywne serwery nazw. Gdy delegacja u rejestratora i konfiguracja hostingu nie są ze sobą zgodne, poprawne rekordy zapisane w panelu mogą w ogóle nie być widoczne w internecie.

Jak rozpoznać problem z DNS?

Typowym objawem jest komunikat przeglądarki informujący, że nie można znaleźć adresu IP serwera. W Chrome można zobaczyć kod DNS_PROBE_FINISHED_NXDOMAIN, a inne przeglądarki używają podobnych opisów o braku nazwy lub nierozpoznanym hoście.

Na problem z DNS wskazuje również sytuacja, gdy strona:

  • działa w jednej sieci, ale nie działa w innej,
  • otwiera się przez internet mobilny, lecz nie przez domowe Wi-Fi,
  • przestała działać krótko po zmianie hostingu lub serwerów nazw,
  • prowadzi część użytkowników na stary serwer,
  • działa pod adresem głównym, ale nie działa w wariancie z www,
  • nie działa, mimo że sam serwer odpowiada po wpisaniu jego adresu IP.

Nie każdy brak strony oznacza jednak błąd DNS. Jeśli nazwa rozwiązuje się poprawnie, ale serwer zwraca kod 500, 502 albo 503, problem leży zwykle w aplikacji, hostingu lub warstwie pośredniej. Możesz wtedy sprawdzić, czy strona działa i porównać wynik z testem wykonanym na swoim urządzeniu.

Sprawdź rekordy domeny w zewnętrznym teście

Najprościej zacząć od odczytania publicznie dostępnej strefy. W narzędziu sprawdzanie rekordów DNS wpisz domenę bez https://, ścieżki i dodatkowych znaków. Porównaj zwrócone rekordy A, AAAA, CNAME, MX, TXT oraz NS z wartościami, które powinny być ustawione według panelu hostingu lub dokumentacji używanej usługi.

Zwróć uwagę nie tylko na to, czy rekord istnieje, ale też na jego wartość. Stary adres IP może wyglądać poprawnie, choć w rzeczywistości nadal prowadzi do poprzedniego serwera. Sprawdź osobno domenę główną i subdomenę www, ponieważ mogą korzystać z różnych rekordów.

Brak rekordu AAAA nie musi oznaczać awarii — wiele witryn nadal działa wyłącznie po IPv4. Problem pojawia się wtedy, gdy rekord AAAA istnieje, ale wskazuje serwer, który nie obsługuje strony. Część urządzeń może preferować IPv6 i trafiać pod błędny adres, podczas gdy inni użytkownicy nie zauważą usterki.

Diagnostyka za pomocą nslookup

W systemach Windows, macOS i wielu dystrybucjach Linuksa można skorzystać z polecenia nslookup. Najprostszy test wygląda tak:

nslookup example.pl

Wynik powinien zawierać adres lub adresy przypisane do domeny. Aby zapytać o konkretny typ rekordu, użyj na przykład:

nslookup -type=NS example.pl
nslookup -type=MX example.pl
nslookup -type=TXT example.pl

Możesz też porównać odpowiedzi różnych resolverów. W tym celu dopisz adres wybranego serwera DNS na końcu polecenia:

nslookup example.pl 1.1.1.1
nslookup example.pl 8.8.8.8

Jeżeli jeden resolver zwraca nowy adres, a drugi stary, najprawdopodobniej obserwujesz efekt pamięci podręcznej. Jeżeli wszystkie zwracają tę samą błędną wartość, trzeba sprawdzić konfigurację strefy i delegację domeny.

Co oznaczają NXDOMAIN, SERVFAIL i timeout?

Odpowiedź NXDOMAIN oznacza, że według DNS dana nazwa nie istnieje. Przyczyną może być literówka, brak rekordu dla subdomeny, błędna delegacja albo wygaśnięcie domeny. Jeśli błąd dotyczy tylko www, sprawdź, czy dla tego wariantu utworzono rekord A, AAAA lub CNAME.

SERVFAIL informuje, że serwer nie był w stanie poprawnie udzielić odpowiedzi. Częstą przyczyną jest błąd DNSSEC, niedostępny serwer autorytatywny lub niespójna konfiguracja. W takiej sytuacji rekord może istnieć, ale resolver nie uznaje uzyskanej odpowiedzi za poprawną.

Timeout oznacza brak odpowiedzi w oczekiwanym czasie. Może wynikać z awarii resolvera, problemu z siecią, zapory blokującej ruch DNS albo niedostępności serwerów nazw. Pojedynczy timeout nie przesądza jeszcze o przyczynie, dlatego test należy powtórzyć z innej sieci i z użyciem innego resolvera.

Cache DNS i propagacja zmian

Każdy rekord ma parametr TTL określający, jak długo odpowiedź może być przechowywana w pamięci podręcznej. Jeśli przed zmianą adresu TTL wynosił 86400 sekund, resolver może zachować stary wynik nawet przez dobę. Obniżenie TTL już po zmianie nie usunie wcześniej zapisanej odpowiedzi.

Określenie „propagacja DNS” jest wygodnym skrótem. Rekordy nie są rozsyłane jednocześnie do wszystkich serwerów. Poszczególne resolvery po prostu odświeżają swoje dane, gdy wygasa ich cache. Dlatego jedna osoba może już widzieć nową stronę, a inna nadal trafiać na poprzedni hosting.

Przed planowaną migracją warto obniżyć TTL z wyprzedzeniem. Po zakończeniu zmiany można przywrócić dłuższą wartość, aby ograniczyć liczbę zapytań do serwerów autorytatywnych. Nie należy natomiast bez potrzeby edytować rekordów kilka razy z rzędu, bo utrudnia to ustalenie, która odpowiedź jest aktualna.

Jak wyczyścić lokalną pamięć DNS?

Jeśli publiczne testy pokazują poprawny adres, ale komputer nadal korzysta ze starego, warto wyczyścić lokalny cache. W systemie Windows uruchom Wiersz polecenia i wpisz:

ipconfig /flushdns

Następnie zamknij i ponownie otwórz przeglądarkę. Pomóc może również restart routera, ponieważ niektóre urządzenia sieciowe przechowują odpowiedzi DNS. Pamiętaj jednak, że wyczyszczenie cache na komputerze nie zmieni danych zapisanych u resolvera operatora. Jeśli to on nadal przechowuje starą odpowiedź, pozostaje zaczekać do końca TTL albo tymczasowo użyć innego resolvera.

W przypadku problemu występującego tylko w jednej przeglądarce sprawdź także jej ustawienia bezpiecznego DNS, rozszerzenia, VPN i program antywirusowy. Przeglądarka może korzystać z innego resolvera niż reszta systemu, dlatego wyniki testu w terminalu i w oknie strony nie zawsze są identyczne.

DNS czy awaria serwera — jak to rozróżnić?

Najpierw sprawdź, czy domena zwraca oczekiwany adres IP. Jeśli nie, diagnozuj DNS. Jeśli zwraca właściwy adres, wykonaj test ping, ale interpretuj go ostrożnie: część serwerów celowo nie odpowiada na pakiety ICMP, mimo że poprawnie obsługuje strony WWW.

Następnie zwróć uwagę na odpowiedź przeglądarki. Kod HTTP oznacza, że połączenie z jakimś serwerem zostało już nawiązane, więc sam etap rozwiązywania nazwy najczęściej zakończył się powodzeniem. Błąd certyfikatu może z kolei sugerować, że domena kieruje na niewłaściwy serwer, na którym zainstalowano certyfikat dla innej nazwy.

Dobry test obejmuje trzy porównania: inną sieć, inny resolver i inne urządzenie. Jeśli problem wszędzie wygląda tak samo, sprawdź strefę DNS oraz hosting. Jeśli występuje tylko w jednym miejscu, skup się na lokalnym cache, routerze, VPN, filtrach bezpieczeństwa i DNS operatora.

Lista kontrolna dla właściciela strony

Gdy podejrzewasz usterkę DNS, wykonaj kolejno następujące czynności:

  1. Sprawdź, czy domena jest aktywna i nie wygasła.
  2. Zweryfikuj serwery NS u rejestratora domeny.
  3. Odczytaj rekordy A, AAAA i CNAME dla domeny głównej oraz www.
  4. Porównaj adresy z aktualnymi danymi hostingu.
  5. Sprawdź wynik w co najmniej dwóch niezależnych resolverach.
  6. Zweryfikuj TTL i ustal, czy stary wynik może nadal znajdować się w cache.
  7. Jeśli używasz DNSSEC, sprawdź zgodność podpisów i rekordu DS.
  8. Po naprawie przetestuj stronę w innej sieci i sprawdź certyfikat HTTPS.

Zapisz też godzinę wykonania zmiany oraz poprzednie wartości rekordów. Taka dokumentacja pozwala cofnąć błędną konfigurację i ułatwia rozmowę z pomocą techniczną rejestratora lub hostingu.

Podsumowanie

DNS jest jednym z podstawowych elementów działania internetu. Nawet sprawny serwer i poprawnie zbudowana strona pozostaną niedostępne, jeśli domena prowadzi pod zły adres albo serwery nazw nie potrafią udzielić odpowiedzi.

Diagnozę zacznij od sprawdzenia publicznych rekordów, a następnie porównaj odpowiedzi kilku resolverów. Zwracaj uwagę na komunikaty NXDOMAIN i SERVFAIL, pamiętaj o TTL oraz sprawdzaj osobno domenę główną i wariant z www. Dzięki temu szybko ustalisz, czy problem wynika z konfiguracji domeny, pamięci podręcznej, lokalnej sieci czy awarii samego serwera.

Ta strona jest chroniona przez reCAPTCHA. Obowiązuje Polityka prywatności oraz Warunki korzystania Google. Zdjęcia i grafiki pochodzą z serwisu Freepik.