Bird
Raised Fist0
HLDsystem_design~10 mins

DNS and how domain resolution works in HLD - Scalability & System Analysis

Choose your learning style10 modes available
Scalability Analysis - DNS and how domain resolution works
Growth Table: DNS Resolution at Different Scales
UsersQueries per Second (QPS)DNS Server LoadLatencyCache Hit Rate
100 users~10 QPSSingle DNS server handles easilyLow (~10-20 ms)High (local resolver cache effective)
10,000 users~1,000 QPSSingle DNS server or small clusterLow to moderate (~20-50 ms)High (recursive resolvers cache)
1,000,000 users~100,000 QPSMultiple DNS servers with load balancingModerate (~50-100 ms)High (global caching, CDN involvement)
100,000,000 users~10,000,000 QPSLarge distributed DNS infrastructure, AnycastLow to moderate (~20-80 ms)Very high (multi-layer caching, CDNs)
First Bottleneck

The first bottleneck in DNS resolution is usually the authoritative DNS servers for the domain. As user queries grow, these servers receive more requests than they can handle, causing increased latency or dropped queries. Local recursive resolvers and caches reduce load but cannot eliminate it. Network bandwidth and latency also impact resolution speed at very large scales.

Scaling Solutions
  • Caching: Use recursive resolvers and local caches to reduce repeated queries.
  • Load Balancing: Distribute queries across multiple authoritative DNS servers.
  • Anycast Routing: Deploy authoritative servers globally with the same IP to route queries to nearest server.
  • DNS Hierarchy: Leverage root and TLD servers to reduce load on authoritative servers.
  • CDNs: Use CDN DNS services to offload traffic and improve latency.
  • Rate Limiting and Security: Protect servers from DNS floods and attacks.
Back-of-Envelope Cost Analysis
  • At 1M users generating ~100K QPS, authoritative servers need to handle ~100K queries per second.
  • Each DNS query is small (~100 bytes), so bandwidth per server is ~10 MB/s at 100K QPS.
  • Storage is minimal, mostly for zone files (few MBs to GBs depending on domain complexity).
  • Network infrastructure must support low latency and high availability.
  • Scaling beyond 10M QPS requires global distribution and Anycast to keep latency low.
Interview Tip

When discussing DNS scalability in an interview, start by explaining the DNS hierarchy and caching layers. Then identify the bottleneck (authoritative servers) and propose solutions like caching, Anycast, and load balancing. Use numbers to justify your reasoning and mention security considerations. Keep your explanation clear and structured.

Self Check Question

Your authoritative DNS server handles 1,000 QPS. Traffic grows 10x to 10,000 QPS. What do you do first and why?

Answer: First, add caching layers and deploy additional authoritative servers with load balancing or Anycast to distribute the increased query load. This reduces pressure on any single server and maintains low latency.

Key Result
DNS resolution scales well with caching and distributed authoritative servers, but the first bottleneck is the authoritative DNS servers which require horizontal scaling and Anycast routing to handle millions of queries per second efficiently.

Practice

(1/5)
1. What is the main purpose of DNS in internet communication?
easy
A. To translate domain names into IP addresses
B. To store website content
C. To encrypt internet traffic
D. To manage email delivery

Solution

  1. Step 1: Understand DNS role

    DNS stands for Domain Name System and its main job is to convert human-friendly domain names into IP addresses computers use.
  2. Step 2: Identify correct function

    Among the options, only translating domain names to IP addresses matches DNS's core function.
  3. Final Answer:

    To translate domain names into IP addresses -> Option A
  4. Quick Check:

    DNS = domain to IP translation [OK]
Hint: DNS converts names to IPs, not content or encryption [OK]
Common Mistakes:
  • Confusing DNS with web hosting
  • Thinking DNS encrypts data
  • Mixing DNS with email servers
