Powrót do bloga

DNS troubleshooting: nslookup, dig, DoH

· 7 min czytania

W skrócie: Problemy DNS są jednymi z najczęstszych i najtrudniejszych do zdiagnozowania przyczyn awarii - bo "DNS działa u mnie" nie znaczy, że działa u twoich klientów. Oto przegląd praktycznych narzędzi i procedur.

W skrócie: Problemy DNS są jednymi z najczęstszych i najtrudniejszych do zdiagnozowania przyczyn awarii - bo "DNS działa u mnie" nie znaczy, że działa u twoich klientów. Oto przegląd praktycznych narzędzi i procedur.

Najczęstsze problemy DNS

  • Wygasła rejestracja domeny - cały DNS przestaje działać.
  • Nieprawidłowy rekord A/AAAA - po migracji serwera zapomniano zaktualizować.
  • Brakujący CNAME / MX - email nie działa, podczas gdy strona tak.
  • TTL nieprzygotowany do szybkich zmian - cache providerów nadal serwuje stare dane.
  • Błąd DNSSEC - walidatory odrzucają niepodpisane lub źle podpisane rekordy.
  • Awaria Geo-DNS - resolver z określonego regionu dostaje błędną odpowiedź.

nslookup: najprostszy polecenie

Dostępny na wszystkich OS bez instalacji. Używa domyślnego serwera DNS systemu, ale można jawnie określić przez drugi argument.

$ nslookup epulz.io
Server:    127.0.0.53
Address:   127.0.0.53#53

Non-authoritative answer:
Name:      epulz.io
Address:   87.197.115.180

# Jawnie użyć Cloudflare DNS
$ nslookup epulz.io 1.1.1.1

# Konkretny typ rekordu
$ nslookup -type=MX gmail.com 8.8.8.8
$ nslookup -type=TXT _dmarc.epulz.io 1.1.1.1

dig: szczegółowe zapytanie DNS dla Unix

dig (Domain Information Groper) jest znacznie bardziej szczegółowy i elastyczny. Część pakietu bind-utils lub dnsutils.

$ dig epulz.io

;; QUESTION SECTION:
;epulz.io.                      IN      A

;; ANSWER SECTION:
epulz.io.               300     IN      A       87.197.115.180

;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: ...

Kluczowe pola:

  • TTL (300) = sekundy, przez które resolver może cachować odpowiedź.
  • ANSWER SECTION = wynik.
  • SERVER = który resolver DNS odpowiedział.
  • Query time = trwanie - przydatne przy debugowaniu wolnego DNS.

Praktyczne polecenia

# Krótka odpowiedź (tylko IP)
$ dig +short epulz.io
87.197.115.180

# Wszystkie rekordy
$ dig epulz.io ANY

# Trace całej hierarchii DNS (od root nameserverów)
$ dig +trace epulz.io

# Reverse lookup
$ dig -x 87.197.115.180

# Konkretny resolver
$ dig @8.8.8.8 epulz.io
$ dig @1.1.1.1 epulz.io
$ dig @9.9.9.9 epulz.io

# Walidacja DNSSEC
$ dig +dnssec epulz.io

DNS-over-HTTPS (DoH): gdy nie masz UDP/53

W niektórych sieciach (korporacyjne firewalle, dane mobilne z blokowaniem) tradycyjny port DNS 53 jest blokowany. DoH pakuje zapytania DNS w żądania HTTPS - przechodzą wszędzie tam, gdzie działa 443.

# Endpoint DoH Cloudflare
$ curl -s "https://cloudflare-dns.com/dns-query?name=epulz.io&type=A" \
       -H "Accept: application/dns-json" | jq

# Google DoH
$ curl -s "https://dns.google/resolve?name=epulz.io&type=MX" | jq

Online klient DoH z ładnym UI mamy też na - bez instalacji.

Procedura przy "domena nie działa"

  1. Sprawdź rejestrację. whois yourdomain.com lub przez rejestratora. Jeśli wygasła, nic innego nie naprawisz.
  2. Sprawdź rekordy NS. dig NS yourdomain.com @8.8.8.8. Czy zwracane są nameservery odpowiedzialne za domenę? Czy zgadzają się z tym, co masz w panelu rejestratora?
  3. Sprawdź rekord A. dig yourdomain.com @8.8.8.8. Czy zwraca prawidłową IP?
  4. Przetestuj z zewnętrznej sieci (dane mobilne, VPN, narzędzie online). Sam możesz mieć cached stare dane.
  5. Sprawdź TTL. Jeśli właśnie zmieniłeś rekord, poczekaj co najmniej oryginalny TTL (domyślnie 1-24 godziny).
  6. Sprawdź DNSSEC. Jeśli używasz, łańcuch sygnatur może być uszkodzony. dig +dnssec yourdomain.com pokazuje flagę ad przy sukcesie.

Propagacja DNS: ile trwa?

"Propagacja DNS" to nieco mylący termin. DNS nie propaguje się w twoim kierunku - twoje resolvery pobierają odpowiedź i cachują ją zgodnie z TTL. Dopiero po wygaśnięciu TTL próbują nowego zapytania.

Praktyczne konsekwencje:

  • Planujesz migrację? Obniż TTL do 60-300 sekund co najmniej 48 godzin wcześniej.
  • Stara IP pozostanie aktualna dla niektórych klientów jeszcze długo po zmianie. Nie wyłączaj starego serwera natychmiast.
  • Cloud providers (Cloudflare, AWS Route 53) mają szybkie TTL i cache invalidation, ale klient końcowy musi czekać na TTL własnego resolvera.

Wnioski

DNS to infrastrukturalny klej, który wszyscy uważają za oczywistość - dopóki nie przestanie działać. Regularny monitoring rekordów DNS (A, NS, MX, ich TTL i walidacji DNSSEC) wykrywa problem zanim zgłosi go klient telefonem.

Monitoring DNS i wygaśnięcia WHOIS

ePulz.io śledzi rekordy A/AAAA/MX/NS i wygaśnięcie rejestracji domeny. 7 dni za darmo.

Uruchom monitoring →


Wypróbuj ePulz.io za darmo - 7 dni bez karty kredytowej.

Załóż konto