Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

DNS opvragen met dig en nslookup

Module 8: Veiligheid en problemen oplossen · Leestijd: 10 minuten

Leerdoel: Na deze les kun je met dig en nslookup records opvragen, een specifieke nameserver bevragen en de uitvoer lezen.

Kernbegrippen: dig, nslookup, Resolve-DnsName, +short, @server, +trace, ANSWER- en AUTHORITY-sectie, status NOERROR, NXDOMAIN, SERVFAIL, dig -x

Waarom zelf opvragen?

Een paneel laat zien wat jij hebt ingevuld. Wat de rest van de wereld ziet, kan anders zijn: misschien beheert een andere partij de DNS, misschien staat er nog een oud antwoord in een cache. Met een opvraagprogramma stel je dezelfde vraag als een browser of mailserver, en zie je het echte antwoord.

Er zijn drie gangbare programma's:

ProgrammaWaarOpmerking
digmacOS, Linux (Windows via WSL of los te installeren)Meest uitgebreid, standaard bij beheerders
nslookupWindows, macOS, LinuxOveral aanwezig, beknoptere uitvoer
Resolve-DnsNameWindows PowerShellHandig op Windows zonder extra software

Heb je geen opdrachtvenster bij de hand? Dan kun je precies hetzelfde doen met een online dig-tool (les 8.3).

Je eerste vraag met dig

Open Terminal (macOS/Linux) en typ:

$ dig example.com A

De uitvoer ziet er ingekort zo uit:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41872
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;example.com.                  IN      A

;; ANSWER SECTION:
example.com.           2847    IN      A       192.0.2.10

;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
DNS opvragen met dig en nslookup 1:17

Wat je moet lezen:

  • status: het belangrijkste woord. Zie de tabel hieronder.
  • flags: ad betekent dat de resolver het antwoord met DNSSEC heeft gecontroleerd (les 8.1).
  • ANSWER SECTION: de records zelf. De kolommen zijn dezelfde als in een zone: naam, TTL, klasse, type, waarde.
  • TTL (hier 2847): hoeveel seconden dit antwoord nog in de cache van de resolver blijft. Stond in de zone 3600, dan is het antwoord dus al 753 seconden oud. Vraag je het opnieuw, dan zie je het getal aftellen.
  • SERVER: welke resolver je hebt gevraagd. Thuis is dat vaak je router.

De drie statussen die je moet kennen

StatusBetekenisWat te doen
NOERROR met antwoordAlles in orde, dit is het antwoordKlopt de waarde niet? Dan staat er een verkeerd record, of je ziet een oude cache
NOERROR zonder antwoord (ANSWER: 0)De naam bestaat, maar heeft geen record van dit typeVaak: je vraagt het verkeerde type (bijvoorbeeld A op een naam met alleen een CNAME of alleen MX)
NXDOMAINDeze naam bestaat helemaal nietTikfout, record vergeten, of een dubbele domeinnaam zoals mail.example.com.example.com
SERVFAILDe resolver kon geen betrouwbaar antwoord krijgenNameservers onbereikbaar, of een kapotte DNSSEC-keten (probeer +cd)

Handige varianten

Alleen het antwoord met +short:

$ dig +short MX example.com
10 mail.example.com.
20 mail2.example.com.

Een andere resolver of een nameserver direct vragen met @. Dit is het belangrijkste trucje bij problemen. Vraag je de gezaghebbende nameserver zelf, dan krijg je altijd het verse antwoord, zonder cache:

$ dig +short NS example.com
ns1.hosting.example.
ns2.hosting.example.

$ dig +short A www.example.com @ns1.hosting.example
192.0.2.20

$ dig +short A www.example.com @9.9.9.9
192.0.2.10

Hier zie je in één oogopslag wat er aan de hand is: de nameserver geeft al het nieuwe adres (.20), de publieke resolver heeft nog het oude in de cache (.10). Je hoeft dus niets te doen, alleen te wachten tot de TTL voorbij is (module 6).

Andere types: zet het type achter de naam.

$ dig +short TXT example.com
"v=spf1 a mx include:_spf.hosting.example ~all"
"google-site-verification=AbC123..."

$ dig +short TXT _dmarc.example.com
"v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

$ dig +short CNAME shop.example.com
shops.platform.example.

De hele reis volgen met +trace. dig doet dan zelf wat een resolver doet: eerst de root, dan de TLD, dan de gezaghebbende server (les 1.4):

$ dig +trace example.com A
.                 518400  IN  NS  a.root-servers.net.
;; Received 239 bytes from 192.168.1.1#53
com.              172800  IN  NS  a.gtld-servers.net.
;; Received 708 bytes from 198.41.0.4#53(a.root-servers.net)
example.com.      172800  IN  NS  ns1.hosting.example.
;; Received 412 bytes from 192.5.6.30#53(a.gtld-servers.net)
example.com.      3600    IN  A   192.0.2.10
;; Received 57 bytes from 198.51.100.53#53(ns1.hosting.example)

