Skip to main content

Command Palette

Search for a command to run...

Understanding DNS: The Internet's Phonebook

Published
6 min read
Understanding DNS: The Internet's Phonebook

Introduction

Have you ever wondered what happens when you type google.com in your browser? How does your computer know where to find Google's servers? The answer lies in an invisible but crucial system called DNS (Domain Name System)—often called the internet's phonebook.

In this guide, we'll explore DNS from the ground up, understand how it works, and learn to debug it with practical tools.

DNS works like your phone's contacts app, mapping easy-to-remember names to technical addresses.


The Problem DNS Solves

Imagine having to memorize phone numbers for everyone you know instead of just saving their names in your contacts. Frustrating, right?

Computers communicate using IP addresses:

142.250.196.100

Humans prefer memorable names:

google.com

DNS bridges this gap by translating human-readable domain names into machine-usable IP addresses. But there's another critical problem: IP addresses can change. If Google changes its server infrastructure, you shouldn't need to memorize a new IP address—DNS handles this transparently.

Figure 2: The hierarchical structure of DNS, from root servers at the top to specific subdomains at the bottom.

The problem DNS solves - converting hard-to-remember IP addresses into human-friendly domain names.


What is DNS?

DNS (Domain Name System) is a distributed database system that maps domain names to IP addresses. Think of it as:

  • The internet's phonebook

  • A global directory service

  • A hierarchical naming system

When you type a URL into your browser, DNS quietly performs a lookup to find the corresponding IP address, allowing your browser to connect to the correct server.


How DNS Resolution Works

DNS resolution involves four key components working together:

1. DNS Recursive Resolver (DNS Recursor)

The recursive resolver is like a librarian who searches for a book on your behalf. Your browser doesn't query each DNS server directly—instead, it asks the resolver to find the IP address.

Key points:

  • Usually provided by your ISP, Google (8.8.8.8), or Cloudflare (1.1.1.1)

  • Performs recursive queries on behalf of clients

  • Implements caching to improve performance

2. Root Name Servers

Root servers are at the top of the DNS hierarchy. They don't store IP addresses for websites but know where to find TLD (Top-Level Domain) servers.

Important facts:

  • There are 13 logical root servers (labeled A through M)

  • These IP addresses are pre-configured in DNS resolvers

  • If one root server is down, the resolver tries another

3. TLD (Top-Level Domain) Name Servers

TLD servers manage top-level domains like .com, .org, .net, .in, etc.

Their role:

  • Store information about which authoritative servers handle specific domains

  • Return NS (Name Server) records pointing to authoritative servers

Example: For google.com, the .com TLD server knows which servers are authoritative for Google's domain.

4. Authoritative Name Servers

These are the final source of truth. They store the actual DNS records for a domain and return the IP address to the resolver.

Key characteristics:

  • Owned/managed by domain owners or their DNS providers

  • Contain all DNS records for their domains

  • Provide definitive answers

The four key components of DNS resolution and their roles in translating domain names to IP addresses.


DNS Hierarchy Explained

DNS uses a hierarchical structure to avoid bottlenecks and ensure no single point of failure:

Root (.)
  └── TLD (.com, .org, .net)
      └── Authoritative (google.com, example.org)
          └── Subdomain (mail.google.com, www.example.org)

Figure 2: The hierarchical structure of DNS, from root servers at the top to specific subdomains at the bottom.

Complete DNS Resolution Flow

User enters google.com
      ↓
Browser asks Recursive Resolver
      ↓
Resolver asks Root Server: "Where is .com?"
      ↓
Root Server responds: "Ask the .com TLD server"
      ↓
Resolver asks TLD Server: "Where is google.com?"
      ↓
TLD Server responds: "Ask ns1.google.com (authoritative)"
      ↓
Resolver asks Authoritative Server: "What's the IP for google.com?"
      ↓
Authoritative Server responds: "142.250.190.14"
      ↓
Resolver returns IP to Browser
      ↓
