Een DNS-server kijkt op twee primaire plaatsen bij het oplossen van een vraag:
1. Zonerecords (gezaghebbende gegevens):
* Als de DNS-server *gezaghebbend* is voor het betreffende domein (dat wil zeggen verantwoordelijk is voor het beheer van de DNS-records voor die zone), raadpleegt deze eerst zijn eigen zonerecords. Deze records worden opgeslagen in bestanden of databases op de server en bevatten informatie over de bronnen van het domein, zoals:
* A registreert: Wijs domeinnamen toe aan IPv4-adressen.
* AAAA-records: Wijs domeinnamen toe aan IPv6-adressen.
* CNAME-records: Maak aliassen voor domeinnamen.
* MX-records: Geef mailservers op die verantwoordelijk zijn voor het accepteren van e-mail.
* NS-records: Delegeer de bevoegdheid voor een subdomein naar een andere DNS-server.
* TXT-records: Bewaar willekeurige tekstgegevens (vaak gebruikt voor verificatie of metadata).
* SOA-records: Begin van het autoriteitsrecord, waarin de administratieve informatie van de zone wordt gedefinieerd.
* SRV-records: Definieer de locatie van services.
* enz.
* De server zoekt in de geconfigureerde zonebestanden of database naar het gevraagde recordtype en de gevraagde naam. Als er een overeenkomend record wordt gevonden, wordt het antwoord teruggestuurd naar de client.
2. Cache:
* DNS-servers houden een cache bij van eerder opgeloste DNS-records. Deze cache is een tijdelijk opslaggebied in het geheugen (RAM) waarin de resultaten van eerdere DNS-query's worden opgeslagen. Het belangrijkste doel van de cache is het verbeteren van de prestaties en het verminderen van de belasting op gezaghebbende DNS-servers.
* Hoe de cache werkt:
* Wanneer een DNS-server een zoekopdracht ontvangt, controleert deze *eerst* de cache om te zien of deze een geldige, niet-verlopen record heeft voor het aangevraagde domein en recordtype.
* Als er een overeenkomend record in de cache wordt gevonden en de Time-to-Live (TTL) niet is verlopen, stuurt de server het in de cache opgeslagen record terug naar de client. Dit is veel sneller dan het bevragen van een gezaghebbende server.
* Als het record niet in de cache wordt gevonden of als de TTL is verlopen, gaat de server verder met het oplossen van de vraag door contact op te nemen met andere DNS-servers (recursief of iteratief, afhankelijk van de configuratie).
* Time-to-Live (TTL): Aan elk DNS-record is een TTL-waarde gekoppeld. Deze waarde geeft aan hoe lang de record als geldig wordt beschouwd en in de cache kan worden opgeslagen. Wanneer de TTL verloopt, wordt het in de cache opgeslagen record verwijderd en moet de DNS-server opnieuw een gezaghebbende server raadplegen om een nieuwe kopie te krijgen. De TTL wordt ingesteld door de gezaghebbende DNS-serverbeheerder.
Volgorde van bewerkingen:
Normaal gesproken voert een DNS-server deze stappen in de volgende volgorde uit:
1. Vraag ontvangen: De DNS-server ontvangt een DNS-query van een client (bijvoorbeeld een computer, smartphone of ander apparaat).
2. Cache controleren: Het controleert eerst de lokale cache op een geldig (niet-verlopen) antwoord op de vraag. Als het in de cache wordt gevonden, wordt het in de cache opgeslagen antwoord teruggestuurd naar de client.
3. Controleer zonerecords (indien gezaghebbend): Als de DNS-server gezaghebbend is voor het domein in de query, controleert deze de zonebestanden of database op het antwoord. Indien gevonden in de zonegegevens, retourneert het het antwoord aan de client.
4. Recursieve/Iteratieve zoekopdrachten (indien niet gezaghebbend en niet in cache): Als de server *niet* gezaghebbend is en de zoekopdracht niet in de cache staat, moet deze de zoekopdracht oplossen met behulp van:
* Recursieve resolutie: De server neemt de volledige verantwoordelijkheid voor het oplossen van de vraag. Het vraagt namens de cliënt andere DNS-servers (rootservers, top-level domain (TLD)-servers en gezaghebbende servers) totdat het antwoord wordt gevonden.
* Iteratieve resolutie: De server biedt alleen verwijzingen. Het geeft de client het adres van een DNS-server die dichter bij het antwoord ligt (bijvoorbeeld een TLD-server). De client vraagt vervolgens rechtstreeks naar die server. Deze aanpak vereist dat de klant meer werk doet.
5. Cachereactie: Zodra de DNS-server het antwoord ontvangt van een gezaghebbende server (of van een andere server tijdens recursieve resolutie), wordt het antwoord (inclusief de TTL) in de cache opgeslagen voor toekomstige zoekopdrachten.
6. Retourantwoord: Ten slotte stuurt de DNS-server het opgeloste antwoord terug naar de client.
Samengevat:
Een DNS-server kijkt eerst in zijn cache en als deze gezaghebbend is voor het domein, controleert hij de zonerecords. Als het niet gezaghebbend is en het antwoord niet in de cache staat, zal het andere DNS-servers ondervragen. |