Domain Name System (DNS) is een belangrijk onderdeel van het internet dat menselijk leesbare domeinnamen omzet in machineleesbare IP-adressen. Dit artikel legt de onderdelen van DNS uit, inclusief de componenten, querytypen en het opzoekproces. We bespreken ook DNS-caching en hoe dit het DNS-resolutieproces sneller maakt.
Belangrijkste punten
- DNS fungeert als het "telefoonboek" van het internet en vertaalt menselijk leesbare domeinnamen naar machineleesbare IP-adressen
- Het DNS-resolutieproces bestaat uit de DNS-resolver, root-nameserver, TLD-nameserver en autoritatieve nameserver die samenwerken om een domeinnaam op te lossen
- DNS-recursor, root-nameserver, TLD-nameserver en autoritatieve nameserver zijn de belangrijkste componenten van het DNS-systeem
- Recursieve, iteratieve en niet-recursieve queries zijn de belangrijkste typen DNS-queries, elk met een specifiek doel in het resolutieproces
- DNS-caching verbetert de prestaties, vermindert bandbreedtegebruik en verlicht de belasting op upstream-servers door vaak opgevraagde DNS-records dichter bij de client op te slaan
Wat is DNS?
DNS, oftewel Domain Name System, is het naamgevingssysteem van het internet dat fungeert als het "telefoonboek" van het internet. Het doel is om menselijk leesbare domeinnamen, zoals example.com, te vertalen naar machineleesbare IP-adressen, zoals 192.168.1.1. Deze vertaling stelt je in staat om gemakkelijk te onthouden domeinnamen te gebruiken in plaats van numerieke IP-adressen te moeten onthouden bij het bezoeken van websites of andere online bronnen.
DNS speelt een rol in de werking van het internet door apparaten een manier te bieden om met elkaar te communiceren via domeinnamen in plaats van IP-adressen. Zonder DNS zou je het IP-adres van elke website die je wilt bezoeken moeten onthouden, wat het browsen op internet moeilijker en minder gebruiksvriendelijk zou maken.
Hoe DNS werkt
Het proces van DNS-resolutie houdt in dat een hostnaam (zoals www.example.com) wordt omgezet in een IP-adres (zoals 192.168.1.1). Wanneer je een domeinnaam invoert in je webbrowser, wordt een DNS-query gestart om de domeinnaam te vertalen naar het bijbehorende IP-adres.
Deze query omvat meerdere DNS-servers die samenwerken om de domeinnaam op te lossen:
DNS-resolver: De DNS-resolver is de eerste stop voor je DNS-query. Het werkt als een bibliothecaris die een verzoek krijgt en verantwoordelijk is voor het vinden van het juiste IP-adres voor het gevraagde domein.
Root-nameserver: Als de DNS-resolver het IP-adres niet in de cache heeft, stuurt deze een query naar de root-nameserver. De root-server fungeert als referentiepunt en stuurt de query door naar de juiste Top Level Domain (TLD) nameserver.
TLD-nameserver: De Top Level Domain nameserver behandelt het laatste deel van een domeinnaam, zoals
.comof.org. Het geeft het IP-adres van de autoritatieve nameserver van het domein.Autoritatieve nameserver: De autoritatieve nameserver is de laatste stop in de DNS-query. Het bevat het daadwerkelijke IP-adresrecord voor het gevraagde domein en stuurt deze informatie terug naar de DNS-resolver.
Zodra de DNS-resolver het IP-adres van de autoritatieve nameserver ontvangt, stuurt het deze informatie terug naar jou, waardoor je webbrowser verbinding kan maken met de juiste server en de gevraagde website kan laden.
Hier is een overzicht van het DNS-resolutieproces:
| Stap | Server | Beschrijving |
|---|---|---|
| 1 | DNS-resolver | Ontvangt je DNS-query en is verantwoordelijk voor het vinden van het IP-adres |
| 2 | Root-nameserver | Fungeert als referentiepunt en stuurt de query door naar de juiste TLD-nameserver |
| 3 | TLD-nameserver | Behandelt het laatste deel van de domeinnaam en geeft de autoritatieve nameserver |
| 4 | Autoritatieve nameserver | Bevat het daadwerkelijke IP-adresrecord voor het gevraagde domein |
Praktijkvoorbeelden van het DNS-resolutieproces:
Wanneer je "amazon.com" intypt in je webbrowser:
- De DNS-resolver ontvangt de query en controleert de cache op het IP-adres.
- Als het niet wordt gevonden, stuurt de resolver een query naar de root-nameserver.
- De root-nameserver stuurt de query door naar de
.comTLD-nameserver. - De
.comTLD-nameserver geeft het IP-adres van Amazon's autoritatieve nameserver. - De autoritatieve nameserver stuurt het IP-adres van
amazon.comterug naar de DNS-resolver. - De DNS-resolver slaat het IP-adres op in de cache en stuurt het terug naar je webbrowser.
Bij het opzetten van een nieuwe website moet de domeinnaam (bijv.
mynewwebsite.com) worden geregistreerd bij een domeinregistrar, en moeten de DNS-records worden ingesteld om naar de server te wijzen die de website host. Dit zorgt ervoor dat wanneer je "mynewwebsite.com" in je browser intypt, het DNS-resolutieproces de domeinnaam kan vertalen naar het juiste IP-adres, zodat je toegang krijgt tot de website.
Componenten van DNS
Het Domain Name System (DNS) is een onderdeel van de internetinfrastructuur dat domeinnamen vertaalt naar IP-adressen. Verschillende componenten werken samen om dit te doen, waaronder de DNS-recursor, root-nameserver, TLD-nameserver en autoritatieve nameserver.
DNS-recursor
De DNS-recursor, ook wel een recursieve resolver genoemd, is de eerste stop in het DNS-queryproces. Het ontvangt queries van clientapparaten zoals computers of telefoons en werkt als een bibliothecaris die de gevraagde informatie vindt om de query van de client te beantwoorden.
Voorbeeld: Wanneer je www.example.com intypt in je webbrowser, stuurt je besturingssysteem een query naar de DNS-recursor om het bijbehorende IP-adres te vinden.
| Functie | Beschrijving |
|---|---|
| Ontvangt queries | De recursor ontvangt queries van clientapparaten, zoals computers of mobiele apparaten |
| Controleert lokale cache | De recursor controleert eerst de lokale DNS-cache op het gevraagde IP-adres |
| Doet aanvullende verzoeken | Als het IP-adres niet in de cache staat, doet de recursor aanvullende verzoeken aan andere DNS-servers |
Root-nameserver
De root-nameserver is de eerste stap in het omzetten van domeinnamen naar IP-adressen wanneer de recursor niet de nodige informatie in de cache heeft. Het fungeert als referentiepunt voor het DNS-systeem en stuurt queries door naar de juiste Top Level Domain (TLD) nameserver.
Voorbeeld: Als de recursor het IP-adres voor www.example.com niet in de cache heeft, neemt het contact op met een van de 13 root-nameservers om de juiste TLD-nameserver voor het .com domein te vinden.
| Functie | Beschrijving |
|---|---|
| Fungeert als referentiepunt | De root-nameserver dient als startpunt voor het DNS-queryproces |
| Stuurt queries door | Het stuurt queries door naar de juiste TLD-nameserver op basis van de domeinextensie |
TLD-nameserver
De Top Level Domain (TLD) nameserver behandelt queries voor specifieke domeinextensies, zoals .com, .net of .org. Het host het laatste deel van een domeinnaam en helpt de zoektocht naar het IP-adres te verfijnen.
Voorbeeld: Wanneer de recursor contact opneemt met de TLD-nameserver voor .com, ontvangt het het IP-adres van de autoritatieve nameserver voor example.com.
| Functie | Beschrijving |
|---|---|
| Behandelt specifieke domeinextensies | De TLD-nameserver beheert queries voor specifieke domeinextensies |
| Geeft IP van autoritatieve nameserver | Het geeft het IP-adres van de autoritatieve nameserver van het domein terug aan de recursor |
Typen DNS-queries
Recursieve query
Bij een recursieve DNS-query vereist de DNS-client (zoals een webbrowser) dat een DNS-server (meestal een recursieve DNS-resolver) reageert met het gevraagde DNS-record of een foutmelding als de resolver het record niet kan vinden. De recursieve resolver doet vervolgens aanvullende verzoeken om het IP-adres van de domeinnaam te vinden.
Voorbeeld: Wanneer je www.example.com invoert in je browser, stuurt je computer een recursieve query naar de DNS-resolver van je internetprovider. De resolver stuurt vervolgens een query naar de root-nameserver, TLD-nameserver en autoritatieve nameserver om het IP-adres voor www.example.com te krijgen. Zodra de resolver het IP-adres heeft, geeft het dit terug aan je computer.
| Aspect | Beschrijving |
|---|---|
| Clientvereiste | DNS-client vereist een reactie met het gevraagde record of een fout |
| Betrokkenheid DNS-server | Omvat meestal een recursieve DNS-resolver |
| Aanvullende verzoeken | De recursieve resolver doet aanvullende verzoeken om het IP-adres te vinden |
Praktijkscenario: Wanneer je een website zoals https://www.google.com bezoekt, stuurt je webbrowser een recursieve DNS-query naar je geconfigureerde DNS-resolver (meestal geleverd door je internetprovider ofeen openbare DNS-service zoals Google DNS of Cloudflare DNS). De resolver vindt vervolgens het IP-adres voor www.google.com door aanvullende verzoeken te doen aan de root-, TLD- en autoritatieve nameservers. Zodra de resolver het IP-adres verkrijgt, geeft het dit terug aan je browser, waardoor deze verbinding kan maken met de Google-server.
Iteratieve query
Bij een iteratieve DNS-query staat de DNS-client een DNS-server toe om het beste antwoord te geven dat het kan. Als de gevraagde DNS-server geen overeenkomst heeft voor de querynaam, geeft het een verwijzing terug naar een DNS-server die autoritatief is voor een lager niveau van de domeinnaamruimte. De DNS-client vraagt vervolgens het verwijzingsadres, waarbij dit proces wordt herhaald totdat een fout of time-out optreedt.
Voorbeeld: Als een DNS-client een iteratieve query stuurt voor www.example.com naar een DNS-server die niet autoritatief is voor example.com, kan de server reageren met het IP-adres van de autoritatieve nameserver voor example.com. De client zou dan die nameserver vragen om het IP-adres voor www.example.com te krijgen.
| Aspect | Beschrijving |
|---|---|
| Clientflexibiliteit | DNS-client staat een DNS-server toe zijn beste antwoord te geven |
| Verwijzingsproces | Als geen overeenkomst wordt gevonden, geeft de DNS-server een verwijzing naar een andere server |
| Queryketen | De DNS-client volgt de verwijzingsketen totdat een fout of time-out optreedt |
Praktijkscenario: Iteratieve queries worden vaak gebruikt door DNS-servers om met elkaar te communiceren. Wanneer een recursieve resolver bijvoorbeeld een query ontvangt voor www.example.com, begint het door een iteratieve query te sturen naar een van de root-nameservers. De root-nameserver reageert vervolgens met een verwijzing naar de TLD-nameserver voor .com. De recursieve resolver stuurt vervolgens een iteratieve query naar de .com TLD-nameserver, die reageert met een verwijzing naar de autoritatieve nameserver voor example.com. Ten slotte stuurt de recursieve resolver een iteratieve query naar de autoritatieve nameserver, die het IP-adres voor www.example.com teruggeeft.
Niet-recursieve query
Een niet-recursieve query vindt plaats wanneer een DNS-server het antwoord op een DNS-query al heeft in de cache of zonebestanden. Dit kan gebeuren wanneer de DNS-server autoritatief is voor het gevraagde domein of wanneer het record bestaat in de cache van de server uit een eerdere query.
Voorbeeld: Als een recursieve DNS-resolver het IP-adres voor www.example.com in de cache heeft vanwege een eerdere query, kan het direct reageren op een niet-recursieve query van een client zonder aanvullende verzoeken te doen aan andere DNS-servers.
| Aspect | Beschrijving |
|---|---|
| Servercapaciteit | DNS-server heeft toegang tot het gevraagde record |
| Autoritatieve server | De server kan autoritatief zijn voor het gevraagde domein |
| Cachegebruik | Het gevraagde record kan bestaan in de cache van de server uit een eerdere query |
Praktijkscenario: Niet-recursieve queries worden vaak gebruikt wanneer een DNS-server autoritatief is voor een domein of wanneer het het gevraagde record in de cache heeft. Als bijvoorbeeld een autoritatieve nameserver voor example.com een query ontvangt voor www.example.com, kan het direct met het IP-adres reageren zonder aanvullende verzoeken te doen. Op dezelfde manier, als een recursieve resolver onlangs www.example.com heeft opgelost en het IP-adres in de cache heeft, kan het reageren op volgende queries voor hetzelfde domein met de gecachte informatie totdat de TTL (Time to Live) verloopt.
DNS-caching
DNS-caching is een techniek die wordt gebruikt om DNS-queryresultaten tijdelijk op te slaan op een locatie dichter bij de client die het verzoek doet. Het hoofddoel van DNS-caching is om de prestaties van het DNS-resolutieproces te verbeteren en de belasting op upstream DNS-servers te verminderen.
Hoe DNS-caching werkt
Het hoofddoel van DNS-caching is om vaak opgevraagde DNS-records dichter bij de client op te slaan, waardoor de noodzaak voor de client om externe DNS-servers te vragen wordt verminderd. Dit heeft verschillende voordelen:
Betere prestaties: Door DNS-records in de cache op te slaan, wordt de tijd die nodig is om een domeinnaam naar een IP-adres op te lossen aanzienlijk verkort. Dit leidt tot snellere laadtijden voor websites en andere netwerkbronnen.
Minder bandbreedtegebruik: Wanneer DNS-records lokaal worden gecachet, hoeft de client geen queries over het netwerk te sturen naar externe DNS-servers, wat het totale bandbreedtegebruik vermindert.
Minder belasting op upstream-servers: DNS-caching helpt de belasting van DNS-queries te spreiden over meerdere cacheniveaus, waardoor de last op autoritatieve nameservers en andere upstream DNS-servers wordt verminderd.
Praktijkvoorbeelden van de voordelen van DNS-caching:
- Wanneer je een vaak bezochte website zoals Facebook of YouTube bezoekt, slaan je browser en besturingssysteem de DNS-records voor die domeinen op in de cache. Dit zorgt voor snellere toegang tot die sites bij latere bezoeken, omdat het DNS-resolutieproces wordt ingekort.
- Internetproviders en grote organisaties gebruiken vaak caching DNS-resolvers om de belasting op hun netwerkinfrastructuur te verminderen en de browse-ervaring voor hun gebruikers te verbeteren.
Typen DNS-caching
DNS-caching kan plaatsvinden op verschillende niveaus, van de clientzijde tot tussenliggende resolvers. Hier zijn de belangrijkste typen DNS-caching:
| Type | Beschrijving |
|---|---|
| Browser DNS-caching | Moderne webbrowsers hebben ingebouwde DNS-caches. Wanneer een gebruiker een URL invoert, controleert de browser eerst de lokale cache op het overeenkomstige DNS-record voordat een query naar de DNS-resolver van het besturingssysteem wordt gestuurd. Als het record in de browsercache wordt gevonden, kan de browser het IP-adres direct gebruiken zonder te wachten op een reactie van een externe DNS-server. |
| DNS-caching op besturingssysteemniveau | Besturingssystemen onderhouden een lokale DNS-cache via een component die een stub-resolver of DNS-client wordt genoemd. Wanneer een applicatie om een DNS-resolutie vraagt, controleert de stub-resolver eerst de cache op het gevraagde record. Als het record niet wordt gevonden, stuurt de stub-resolver een recursieve query naar de ingestelde DNS-server, meestal geleverd door de internetprovider of een externe DNS-service. De stub-resolver slaat de reactie van de externe DNS-server op in de cache, waardoor het beschikbaar is voor toekomstige queries. |
| Resolver DNS-caching | Caching vindt ook plaats op het niveau van de DNS-resolver, meestal beheerd door internetproviders of externe DNS-providers zoals Google DNS of Cloudflare DNS. Wanneer een recursieve resolver een query van een client ontvangt, controleert het eerst de lokale cache op het gevraagde DNS-record. Als het record niet wordt gevonden, start de resolver het recursieve DNS-resolutieproces, beginnend bij de root-nameservers en werkend naar de autoritatieve nameservers. Zodra de resolver het IP-adres voor het gevraagde domein krijgt, slaat het het record op in de cache en geeft het resultaat terug aan de client. Als de resolver de nameserver (NS) records voor het gevraagde domein in de cache heeft, kan het enkele stappen in het DNS-resolutieproces overslaan en direct de autoritatieve nameservers vragen, wat de resolutiesnelheid verder verbetert. |
Praktijkscenario van DNS-caching in actie
Hier is een stapsgewijs voorbeeld van hoe DNS-caching werkt in een praktijkscenario:
- Een gebruiker typt
www.example.comin de webbrowser. - De browser controleert de lokale DNS-cache op het IP-adres dat is gekoppeld aan
www.example.com. Als het wordt gevonden, gebruikt de browser het gecachte IP-adres om verbinding te maken met de server. - Als het niet in de browsercache wordt gevonden, stuurt de browser een query naar de stub-resolver van het besturingssysteem.
- De stub-resolver controleert de DNS-cache op het gevraagde record. Als het wordt gevonden, geeft het het IP-adres terug aan de browser.
- Als het niet in de stub-resolver cache wordt gevonden, wordt de query doorgestuurd naar de ingestelde recursieve resolver (bijv. de DNS-server van de internetprovider).
- De recursieve resolver controleert de cache op het gevraagde record. Als het wordt gevonden, geeft het het IP-adres terug aan de stub-resolver, die het vervolgens doorstuurt naar de browser.
- Als het niet in de recursieve resolver cache wordt gevonden, start de resolver het recursieve DNS-resolutieproces, slaat het resultaat op in de cache zodra het is verkregen en geeft het IP-adres terug aan de stub-resolver en uiteindelijk de browser.
DNS-opzoekproces
Het DNS-opzoekproces vertaalt een domeinnaam naar een IP-adres. Hier zijn de 8 stappen in een typisch DNS-opzoekproces:
Gebruiker voert een domeinnaam in: Wanneer je een domeinnaam zoals
www.example.comintypt in je webbrowser, stuurt de browser een query naar een recursieve DNS-resolver om het IP-adres te vinden.Voorbeeld: Je wilt
www.wikipedia.orgbezoeken en typt de domeinnaam in de adresbalk van je browser.Query wordt gestuurd naar recursieve DNS-resolver: De recursieve DNS-resolver, vaak van je internetprovider of een openbare DNS-service zoals Google DNS, ontvangt de query van je browser.
Voorbeeld: Je browser stuurt een query naar de recursieve DNS-resolver van je internetprovider, waarin wordt gevraagd naar het IP-adres van
www.wikipedia.org.Resolver vraagt root-nameserver: Als de recursieve resolver het IP-adres voor
www.example.comniet in de cache heeft, vraagt het een root-nameserver. De root-nameserver reageert met het adres van de Top-Level Domain (TLD) DNS-server voor het.comdomein.Voorbeeld: De recursieve resolver van de internetprovider heeft het IP-adres voor
www.wikipedia.orgniet in de DNS-cache, dus vraagt het een root-nameserver. De root-nameserver reageert met het adres van de.orgTLD-server.Resolver vraagt TLD-server: De recursieve resolver vraagt vervolgens de
.comTLD-server om het IP-adres vanwww.example.com.Voorbeeld: De recursieve resolver vraagt de
.orgTLD-server om het IP-adres vanwww.wikipedia.org.TLD-server reageert met nameserver-IP: De
.comTLD-server reageert met het IP-adres van de autoritatieve nameserver voor hetexample.comdomein.Voorbeeld: De
.orgTLD-server reageert met het IP-adres van de autoritatieve nameserver voorwikipedia.org.Resolver vraagt nameserver van domein: De recursieve resolver vraagt de
example.comnameserver om het IP-adres vanwww.example.com.Voorbeeld: De recursieve resolver vraagt de
wikipedia.orgnameserver om het IP-adres vanwww.wikipedia.org.Nameserver geeft IP-adres terug: De
example.comnameserver zoekt het IP-adres voorwww.example.comop in de DNS-records en geeft het terug aan de recursieve resolver.Voorbeeld: De
wikipedia.orgnameserver vindt het IP-adres voorwww.wikipedia.orgen stuurt het terug naar de recursieve resolver.Resolver stuurt IP-adres naar browser: De recursieve resolver slaat het IP-adres voor
www.example.comop in de cache en stuurt het naar je webbrowser.Voorbeeld: De recursieve resolver slaat het IP-adres voor
www.wikipedia.orgop in de cache en geeft het terug aan je browser.
Hier is een diagram van het 8-stappen DNS-opzoekproces:
Na het DNS-opzoeken
Na het DNS-opzoekproces en zodra de browser het IP-adres heeft, vinden er nog twee stappen plaats:
Browser doet HTTP-verzoek: De browser stuurt een HTTP-verzoek naar het IP-adres dat is verkregen uit het DNS-opzoeken.
Voorbeeld: De browser stuurt een HTTP-verzoek naar het IP-adres voor
www.wikipedia.orgom de webpagina te laden.Server stuurt webpagina: De server op het IP-adres ontvangt het HTTP-verzoek en geeft de webpagina terug, die de browser weergeeft voor jou.
Voorbeeld: De server die
www.wikipedia.orghost, ontvangt het HTTP-verzoek en stuurt de Wikipedia-homepage terug, die je browser weergeeft.