Browser connects to 142.250.190.14

Complete DNS resolution process showing how a domain name (google.com) is translated into an IP address through multiple server queries.

Why Four Servers?

You might wonder: why not store everything in one place?

The answer:

  • Scalability: Millions of domains exist; centralizing would be slow

  • Reliability: Single point of failure would bring down the internet

  • Organization: Hierarchical structure makes lookups efficient

  • Speed: Distributed architecture with caching reduces latency

Think of it like a well-organized library versus a pile of millions of books. The organized system is always faster.


Using dig and nslookup

You can perform DNS lookups yourself using command-line tools:

  • nslookup - Available on Windows

  • dig - Available on Linux and macOS (more detailed output)

Getting Started

Let's explore DNS for google.com step by step.

Example 1: Basic IP Lookup

Using nslookup:

nslookup google.com

Sample output:

Server:  UnKnown
Address:  192.168.1.1

Non-authoritative answer:
Name:    google.com
Address:  142.250.190.14

Explanation:

  • Server: Your router's DNS resolver (shown as "Unknown" because it has no reverse DNS name)

  • Address: Your router's IP address (192.168.1.1) - the starting point for DNS lookup

  • Non-authoritative answer: The result came through recursive querying (cached or forwarded)

Using dig:

dig google.com

Key output sections:

;; ANSWER SECTION:
google.com.        300    IN    A    142.250.190.14

The 300 is the TTL (Time To Live) in seconds—how long this result can be cached.

Sample output from the 'dig' command with key fields highlighted - TTL, record type, IP address, and query time.


Example 2: Finding Name Servers (NS Records)

Using nslookup:

nslookup -type=NS google.com

Sample output:

google.com    nameserver = ns1.google.com
google.com    nameserver = ns2.google.com
google.com    nameserver = ns3.google.com
google.com    nameserver = ns4.google.com

Using dig:

dig google.com NS

What this shows: These are Google's authoritative name servers—the servers that officially control DNS records for google.com.


Example 3: Direct Authoritative Query

Using nslookup:

nslookup google.com ns1.google.com

Sample output:

Server:  ns1.google.com
Address:  216.239.32.10

Name:    google.com
Address:  142.250.190.14

Notice the "Non-authoritative answer" line is gone—you queried the authoritative server directly.

Using dig:

dig @ns1.google.com google.com

Example 4: Viewing Root Servers

Using nslookup:

nslookup -type=NS .

Using dig:

dig . NS

Output shows the 13 root servers:

a.root-servers.net
b.root-servers.net
c.root-servers.net
...
m.root-servers.net

Example 5: Viewing TLD Servers

For .com TLD:

Using nslookup:

nslookup -type=NS com

Using dig:

dig com NS

Sample output:

com.    nameserver = a.gtld-servers.net
com.    nameserver = b.gtld-servers.net
...

Quick Command Reference

Tasknslookupdig
Get IPnslookup example.comdig example.com
Get NS recordsnslookup -type=NS example.comdig example.com NS
Get MX recordsnslookup -type=MX example.comdig example.com MX
Query specific servernslookup example.com 8.8.8.8dig @8.8.8.8 example.com
Get TXT recordsnslookup -type=TXT example.comdig example.com TXT

DNS Caching and TTL

DNS uses caching at multiple levels to improve performance:

Browser Cache (seconds to minutes)
      ↓
OS Cache (minutes)
      ↓
Recursive Resolver Cache (minutes to hours)
      ↓
Authoritative Server (definitive answer)

TTL (Time To Live)

Every DNS record has a TTL value that controls how long it can be cached.

Example:

google.com.  300  IN  A  142.250.190.14
             ^^^
             TTL in seconds (5 minutes)

Multiple layers of DNS caching, from browser cache (seconds) to authoritative servers (definitive answers).


Next Read

DNS Record Types Explained — What A, AAAA, CNAME, MX, TXT records really mean and when to use them.

More from this blog

Learn With Sumit

13 posts