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"
- Skontrolujte registráciu.
whois yourdomain.comalebo cez registrátora. Ak vypršala, nič iné neopravíte. - 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? - Skontrolujte A záznam.
dig yourdomain.com @8.8.8.8. Vracia správnu IP? - Otestujte z externej siete (mobilné dáta, VPN, online tool). Vy sami možno máte cached staré údaje.
- Skontrolujte TTL. Ak ste práve zmenili záznam, počkajte aspoň pôvodné TTL (defaultne 1-24 hodín).
- Skontrolujte DNSSEC. Ak používate, môže byť signature reťazec poškodený.
dig +dnssec yourdomain.comukážeadflag 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 →