# How DNS Resolution Works

When you type a website name like [**google.com**](http://google.com) into your browser, it opens almost instantly. Behind this simple action is a powerful system called **DNS** that helps your computer find the correct server on the internet. In this blog, we will understand what DNS is, why name resolution exists, and how the `dig` command helps us see how DNS works step by step.

---

## What is DNS and Why Name Resolution Exists

DNS stands for **Domain Name System**. Computers communicate using **IP addresses**, which are numbers like `142.250.183.14`. Humans, however, prefer easy names like [`google.com`](http://google.com). DNS exists to translate these human-friendly names into machine-readable IP addresses.

You can think of DNS as the **phonebook of the internet**:

* Humans remember names ([google.com](http://google.com))
    
* Computers use numbers (IP addresses)
    
* DNS connects the two
    

Without DNS, you would need to remember numeric IP addresses for every website you visit, which would make the internet very difficult to use.

---

## What is the `dig` Command and When It Is Used

`dig` stands for **Domain Information Groper**. It is a command-line tool used to query DNS servers directly and view DNS records.

`dig` is commonly used to:

* Check whether a domain is resolving correctly
    
* Debug DNS-related issues
    
* Inspect DNS records such as A, NS, MX, and TXT
    
* Understand how DNS resolution happens internally
    

Unlike browsers, `dig` does not hide details. It shows raw DNS responses, which makes it very useful for learning and debugging.

---

## How DNS Resolution Happens in Layers

DNS resolution does not happen in one step. It follows a **layered and hierarchical process**:

* **Root name servers** – know where top-level domains are
    
* **TLD name servers** – know which servers manage a specific domain
    
* **Authoritative name servers** – store the actual DNS records
    

This layered approach makes DNS scalable and reliable for the entire internet.

![](https://cdn.shortpixel.ai/spai/q_lossy+ret_img+to_webp/wp-public-fs.s3.ap-south-1.amazonaws.com/tasks/165d58952b1e9854faee9d165e220fad987e31ad63557b/images/602c130c2edd0f001a8d5ed9-65df147eb8c35.jpg align="center")

---

## Understanding `dig . NS` — Root Name Servers

The command:

```cpp
dig . NS
```

asks DNS: **“Who manages the root of the DNS system?”**

Root name servers:

* Are the starting point of DNS resolution
    
* Do not store IP addresses of websites
    
* Only direct queries to the correct TLD servers
    

They act like a directory that says, *“For .com, ask these servers.”*

---

## Understanding `dig com NS` — TLD Name Servers

The command:

```cpp
dig com NS
```

asks: **“Which servers manage the .com domain?”**

TLD (Top-Level Domain) name servers:

* Handle domains like `.com`, `.org`, `.in`
    
* Do not know website IP addresses
    
* Know which authoritative servers manage each domain
    

They act as a bridge between domain names and their owners.

---

## Understanding `dig` [`google.com`](http://google.com) `NS` — Authoritative Name Servers

The command:

```cpp
dig google.com NS
```

asks: **“Who is the final authority for** [**google.com**](http://google.com)**?”**

Authoritative name servers:

* Belong to the domain owner (Google, in this case)
    
* Store the real DNS records
    
* Provide the final answers such as IP addresses
    

These servers are the **source of truth** for a domain.

---

## Understanding `dig` [`google.com`](http://google.com) — Full DNS Resolution Flow

When you run:

```cpp
dig google.com
```

you receive the final DNS answer, but behind the scenes, a recursive resolver performs multiple steps.

The resolver:

* Contacts root servers
    
* Then contacts TLD servers
    
* Then contacts authoritative servers
    
* Retrieves the IP address
    
* Caches the result for faster future lookups
    

This process ensures that DNS remains fast and efficient.

![](https://vercara.digicert.com/wp-content/uploads/2023/11/Communication-Between-Different-Server-Types.jpg align="center")

---

## What Are NS Records and Why They Matter

NS (Name Server) records define **which servers are responsible for a domain’s DNS data**.

NS records are important because:

* DNS resolution depends on delegation
    
* Each DNS layer relies on NS records
    
* Incorrect NS records can break websites and email
    

Without NS records, DNS would not know where to send queries.

---

## How Recursive Resolvers Work Behind the Scenes

Recursive resolvers are usually provided by:

* Internet Service Providers (ISPs)
    
* Operating systems
    
* Public DNS services (like Google DNS)
    

Their job is to:

* Perform all DNS queries on behalf of users
    
* Cache results to improve speed
    
* Hide DNS complexity from users
    

Thanks to recursive resolvers, users experience fast and seamless browsing.

---

## How DNS Connects to Real Browser Requests

When you visit a website:

* The browser asks the OS for the IP address
    
* The OS asks the DNS resolver
    
* The resolver finds the IP using DNS layers
    
* The browser connects to the server
    
* The website loads
    

DNS is the **first step** of every web request.

---

## Final Thoughts

DNS is one of the most important systems on the internet, even though users rarely notice it. Tools like `dig` help developers understand how DNS works internally and debug real-world problems. By understanding DNS from root servers to authoritative servers, you gain a strong foundation in networking and system design.
