Een DNS resolver accepteert een DNS-verzoek van een clienttoepassing, voert de lookup uit door indien nodig andere DNS-servers op te vragen, en geeft het uiteindelijke antwoord terug. Er zijn twee hoofdtypen: een stub resolver (een eenvoudige forwarder aan de clientzijde op je apparaat) en een recursive resolver (de volledige resolver die de daadwerkelijke iteratieve lookups en caching uitvoert).
Hoe recursive resolutie werkt
Wanneer je een DNS-verzoek doet:
- Je toepassing vraagt de OS stub resolver op.
- De stub resolver stuurt door naar een geconfigureerde recursive resolver (vaak je ISP's of een publieke service zoals Google DNS
8.8.8.8). - Als het antwoord niet in cache is opgeslagen, vraagt de resolver een root server op, die het doorverwijst naar de relevante TLD nameserver.
- De resolver vraagt de TLD nameserver op, die het doorverwijst naar de authoritative nameserver van het domein.
- De resolver vraagt de authoritative server op en ontvangt de resource record (A, AAAA, MX, enz.).
- De resolver slaat het resultaat op in cache voor de TTL van de record en geeft het terug aan je client.
Veel gebruikte voorbeelden
Publieke recursive resolvers zijn onder andere Google Public DNS (8.8.8.8), Cloudflare (1.1.1.1) en Quad9 (9.9.9.9). Je ISP of organisatie draait meestal ook een recursive resolver.
WarningEen resolver is nooit gezag hebbend: het bezit geen zonegegevens, maar zoekt deze alleen op en slaat ze in cache op. Cached antwoorden blijven bestaan voor de TTL van de record, daarom kunnen DNS-wijzigingen lijken of ze tijd nodig hebben om "door te geven"—de vertraging is eigenlijk cache-verlooп, geen netwerkvertraging.