← Späť na blog
2024-05-12 · 7 min

DNS troubleshooting: nslookup, dig a DNS-over-HTTPS

V skratke: DNS problémy sú jedny z najčastejších a najťažšie diagnostikovateľných príčin výpadkov - lebo "DNS funguje pre mňa" neznamená, že funguje pre vašich zákazníkov. Tu je prehľad praktických nástrojov a postupov.

Najčastejšie DNS problémy

  • Vypršala doménová registrácia - celý DNS prestane fungovať.
  • Nesprávny A/AAAA záznam - po migrácii servera sa zabudlo updatnúť.
  • Chýbajúci CNAME / MX - email nefunguje, pričom web áno.
  • TTL nezostavený pre rýchle zmeny - cache providerov ešte servuje staré údaje.
  • DNSSEC chyba - validátory odmietnu nepodpísané alebo zle podpísané záznamy.
  • Geo-DNS porucha - resolver z istého regiónu dostáva nesprávnu odpoveď.

nslookup: najjednoduchší príkaz

Dostupný na všetkých OS bez inštalácie. Default DNS server systému použije, ale možno explicitne určiť cez 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

# Explicitne použiť Cloudflare DNS
$ nslookup epulz.io 1.1.1.1

# Konkrétny 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 pre Unix

dig (Domain Information Groper) je výrazne podrobnejší a flexibilnejší. Súčasť balíka bind-utils alebo 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: ...

Kľúčové polia:

  • TTL (300) = sekundy, ktoré resolver môže odpoveď cachovať.
  • ANSWER SECTION = výsledok.
  • SERVER = ktorý DNS resolver odpovedal.
  • Query time = trvanie - užitočné pri ladení pomalého DNS.

Praktické príkazy

# Stručná odpoveď (iba IP)
$ dig +short epulz.io
87.197.115.180

# Všetky záznamy
$ dig epulz.io ANY

# Trace celej DNS hierarchie (od root nameserverov)
$ dig +trace epulz.io

# Reverse lookup
$ dig -x 87.197.115.180

# Konkrétny resolver
$ dig @8.8.8.8 epulz.io
$ dig @1.1.1.1 epulz.io
$ dig @9.9.9.9 epulz.io

# DNSSEC validácia
$ dig +dnssec epulz.io

DNS-over-HTTPS (DoH): keď nemáte UDP/53

V niektorých sieťach (korporátne firewally, mobilné dáta s blokovaním) je tradičný DNS port 53 blokovaný. DoH balí DNS dotazy do HTTPS requestov - prejdú všade, 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 pekným UI máme aj na /nastroje/dns-lookup - žiadna inštalácia.

Postup pri "doména nefunguje"

  1. Skontrolujte registráciu. whois yourdomain.com alebo cez registrátora. Ak vypršala, nič iné neopravíte.
  2. Skontrolujte NS záznamy. dig NS yourdomain.com @8.8.8.8. Vrátia sa nameservery, ktoré odpovedajú za doménu? Sedia s tým, čo máte v paneli registrátora?
  3. Skontrolujte A záznam. dig yourdomain.com @8.8.8.8. Vracia správnu IP?
  4. Otestujte z externej siete (mobilné dáta, VPN, online tool). Vy sami možno máte cached staré údaje.
  5. Skontrolujte TTL. Ak ste práve zmenili záznam, počkajte aspoň pôvodné TTL (defaultne 1-24 hodín).
  6. Skontrolujte DNSSEC. Ak používate, môže byť signature reťazec poškodený. dig +dnssec yourdomain.com ukáže ad flag pri úspechu.

DNS propagácia: koľko trvá?

"DNS propagácia" je trochu zavádzajúci termín. DNS sa nepropaguje smerom k vám - vaše resolveri si stiahnu odpoveď a cachujú ju podľa TTL. Až po vypršaní TTL sa pokúsia o nový dotaz.

Praktické dôsledky:

  • Plánujete migráciu? Znížte TTL na 60-300 sekúnd aspoň 48 hodín vopred.
  • Stará IP zostane platná pre niektorých klientov ešte dlho po zmene. Nevypínajte starý server hneď.
  • Cloud providers (Cloudflare, AWS Route 53) majú rýchle TTL aj cache invalidation, no koncový klient stále musí čakať na TTL svojho vlastného resolver-a.

Záver

DNS je infraštruktúrny lepidlo, ktoré všetci považujú za samozrejmosť - kým neprestane fungovať. Pravidelný monitoring DNS záznamov (A, NS, MX, ich TTL aj DNSSEC validácia) odhalí problém skôr, než nahlási zákazník telefónom.

Monitoring DNS aj WHOIS expirácie

ePulzio sleduje A/AAAA/MX/NS záznamy a expiráciu doménovej registrácie. 7 dní zdarma.

Spustiť monitoring →