Wat is DNS?
DNS (Domain Name System) is het telefoonboek van het internet. Het vertaalt voor mensen leesbare domeinnamen zoals "example.com" naar machinaal leesbare IP-adressen zoals "93.184.216.34", waarmee computers elkaar kunnen vinden en met elkaar kunnen communiceren. Zonder DNS zou je IP-adressen moeten onthouden om websites te bezoeken. Stel je voor dat je 142.250.80.46 typt in plaats van google.com.
Hoe DNS werkt
Wanneer je een domeinnaam in je browser invoert, vindt er een complex maar razendsnel proces plaats:
Het DNS-resolutieproces
1. Lokale cache controleren: je browser en besturingssysteem controleren eerst de lokale DNS-cache op een recente opzoeking van het domein.
2. Query naar de recursieve resolver: als het antwoord niet in de cache staat, gaat de query naar een recursieve DNS-resolver, die meestal wordt beheerd door je ISP of een dienst zoals Cloudflare op 1.1.1.1 of Google op 8.8.8.8.
3. Query naar de rootserver: de resolver vraagt een root-nameserver op, die de query doorstuurt naar de juiste TLD-server.
4. Query naar de TLD-server: de TLD-server, bijvoorbeeld die voor .com, levert de gezaghebbende nameservers voor het specifieke domein.
5. Query naar de gezaghebbende server: ten slotte geeft de gezaghebbende nameserver het werkelijke IP-adres van het domein terug.
6. Antwoord cachen: het resultaat wordt op meerdere niveaus gecachet op basis van TTL-waarden (levensduur).
Het hele proces is doorgaans binnen enkele milliseconden voltooid.
DNS-recordtypen
DNS slaat verschillende recordtypen op, elk met een eigen doel:
| Recordtype | Doel | Voorbeeld |
|---|---|---|
| A | Koppelt het domein aan een IPv4-adres | example.com → 93.184.216.34 |
| AAAA | Koppelt het domein aan een IPv6-adres | example.com → 2606:2800:220:1:... |
| CNAME | Alias die naar een ander domein verwijst | www.example.com → example.com |
| MX | Geeft de mailserver aan | example.com → mail.example.com |
| TXT | Tekstgegevens (SPF, DKIM, verificatie) | Verschillende verificatiestrings |
| NS | Delegatie van de nameserver | example.com → ns1.provider.com |
De DNS-hiërarchie
DNS werkt als een gedistribueerde hiërarchische database:
. (root)
├── com (TLD)
│ ├── example (SLD)
│ │ ├── www (subdomain)
│ │ └── mail (subdomain)
│ └── google
├── org (TLD)
└── io (TLD)
Deze hiërarchie maakt het mogelijk miljarden domeinnamen gedistribueerd te beheren over duizenden organisaties.
DNS voor ontwikkelaars
Kennis van DNS is essentieel voor webontwikkeling:
Veelvoorkomende ontwikkelingstaken
Domeinconfiguratie: voor het instellen van A-records, CNAME-records voor subdomeinen en MX-records voor e-mail is kennis van DNS nodig. SSL/TLS-verificatie: veel certificaatautoriteiten gebruiken DNS-records (TXT of CNAME) om het eigendom van een domein te verifiëren. CDN-configuratie: contentdeliverynetwerken hebben vaak CNAME-records nodig om verkeer via hun edge-servers te routeren. E-mailaflevering: SPF-, DKIM- en DMARC-records zijn allemaal DNS-TXT-records die essentieel zijn voor e-mailauthenticatie.DNS-propagatie
Wanneer je DNS-records bijwerkt, worden wijzigingen niet onmiddellijk actief. DNS-propagatie, de tijd die nodig is om wijzigingen door de wereldwijde DNS-infrastructuur te verspreiden, kan afhankelijk van TTL-instellingen en cachegedrag enkele minuten tot 48 uur duren.
Beveiligingsoverwegingen voor DNS
DNS heeft gevolgen voor de beveiliging die ontwikkelaars moeten begrijpen:
DNS-spoofing: aanvallers kunnen proberen valse DNS-antwoorden terug te sturen om gebruikers naar kwaadaardige sites om te leiden. DNSSEC (DNS Security Extensions) helpt dit met cryptografische handtekeningen te voorkomen. DNS-lekken: VPN-gebruikers kunnen per ongeluk DNS-query's buiten de versleutelde tunnel versturen, waardoor hun browseactiviteit zichtbaar wordt. DDoS-versterking: DNS kan worden misbruikt bij versterkingsaanvallen, omdat het protocol antwoorden kan terugsturen die groter zijn dan de verzoeken.DNS en domeinbeschikbaarheid
De status van DNS-resolutie kan aangeven of een domein beschikbaar is. Als er geen DNS-records bestaan, is het domein mogelijk niet geregistreerd. RDAP/WHOIS-query's bieden echter betrouwbaardere informatie over de beschikbaarheid, omdat geregistreerde domeinen mogelijk nog geen DNS-records hebben.