2. Which of the following is the correct order of DNS resolution steps when a user types a domain name?
easy
A. Root server -> TLD server -> Authoritative server
B. Authoritative server -> Root server -> TLD server
C. TLD server -> Root server -> Authoritative server
D. Local cache -> Authoritative server -> Root server

Solution

  1. Step 1: Recall DNS resolution hierarchy

    DNS resolution starts at the root server, then goes to the TLD (Top-Level Domain) server, and finally to the authoritative server for the domain.
  2. Step 2: Match the correct sequence

    Root server -> TLD server -> Authoritative server correctly lists the order: Root -> TLD -> Authoritative.
  3. Final Answer:

    Root server -> TLD server -> Authoritative server -> Option A
  4. Quick Check:

    Resolution order = Root, TLD, Authoritative [OK]
Hint: DNS starts at root, then TLD, then authoritative [OK]
Common Mistakes:
  • Mixing up the order of servers
  • Starting resolution at authoritative server
  • Ignoring the root server step
3. Consider this simplified DNS resolution code snippet:
cache = {"example.com": "93.184.216.34"}

query = "example.com"

if query in cache:
    ip = cache[query]
else:
    ip = "198.51.100.1"  # IP from authoritative server

print(ip)
What will be the output when this code runs?
medium
A. 198.51.100.1
B. example.com
C. 93.184.216.34
D. KeyError

Solution

  1. Step 1: Check if query is in cache

    The query is "example.com" which exists in the cache dictionary with IP "93.184.216.34".
  2. Step 2: Determine printed IP

    Since the query is found in cache, the code assigns ip = cache[query] which is "93.184.216.34" and prints it.
  3. Final Answer:

    93.184.216.34 -> Option C
  4. Quick Check:

    Cache hit returns cached IP [OK]
Hint: If domain in cache, output cached IP [OK]
Common Mistakes:
  • Assuming authoritative IP prints always
  • Confusing key and value in dictionary
  • Expecting error if key exists
4. A DNS resolver is not returning the correct IP address for a domain. Which of the following is the most likely cause?
medium
A. The domain name is misspelled in the URL
B. The root server is unreachable but TLD server works
C. The authoritative server is down but cache is fresh
D. The local DNS cache has outdated information

Solution

  1. Step 1: Analyze DNS caching impact

    If the local DNS cache holds old IP data, the resolver returns outdated IP even if authoritative server changed.
  2. Step 2: Evaluate other options

    Misspelled domain would cause failure, not wrong IP. Authoritative down with fresh cache returns correct IP. Root unreachable but TLD working is unlikely scenario causing wrong IP.
  3. Final Answer:

    The local DNS cache has outdated information -> Option D
  4. Quick Check:

    Outdated cache causes wrong IP [OK]
Hint: Old cache causes wrong IP, refresh fixes it [OK]
Common Mistakes:
  • Ignoring cache as source of error
  • Assuming authoritative server always reachable
  • Confusing root and TLD server roles
5. You want to design a scalable DNS system for a global service. Which approach best improves DNS resolution speed and reduces load on authoritative servers?
hard
A. Use a single global authoritative server for all domains
B. Implement multiple caching layers including local resolver and CDN caches
C. Direct all DNS queries only to the authoritative servers
D. Disable caching to always get fresh IP addresses

Solution

  1. Step 1: Understand scalability needs

    To handle many users globally, caching at multiple layers reduces repeated queries to authoritative servers and speeds up responses.
  2. Step 2: Evaluate options for load and speed

    Direct queries to authoritative servers increase load and latency. Single global server is a bottleneck and risk. Disabling caching slows resolution and increases load.
  3. Final Answer:

    Implement multiple caching layers including local resolver and CDN caches -> Option B
  4. Quick Check:

    Multi-layer caching improves speed and scalability [OK]
Hint: Use caching layers to scale DNS efficiently [OK]
Common Mistakes:
  • Ignoring caching benefits
  • Centralizing authoritative servers causing bottlenecks
  • Disabling caching for freshness without tradeoff
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard