Skip to main content

Command Palette

Search for a command to run...

Understanding DNS Resolution with the dig Command

Published
5 min read
A

MERN Stack Developer

What is DNS, and why name resolution exist?

DNS (Domain Name System) is often called the internet's phonebook, and for good reason. Just as you use a phonebook to convert a person's name into their phone number, DNS converts human-readable domain names like google.com into machine-readable IP addresses like 142.250.185.46.

Why We Need Name Resolution

Computers communicate using IP addresses, which are numerical identifiers like 172.217.14.206. While machines handle numbers efficiently, humans struggle to remember them. Imagine trying to remember IP addresses for every website you visit: your email provider, social media, online shopping, news sites—it would be impossible.

Key benefits of DNS:

  • Human-friendly: Remember names instead of numbers

  • Flexible: Website owners can change IP addresses without users noticing

  • Distributed: No single point of failure; DNS data is replicated globally

  • Scalable: Handles billions of queries daily across millions of domains

What is the dig command, and When is it used?

dig (Domain Information Groper) is a powerful command-line tool for querying DNS servers and inspecting how domain name resolution works. It's the go-to diagnostic tool for network administrators, developers, and anyone troubleshooting DNS issues.

When to Use dig

Troubleshooting connectivity: When a website won't load, dig helps determine if it's a DNS problem or something else.

Verifying DNS configuration: After setting up a new domain or changing DNS records, dig confirms your changes have propagated.

Understanding DNS infrastructure: dig reveals which name servers are authoritative for a domain and how DNS queries are resolved.

Security analysis: Identifying DNS spoofing or investigating suspicious domain configurations.

Performance debugging: Checking DNS response times and identifying slow name servers.

dig Syntax

dig [domain] [record-type]

For example:

Understanding dig . NS and Root Name Servers

Let's start at the very top of the DNS hierarchy by querying the root name servers:

dig . NS
```

### What This Command Does

The period (`.`) represents the DNS root zone—the absolute top of the DNS hierarchy. This command asks: "Who are the authoritative name servers for the root zone?"

### Sample Output
```
; <<>> DiG 9.18.1 <<>> . NS
;; ANSWER SECTION:
.                        86400   IN      NS      a.root-servers.net.
.                        86400   IN      NS      b.root-servers.net.
.                        86400   IN      NS      c.root-servers.net.
.                        86400   IN      NS      d.root-servers.net.
.                        86400   IN      NS      e.root-servers.net.
.                        86400   IN      NS      f.root-servers.net.
.                        86400   IN      NS      g.root-servers.net.
.                        86400   IN      NS      h.root-servers.net.
.                        86400   IN      NS      i.root-servers.net.
.                        86400   IN      NS      j.root-servers.net.
.                        86400   IN      NS      k.root-servers.net.
.                        86400   IN      NS      l.root-servers.net.
.                        86400   IN      NS      m.root-servers.net.

Understanding Root Name Servers

There are 13 root name server identities (labeled A through M), though they're actually replicated hundreds of times globally using anycast routing. These servers know about all top-level domains (TLDs) like .com, .org, .uk, etc.

What root servers do:

  • They don't know the IP address of google.com

  • They DO know which servers are authoritative for .com

  • They're the starting point for all DNS resolution

  • They're operated by different organizations for redundancy

Understanding dig com NS and TLD Name Servers

Go one level down to the Top-Level Domain (TLD) servers:

dig com NS
```

### What This Command Does

This queries for the authoritative name servers responsible for the `.com` TLD. These servers know about every `.com` domain that exists.

### Sample Output
```
; <<>> DiG 9.18.1 <<>> com NS
;; ANSWER SECTION:
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.

Understanding TLD Name Servers

The .com TLD is managed by Verisign, one of the largest domain registries. These "gtld-servers" (generic TLD servers) maintain information about all .com domains.

What TLD servers do:

  • They don't know the IP address of google.com

  • They DO know which name servers are authoritative for google.com

  • They form the second layer of the DNS hierarchy

  • Different TLDs have different operators (.org, .net, .uk, etc.)

Understanding dig google.com NS and Authoritative Name Servers

Now we reach the final layer—the authoritative name servers for a specific domain:

dig google.com NS
```

### What This Command Does

This asks: "Which name servers have authoritative information about `google.com`?"

### Sample Output
```
; <<>> DiG 9.18.1 <<>> google.com NS
;; ANSWER SECTION:
google.com.             21600   IN      NS      ns1.google.com.
google.com.             21600   IN      NS      ns2.google.com.
google.com.             21600   IN      NS      ns3.google.com.
google.com.             21600   IN      NS      ns4.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         21600   IN      A       216.239.32.10
ns2.google.com.         21600   IN      A       216.239.34.10
ns3.google.com.         21600   IN      A       216.239.36.10
ns4.google.com.         21600   IN      A       216.239.38.10

Understanding Authoritative Name Servers

These are Google's own name servers—the ultimate source of truth for all google.com DNS records. Google controls these servers and can update DNS information for their domains.

What authoritative servers do:

  • They have the actual IP addresses for google.com, mail.google.com, etc.

  • They respond to queries about their specific domain

  • They're maintained by the domain owner (Google in this case)

  • They're where DNS records are actually stored and managed

More from this blog

Awdhesh

10 posts