DNS resolution is surprisingly a series of requests, not one magical lookup.
Let’s watch a typical request unfold. Imagine you type www.example.com into your browser. Your computer doesn’t know where www.example.com lives on the internet. It needs an IP address.
First, your computer checks its own local DNS cache. This is like a Rolodex of recently visited sites. If www.example.com is there, and the entry hasn’t expired (TTL - Time To Live), your computer uses that IP address immediately. This is the fastest path.
If it’s not in the local cache, your computer asks its configured DNS resolver. This is usually provided by your ISP or a public service like Google DNS (8.8.8.8) or Cloudflare (1.1.1.1). Let’s say your resolver is at 192.168.1.1.
The resolver, 192.168.1.1, also has its own cache. If www.example.com is there and valid, it returns the IP address directly to your computer.
If the resolver doesn’t have it cached, it starts the recursive process. It asks a Root Name Server (there are 13 logical root server addresses, but many physical servers). The root server doesn’t know the IP for www.example.com, but it knows who is authoritative for the .com Top-Level Domain (TLD). It responds with the IP addresses of the .com TLD name servers.
Next, your resolver asks one of the .com TLD name servers for www.example.com. The .com server doesn’t know the IP either, but it knows which name servers are authoritative for the example.com domain. It responds with the IP addresses of the example.com authoritative name servers.
Finally, your resolver asks one of the example.com authoritative name servers for www.example.com. This server does know the IP address for www.example.com (let’s say it’s 93.184.216.34) because example.com’s DNS records are managed here. It returns 93.184.216.34 to your resolver.
Your resolver caches this IP address for www.example.com (respecting its TTL) and then returns it to your computer. Your computer then uses 93.184.216.34 to establish a connection to the web server hosting www.example.com.
The system is hierarchical, with root servers at the top, followed by TLD servers, and then authoritative servers for individual domains. Each level delegates authority to the next, progressively narrowing down the search.
This entire chain of requests happens in milliseconds, and the caching at each step is crucial for performance. Without caching, every lookup would involve hitting the root servers first, making the internet incredibly slow.
A common point of failure is a misconfigured local DNS resolver or a resolver that’s temporarily unreachable. If your ISP’s DNS server goes down, you might find yourself unable to resolve any domain names, even though your internet connection is otherwise fine.
The next step is understanding how different record types (A, AAAA, CNAME, MX, etc.) are handled within these authoritative name servers.