A DNS resolver accepts a DNS query from a client application, performs the lookup by querying other DNS servers if needed, and returns the final answer. There are two main types: a stub resolver (a simple client-side forwarder on your device) and a recursive resolver (the full resolver that does the actual iterative lookups and caching).
How recursive resolution works
When you make a DNS request:
- Your application queries the OS stub resolver.
- The stub resolver forwards to a configured recursive resolver (often your ISP's or a public service like Google DNS
8.8.8.8). - If the answer is not cached, the resolver queries a root server, which refers it to the relevant TLD nameserver.
- The resolver queries the TLD nameserver, which refers it to the domain's authoritative nameserver.
- The resolver queries the authoritative server and receives the resource record (A, AAAA, MX, etc.).
- The resolver caches the result for the record's TTL and returns it to your client.
Common examples
Public recursive resolvers include Google Public DNS (8.8.8.8), Cloudflare (1.1.1.1), and Quad9 (9.9.9.9). Your ISP or organization also typically runs a recursive resolver.
WarningA resolver is never authoritative: it does not own zone data, only looks it up and caches it. Cached answers persist for the record's TTL, which is why DNS changes can appear to take time to "propagate"—the delay is actually cache expiry, not network propagation.