Terug naar blog

DNS troubleshooting: nslookup, dig, DoH

· 7 min leestijd

DNS-problemen horen bij de meest voorkomende en lastigst te diagnosticeren oorzaken van uitval. Praktische tools: nslookup, dig en DNS-over-HTTPS.

DNS troubleshooting: nslookup, dig, DoH

Meest voorkomende DNS-problemen

  • Domeinregistratie verlopen - de hele DNS stopt met werken.
  • Verkeerd A/AAAA-record - vergeten na een servermigratie.
  • Ontbrekende CNAME / MX - de website werkt, maar de email niet.
  • TTL niet verlaagd vóór een geplande wijziging - caches van providers serveren nog oude data.
  • DNSSEC-fout - validators wijzen ongetekende of fout getekende records af.
  • Geo-DNS-storing - een resolver van een bepaalde regio krijgt het verkeerde antwoord.

nslookup: het eenvoudigste commando

Beschikbaar op alle OS zonder installatie. Het gebruikt de standaard DNS-server van het systeem, maar je kunt er expliciet een opgeven als tweede 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

# Expliciet Cloudflare DNS gebruiken
$ nslookup epulz.io 1.1.1.1

# Specifiek recordtype
$ nslookup -type=MX gmail.com 8.8.8.8
$ nslookup -type=TXT _dmarc.epulz.io 1.1.1.1

dig: gedetailleerde DNS-query voor Unix

dig (Domain Information Groper) is aanzienlijk gedetailleerder en flexibeler. Het is onderdeel van het pakket bind-utils of 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: ...

Sleutelvelden:

  • TTL (300) = het aantal seconden dat de resolver het antwoord mag cachen.
  • ANSWER SECTION = het resultaat zelf.
  • SERVER = welke DNS-resolver antwoordde.
  • Query time = duur van de query - handig bij het debuggen van trage DNS.

Praktische commando's

# Beknopt antwoord (alleen IP)
$ dig +short epulz.io
87.197.115.180

# Alle records
$ dig epulz.io ANY

# Trace van de hele DNS-hiërarchie (vanaf root nameservers)
$ dig +trace epulz.io

# Reverse lookup
$ dig -x 87.197.115.180

# Specifieke resolver
$ dig @8.8.8.8 epulz.io
$ dig @1.1.1.1 epulz.io
$ dig @9.9.9.9 epulz.io

# DNSSEC-validatie
$ dig +dnssec epulz.io

DNS-over-HTTPS (DoH): wanneer je geen UDP/53 hebt

In sommige netwerken (corporate firewalls, mobiele data met blokkering) is de traditionele DNS-poort 53 geblokkeerd. DoH verpakt DNS-queries in HTTPS-requests, zodat ze overal doorgaan waar poort 443 werkt.

# 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

Een online DoH-client met een overzichtelijke UI hebben we ook op /tools/dns-lookup - zonder enige installatie.

Procedure voor "domein werkt niet"

  1. Controleer de registratie. whois yourdomain.com of via de registrar. Als die verlopen is, kan niets anders worden gerepareerd.
  2. Controleer de NS-records. dig NS yourdomain.com @8.8.8.8. Worden de nameservers die verantwoordelijk zijn voor het domein teruggegeven? Komen ze overeen met wat je in het registrarpaneel hebt?
  3. Controleer het A-record. dig yourdomain.com @8.8.8.8. Geeft het de juiste IP terug?
  4. Test vanuit een extern netwerk (mobiele data, VPN, online tool). Je hebt mogelijk zelf oude data in cache.
  5. Controleer de TTL. Als je net een record hebt gewijzigd, wacht minstens de oorspronkelijke TTL (standaard 1 tot 24 uur).
  6. Controleer DNSSEC. Als je het gebruikt, kan de signature-keten kapot zijn. dig +dnssec yourdomain.com toont de ad-flag bij succes.

DNS-propagatie: hoe lang duurt het?

"DNS-propagatie" is een enigszins misleidende term. DNS propageert niet naar jou toe - je resolvers downloaden het antwoord en cachen het volgens de TTL. Pas na het verlopen van de TTL proberen ze een nieuwe query.

Praktische gevolgen:

  • Plan je een migratie? Verlaag de TTL naar 60 tot 300 seconden minstens 48 uur van tevoren.
  • Het oude IP blijft bij sommige clients nog lang na de wijziging in cache. Schakel de oude server niet onmiddellijk uit.
  • Cloud providers (Cloudflare, AWS Route 53) ondersteunen korte TTL-waarden en een snelle propagatie van wijzigingen, maar de eindclient moet nog steeds wachten op de TTL van zijn eigen resolver.

Conclusie

DNS is de infrastructuurlijm die iedereen vanzelfsprekend vindt - totdat het stopt met werken. Regelmatige monitoring van DNS-records (A, NS, MX, hun TTL en DNSSEC-validatie) onthult het probleem voordat een klant het telefonisch meldt.

Monitoring van DNS en WHOIS-verloop

ePulz.io volgt A/AAAA/MX/NS-records en het verloop van de domeinregistratie. 7 dagen gratis.

Monitoring starten →

Delen: Link gekopieerd

Probeer ePulz.io gratis - 7 dagen zonder creditcard.

Account aanmaken