Zpět na blog

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"

  1. Zkontrolujte registraci. whois yourdomain.com nebo přes registrátora. Pokud vypršela, nic jiného neopravíte.
  2. 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?
  3. Zkontrolujte A záznam. dig yourdomain.com @8.8.8.8. Vrací správnou IP?
  4. Otestujte z externí sítě (mobilní data, VPN, online tool). Vy sami možná máte cached stará data.
  5. Zkontrolujte TTL. Pokud jste právě změnili záznam, počkejte alespoň původní TTL (defaultně 1-24 hodin).
  6. Zkontrolujte DNSSEC. Pokud používáte, může být signature řetězec poškozen. dig +dnssec yourdomain.com ukáže ad flag 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.

Spustit monitoring →


Vyzkoušejte ePulz.io zdarma - 7 dní bez kreditní karty.

Vytvořit účet