DNS troubleshooting: nslookup, dig, DoH
· 7 min čtení
Ve zkratce: DNS problémy jsou jedny z nejčastějších a nejtěžeji diagnostikovatelných příčin výpadků - protože "DNS funguje pro mě" neznamená, že funguje pro vaše zákazníky. Tady je přehled praktických nástrojů a postupů.
Ve zkratce: DNS problémy jsou jedny z nejčastějších a nejtěžeji diagnostikovatelných příčin výpadků - protože "DNS funguje pro mě" neznamená, že funguje pro vaše zákazníky. Tady je přehled praktických nástrojů a postupů.
Nejčastější DNS problémy
- Vypršela doménová registrace - celý DNS přestane fungovat.
- Nesprávný A/AAAA záznam - po migraci serveru se zapomnělo updatnout.
- Chybějící CNAME / MX - email nefunguje, přičemž web ano.
- TTL nepřipravená na rychlé změny - cache providerů ještě servuje stará data.
- DNSSEC chyba - validátory odmítnou nepodepsané nebo špatně podepsané záznamy.
- Geo-DNS porucha - resolver z určitého regionu dostává nesprávnou odpověď.
nslookup: nejjednodušší příkaz
Dostupný na všech OS bez instalace. Default DNS server systému použije, ale lze explicitně určit přes druhý 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
# Explicitně použít Cloudflare DNS
$ nslookup epulz.io 1.1.1.1
# Konkrétní typ záznamu
$ nslookup -type=MX gmail.com 8.8.8.8
$ nslookup -type=TXT _dmarc.epulz.io 1.1.1.1
dig: detailní DNS dotaz pro Unix
dig (Domain Information Groper) je výrazně podrobnější a flexibilnější. Součást balíku bind-utils nebo 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: ...
Klíčová pole:
TTL(300) = sekundy, které resolver může odpověď cachovat.ANSWER SECTION= výsledek.SERVER= který DNS resolver odpověděl.Query time= trvání - užitečné při ladění pomalého DNS.
Praktické příkazy
# Stručná odpověď (jen IP)
$ dig +short epulz.io
87.197.115.180
# Všechny záznamy
$ dig epulz.io ANY
# Trace celé DNS hierarchie (od root nameserverů)
$ dig +trace epulz.io
# Reverse lookup
$ dig -x 87.197.115.180
# Konkrétní resolver
$ dig @8.8.8.8 epulz.io
$ dig @1.1.1.1 epulz.io
$ dig @9.9.9.9 epulz.io
# DNSSEC validace
$ dig +dnssec epulz.io
DNS-over-HTTPS (DoH): když nemáte UDP/53
V některých sítích (korporátní firewally, mobilní data s blokováním) je tradiční DNS port 53 blokovaný. DoH balí DNS dotazy do HTTPS requestů - projdou všude, kde funguje 443.
# Cloudflare DoH endpoint
$ 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 DoH klient s pěkným UI máme i na - žádná instalace.
Postup při "doména nefunguje"
- Zkontrolujte registraci.
whois yourdomain.comnebo přes registrátora. Pokud vypršela, nic jiného neopravíte. - Zkontrolujte NS záznamy.
dig NS yourdomain.com @8.8.8.8. Vrátí se nameservery, které odpovídají za doménu? Sedí s tím, co máte v panelu registrátora? - Zkontrolujte A záznam.
dig yourdomain.com @8.8.8.8. Vrací správnou IP? - Otestujte z externí sítě (mobilní data, VPN, online tool). Vy sami možná máte cached stará data.
- Zkontrolujte TTL. Pokud jste právě změnili záznam, počkejte alespoň původní TTL (defaultně 1-24 hodin).
- Zkontrolujte DNSSEC. Pokud používáte, může být signature řetězec poškozen.
dig +dnssec yourdomain.comukážeadflag při úspěchu.
DNS propagace: jak dlouho trvá?
"DNS propagace" je trochu zavádějící termín. DNS se nepropaguje směrem k vám - vaše resolvery si stáhnou odpověď a cachují ji podle TTL. Až po vypršení TTL se pokusí o nový dotaz.
Praktické důsledky:
- Plánujete migraci? Snižte TTL na 60-300 sekund alespoň 48 hodin předem.
- Stará IP zůstane platná pro některé klienty ještě dlouho po změně. Nevypínejte starý server hned.
- Cloud providers (Cloudflare, AWS Route 53) mají rychlé TTL a cache invalidation, ale koncový klient stále musí čekat na TTL svého vlastního resolveru.
Závěr
DNS je infrastrukturní lepidlo, které všichni považují za samozřejmost - dokud nepřestane fungovat. Pravidelný monitoring DNS záznamů (A, NS, MX, jejich TTL i DNSSEC validace) odhalí problém dříve, než ho nahlásí zákazník telefonem.
Monitoring DNS i WHOIS expirace
ePulz.io sleduje A/AAAA/MX/NS záznamy a expiraci doménové registrace. 7 dní zdarma.
Vyzkoušejte ePulz.io zdarma - 7 dní bez kreditní karty.
Vytvořit účet