DNS troubleshooting: nslookup, dig, DoH
· 7 min czytania
Problemy z DNS to jedna z najczęstszych i najtrudniejszych do zdiagnozowania przyczyn awarii. Praktyczne narzędzia: nslookup, dig i DNS-over-HTTPS.
Najczęstsze problemy DNS
- Wygasła rejestracja domeny - cały DNS przestaje działać.
- Nieprawidłowy rekord A/AAAA - zapomniano zaktualizować po migracji serwera.
- Brakujący CNAME / MX - strona działa, ale email nie.
- TTL nieobniżony przed planowaną 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: najprostsze polecenie
Dostępny na wszystkich OS bez instalacji. Używa domyślnego serwera DNS systemu, ale można go jawnie wskazać jako 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. Jest częścią 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) = liczba sekund, przez które resolver może cachować odpowiedź.ANSWER SECTION= sam wynik.SERVER= który resolver DNS odpowiedział.Query time= czas trwania zapytania - 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, więc przechodzą wszędzie tam, gdzie działa port 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 klienta DoH z przejrzystym interfejsem mamy też na /tools/dns-lookup - bez żadnej 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ć w cache stare dane.
- Sprawdź TTL. Jeśli właśnie zmieniłeś rekord, poczekaj co najmniej oryginalny TTL (domyślnie od 1 do 24 godzin).
- Sprawdź DNSSEC. Jeśli go używasz, łańcuch sygnatur może być uszkodzony.
dig +dnssec yourdomain.comprzy sukcesie pokazuje flagęad.
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 pozostaje w cache niektórych klientów jeszcze długo po zmianie. Nie wyłączaj starego serwera natychmiast.
- Cloud providerzy (Cloudflare, AWS Route 53) obsługują krótkie wartości TTL i szybką propagację zmian, 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 walidacja 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.
Utwórz konto