Met +trace zie je welke nameservers de registry echt doorgeeft. Dat is handig als je twijfelt of een nameserverwijziging al is doorgevoerd.

DNSSEC zien met +dnssec: je krijgt de RRSIG-handtekeningen erbij. Met +cd schakel je de controle uit om te zien of een SERVFAIL door DNSSEC komt.

Reverse DNS met -x (les 4.6):

$ dig +short -x 192.0.2.25
mail.example.com.

Hetzelfde met nslookup

nslookup werkt op elke computer. De belangrijkste vormen:

C:\> nslookup example.com
Server:  router.lan
Address:  192.168.1.1

Non-authoritative answer:
Name:    example.com
Address:  192.0.2.10

C:\> nslookup -type=mx example.com
example.com    MX preference = 10, mail exchanger = mail.example.com

C:\> nslookup -type=txt _dmarc.example.com 9.9.9.9

Een tweede adres achter de naam (hier 9.9.9.9) is de server die je vraagt, net als @ bij dig. "Non-authoritative answer" betekent alleen dat het antwoord van een resolver komt en niet van de gezaghebbende nameserver: dat is normaal. Bestaat de naam niet, dan zegt nslookup Non-existent domain, wat hetzelfde is als NXDOMAIN.

Windows PowerShell: Resolve-DnsName

PS> Resolve-DnsName example.com -Type MX
PS> Resolve-DnsName _dmarc.example.com -Type TXT -Server 9.9.9.9
PS> Resolve-DnsName example.com -Type A -DnsOnly

Je eigen cache legen

Ziet een online tool het nieuwe antwoord al, maar jouw computer nog niet? Dan zit het oude antwoord in de cache van je eigen computer of browser.

  • Windows: ipconfig /flushdns in de Opdrachtprompt.
  • macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder in Terminal.
  • Linux met systemd-resolved: resolvectl flush-caches.
  • Browser: een privévenster, of je telefoon via 4G/5G met wifi uit.

De cache van je provider of router kun je niet zelf legen; daar wacht je de TTL af.

In de praktijk: zo ziet het eruit in een paneel

In de meeste panelen kun je geen dig uitvoeren. Gebruik dig daarom naast je paneel: eerst in het paneel kijken wat je hebt ingevuld, dan met dig @<jouw nameserver> controleren of de nameserver dat ook echt uitgeeft, en daarna met dig @9.9.9.9 of de buitenwereld het al ziet. Mijn WebOké heeft een DNS-diagnose die de nameservers onderling vergelijkt; andere partijen hebben vergelijkbare "DNS-controle"-knoppen.

Samenvatting

  • dig <naam> <type> stelt dezelfde vraag als een browser of mailserver; lees eerst de status.
  • NOERROR met antwoord is goed, NOERROR zonder antwoord betekent "naam bestaat, type niet", NXDOMAIN betekent "naam bestaat niet", SERVFAIL betekent "geen betrouwbaar antwoord".
  • Met @server vraag je een bepaalde resolver of de gezaghebbende nameserver direct; zo zie je het verschil tussen een fout en een cache.
  • +short, +trace, +dnssec, +cd en -x zijn de varianten die je het meest nodig hebt.
  • nslookup en Resolve-DnsName doen hetzelfde op Windows.

Quiz

1. dig mail.example.com A geeft status: NXDOMAIN. Wat betekent dat?



2. Je hebt het A-record van www gewijzigd. dig +short www.example.com @ns1.hosting.example geeft het nieuwe adres, dig +short www.example.com @1.1.1.1 nog het oude. Wat is er aan de hand?



3. Welk commando laat de hele weg zien van de root via de TLD naar de gezaghebbende nameserver?



4. In de uitvoer van dig staat bij een A-record een TTL van 412. In de zone staat 3600. Wat zegt dat?



5. Wat doet nslookup -type=mx example.com 9.9.9.9?



Opdracht

Opdracht Z8.2: dig en nslookup. Vraag met dig, nslookup of Resolve-DnsName (of een online dig-tool) drie dingen op:

  1. de status van een naam die niet bestaat: bestaat-niet-dnscursus.sidn.nl;
  2. de MX-records van wikipedia.org, rechtstreeks bij een van de nameservers van wikipedia.org (zoek die eerst op);
  3. de TTL die een publieke resolver op dit moment teruggeeft voor het A-record van sidn.nl (vraag het twee keer, met een minuut ertussen, en noteer beide getallen).

Vul de antwoorden in.

Opdracht Z8.2: dig en nslookup





Wat je invult en wat we live vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Verder lezen

Deze artikelen beschrijven de stappen bij WebOké; de commando's werken overal hetzelfde.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…