Domain Name System
DNS (Domain Name System) je základní služba internetu, která převádí názvy domén na IP adresy a naopak. Poruchy v DNS se projevují širokou škálou problémů: od pomalého načítání webových stránek přes úplnou nedostupnost služeb až po chyby při odesílání e-mailů nebo selhání ověřování. Tento článek představuje systematický postup diagnostiky a praktické využití nástrojů pro analýzu DNS chyb na úrovni resolveru, delegací i autoritativních serverů.
Metodika: od symptomu k vrstvě
- Upřesněte symptom: nefunguje pouze jedno jméno, jedna doména, nebo všechny názvy? Týká se problém forward i reverse dotazů?
- Izolujte vrstvu: klient → stub resolver → rekurzivní resolver → autoritativní servery → registr/registry.
- Ověřte síť: latence, blokace portu 53/udp, 53/tcp, případně 853/tcp (DoT) nebo DoH přes 443/tcp.
- Porovnejte odpovědi: dotaz na lokální resolver versus veřejné (například 1.1.1.1, 8.8.8.8) – zjistěte, zda je problém lokální nebo na autoritativním serveru.
- Proveďte trasování a kontrolu delegace: iterativní +trace, NS a SOA záznamy, glue záznam v nadřazené (parent) zóně, konzistence DS/DNSKEY.
Základní nástroje a kdy je použít
- dig/kdig/drill/host: přesná syntaxe dotazů, parametry, validace DNSSEC, trasování delegací.
- nslookup: historický nástroj; používejte jen pokud není dostupný dig (na Windows raději PowerShell
Resolve-DnsName). - PowerShell (Windows):
Resolve-DnsName,Test-DnsServer,Get-DnsClientServerAddress. - tcpdump/Wireshark: zachytávání paketů, analýza EDNS, fragmentace, RCODE, DO bit, NSID.
- DNsviz/Zonemaster/IntoDNS: automatizované online kontroly delegací a DNSSEC (v produkčním prostředí používejte opatrně a mimo incidenty, pokud jsou domény neveřejné).
- Autoritativní validační nástroje:
named-checkzone,named-checkconf(BIND),kzonecheck(Knot DNS),nsd-checkzone(NSD),pdnsutil check-zone(PowerDNS).
Rychlá kontrola resolveru
dig example.com A– základní dotaz přes systémový resolver.dig @1.1.1.1 example.com AAAA– obejde lokální resolver, odhalí lokální cache nebo chybu.dig +short example.com MX– stručný výstup pro přehled.dig -x 93.184.216.34– reverse dotaz, častý zdroj rozdílných problémů (PTR záznamy, delegace in-addr.arpa/ip6.arpa).Resolve-DnsName example.com -Type A– ekvivalent na Windows.
Rozumíme hlavičce a RCODE
- RCODE: NOERROR (úspěch), NXDOMAIN (jméno neexistuje), SERVFAIL (selhání validace/odpovědi), REFUSED (politika), FORMERR (formát dotazu), NOTAUTH/NOTZONE (autorita/sekce).
- AD bit: autentizovaná odpověď (DNSSEC úspěšně validováno v resolveru).
- CD bit: potlačení validace (užitečné pro porovnání chování s a bez DNSSEC).
dig +cdflag,dig +adflag– test vlivu validace.
DNSSEC: časté zdroje SERVFAIL
dig example.com DNSKEY +dnssecadig example.com DS +dnssec @a.gtld-servers.net– ověřte řetězec důvěry parent → child.- Typické chyby: expirované RRSIG, neodpovídající DS (algoritmus, klíč), špatně podepsané glue záznamy, neaktuální hodiny (NTP drift).
dig +trace example.com– sleduje iterativní cestu a identifikuje, kde validace selhává.dig +dnssec @resolver example.com Avs+cdflag– pokud +cdflag projde, je problém v DNSSEC, nikoli v dostupnosti/autorize.
EDNS a velikost paketů
- Ověřte EDNS buffer a DO bit:
dig example.com A +dnssec +bufsize=1232. Hodnota 1232 B minimalizuje riziko fragmentace na moderním internetu. - Pokud odpovědi mizí (firewally zahazují fragmenty), vynucení TCP:
dig +tcp example.com DNSKEY. - Symptom: některé typy (DNSKEY/DS/TXT) selhávají, jiné fungují → podezření na MTU/fragmentaci nebo blokování EDNS.
Trasování delegace a glue
dig +trace example.com– postup od kořenových serverů; sledujte NS a glue záznamy.dig example.com NSadig @tld-server example.com NS– porovnejte parent a child autority; nekonzistence způsobuje flapping.dig ns1.example.com A– ověřte dostupnost glue; pokud chybí nebo je chybný, resolver nedohledá autoritu.dig example.com SOA– kontrola serialu, refresh/retry/expire; důležité pro sekundární servery.
TTL, kešování a negativní keš
dig example.com A +ttlunits– sledujte zbývající TTL; staré odpovědi mohou maskovat opravy.dig nonexistent.example.com A– v NOERROR/NODATA versus NXDOMAIN hraje roli negativní keš a SOA záznam (RFC 2308).- Serve-stale: některé resolvery vrací „stale“ odpovědi při výpadku autorit – důležité vědět při incidentu.
Split-horizon a lokální resoluce
- Odlišné odpovědi uvnitř a vně sítě? Testujte s explicitním resolverem:
dig @10.0.0.53 intranet.corp Avsdig @1.1.1.1 intranet.corp A. - Kontrolujte
/etc/resolv.conf, systemd-resolved (resolvectl status), NetworkManager a vyhledávací domény (search). - Na macOS (mDNSResponder):
scutil --dnsasudo killall -HUP mDNSResponderpro flush cache. - Windows:
ipconfig /all,ipconfig /flushdns,Get-DnsClientServerAddress.
Mailové problémy: MX, SPF, DKIM, DMARC
dig example.com MXa ověřte, že MX ukazují na jmenně řešitelné A/AAAA záznamy.dig mail.example.com AaAAAA– často chybí AAAA nebo forward/reverse konzistence.dig example.com TXT– SPF/DMARC;dig selector._domainkey.example.com TXT– DKIM.- Reverse záznamy (
-x) a PTR ↔ A: některé služby odmítají spojení při nesouladu.
DoT/DoH testy (šifrované DNS)
- DNS-over-TLS:
kdig @1.1.1.1 +tls example.comneboopenssl s_client -connect 1.1.1.1:853 -servername cloudflare-dns.com(ověření handshake). - DNS-over-HTTPS:
curl -s -H "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&type=A". - Pokud DoT/DoH funguje, ale klasické UDP/TCP nikoliv, hledejte lokální filtraci/CGNAT/MTU problém.
Zachytávání a inspekce paketů
tcpdump -ni any port 53 -vvv– rychlá kontrola provozu; sledujte RCODE, velikosti paketů, TC (truncated) bit.- Wireshark filtry:
dns,udp.port==53,tcp.port==53; pro TLStcp.port==853. - Ověření NSID: některé autority vkládají NSID – užitečné při anycast triáži.
Autoritativní servery: kontrola zóny a konfigurace
- BIND:
named-checkconf,named-checkzone example.com /path/zonefile,rndc reload,rndc zonestatus example.com. - Knot DNS:
kzonecheck example.com,knotc zone-status example.com. - NSD:
nsd-checkzone example.com /path/zonefile. - PowerDNS:
pdnsutil check-zone example.com,pdnsutil rectify-zone(DNSSEC NSEC3). - Ověřte serial (SOA) a replikaci na sekundárech; často selhává AXFR/IXFR kvůli ACL nebo chybějícím TSIG.
Nejčastější vzorce chyb a jejich rozpoznání
- NXDOMAIN, ale existuje CNAME: dotazujete CNAME target bez odpovídajících A/AAAA záznamů – doplňte cílové záznamy.
- SERVFAIL jen u DNSKEY/DS: rozpad DNSSEC řetězce; zkontrolujte expiraci RRSIG a shodu DS s DNSKEY.
- REFUSED z autorit: server není open-resolver; dotazujete rekurzi na autoritativním serveru → použijte správný rekurzivní resolver.
- Truncated (TC=1): nedostatečný UDP buffer nebo blokace fragmentace; přejděte na TCP (
+tcp) nebo snižte+bufsize. - Intermitentní time-outy: anycast uzel nebo jeden sekundární server mimo provoz; porovnejte odpovědi od všech NS (
@ns1,@ns2…). - Reverse selhání e-mailů: chybějící PTR na IP odesílacího MTA, nebo PTR ukazuje na jméno bez A/AAAA (nekompletní forward-confirmed reverse DNS).
Kontrolní seznam při incidentu
- Reprodukujte chybu pomocí
dig(A/AAAA/MX/NS/SOA) a uložte výstupy. - Porovnejte lokální a veřejný resolver (
@1.1.1.1,@8.8.8.8). - Spusťte
+tracea najděte nejvyšší úroveň, kde odpověď selhává. - Ověřte DNSSEC (
+dnssec,+cdflag), expiraci RRSIG a shodu DS/DNSKEY. - Změřte velikosti odpovědí (
+stats) a otestujte+tcp,+bufsize=1232. - Zachycení paketů na klientu i serveru; hledejte zahozené fragmenty a RCODE.
- Na autoritativním serveru spusťte
check-zone, proveďte AXFR test z rekurzivního resolveru (pokud je povolen) a ověřte ACL/TSIG.
Tabulka: přehled příkazů a interpretace
| Účel | Příklad | Co sleduji |
|---|---|---|
| Základní dotaz | dig example.com A |
RCODE, sekce ANSWER, TTL |
| Dotaz na konkrétní NS | dig @ns1.example.com example.com SOA |
Autorita, serial, dostupnost |
| Trasování delegace | dig +trace example.com |
Parent/child NS, glue, místo selhání |
| DNSSEC validace | dig example.com A +dnssec / +cdflag |
AD bit, RRSIG, SERVFAIL vs NOERROR |
| EDNS a MTU | dig DNSKEY +dnssec +bufsize=1232 |
Fragmentace, TC bit, TCP fallback |
| Reverse | dig -x 203.0.113.10 |
PTR existuje a odpovídá A/AAAA |
| Windows | Resolve-DnsName example.com -Type MX |
RCODE, servery v odpovědi |
Kont
Eva Senková |



























