A stub resolver is a software component normally found in endpoint hosts that generates DNS queries when application programs running on desktop computers or mobile devices need to resolve DNS domain names. DNS queries issued by stub resolvers are typically sent to a DNS recursive resolver; the resolver will perform as many queries as necessary to obtain the response to the original query and then send the response back to the stub resolver.
Types of DNS servers
Figure 1. The three different types of DNS server interoperate to deliver correct and current mappings of IP addresses with domain names.
The recursive resolver may reside in a home router, be hosted by an internet service provider or be handed by a third party, similar as Google's Public DNS recursive resolver at22.214.171.124 or the Cloudflare DNS service at126.96.36.199.
Since the DNS operates as a distributed database, different servers are responsible-- authoritative in DNS- speak-- for different parts of the DNS name space.
Figure 2 illustrates a hypothetical DNS resolution scenario in which an application uses all three types of DNS servers to resolve the domain namewww.example.com into an IPv4 address-- in other words, a DNS address resource record.
DNS servers interoperating
Figure 2. DNS servers cooperate to accurately resolve an IP address from a domain name.
In step 1, the stub resolver at the host sends a DNS query to the recursive resolver. In step 2, the recursive resolver resends the query to one of the DNS authoritative name servers for the root zone. This authoritative name server doesn't have the response to the query but is able to provide a reference to the authoritative name server for the. com zone. As a result, the recursive resolver resends the query to the authoritative name server for the. com zone.
This process continues until the query is finally resent to an authoritative name server for thewww.example.com zone that can provide the answer to the original query-- i.e., what are the IP addresses forwww.example.com? Finally, in step 8, this response is sent back to the stub resolver.