Networkingbeginner8 min read

How DNS Works

Understand the Domain Name System from root servers to your browser. Learn about DNS resolution, record types, caching, and troubleshooting.

What is DNS?

DNS (Domain Name System) translates human-readable domain names like devforge.tools into IP addresses like 104.21.32.1. It acts as the phone book of the internet — without it, you would need to memorize IP addresses for every website you visit.

The DNS Resolution Process

When you type a URL into your browser, a multi-step lookup happens:

  1. Browser cache — your browser checks if it already knows the IP.
  2. OS cache — the operating system has its own DNS cache.
  3. Recursive resolver — your ISP's DNS server (or a public one like 1.1.1.1) takes over.
  4. Root nameserver — the resolver asks a root server which TLD server handles .tools.
  5. TLD nameserver — the .tools server points to the domain's authoritative nameserver.
  6. Authoritative nameserver — returns the final IP address.

The response flows back through the chain and is cached at each level.

Common DNS Record Types

DNS uses different record types to store various kinds of information:

  • A — maps a domain to an IPv4 address
  • AAAA — maps a domain to an IPv6 address
  • CNAME — creates an alias pointing to another domain
  • MX — specifies mail servers for the domain
  • TXT — stores text data, often used for verification and SPF records
  • NS — delegates a zone to a set of nameservers
  • SOA — contains zone metadata like serial number and refresh intervals

DNS Caching and TTL

Each DNS record has a TTL (Time to Live) value measured in seconds. When a resolver fetches a record, it caches it for that duration. A TTL of 3600 means the record is cached for one hour before a fresh lookup is needed.

Lower TTLs mean faster propagation when you change records, but more DNS queries. Higher TTLs reduce load but make changes slower to take effect.

Troubleshooting DNS

Use these commands to debug DNS issues:

# Look up A records
nslookup devforge.tools

# Detailed query with dig
dig devforge.tools A +short

# Check nameservers
dig NS devforge.tools

# Trace the full resolution path
dig +trace devforge.tools

# Flush local DNS cache (macOS)
sudo dscacheutil -flushcache

Related Tutorials