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"
- Sprawdź rejestrację.
whois yourdomain.comlub przez rejestratora. Jeśli wygasła, nic innego nie naprawisz. - 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? - Sprawdź rekord A.
dig yourdomain.com @8.8.8.8. Czy zwraca prawidłową IP? - Przetestuj z zewnętrznej sieci (dane mobilne, VPN, narzędzie online). Sam możesz mieć cached stare dane.
- Sprawdź TTL. Jeśli właśnie zmieniłeś rekord, poczekaj co najmniej oryginalny TTL (domyślnie 1-24 godziny).
- Sprawdź DNSSEC. Jeśli używasz, łańcuch sygnatur może być uszkodzony.
dig +dnssec yourdomain.compokazuje flagęadprzy 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.
Wypróbuj ePulz.io za darmo - 7 dni bez karty kredytowej.
Załóż konto