Lesson 8 of 15

DNS Resolution

DNS Resolution

The Domain Name System (DNS) translates human-readable domain names into IP addresses. When you visit example.com, DNS resolves it to an IP like 93.184.216.34.

DNS Hierarchy

                  . (root)
                 / \
              .com  .org
              /       \
         example     mozilla
           |           |
          www         www

Record Types

TypePurposeExample
AIPv4 addressexample.com -> 93.184.216.34
AAAAIPv6 addressexample.com -> 2606:2800:...
CNAMEAliaswww.example.com -> example.com
MXMail serverexample.com -> mail.example.com
NSName serverexample.com -> ns1.example.com

Resolution Process

  1. Client checks local cache
  2. Query recursive resolver
  3. Resolver queries root server -> TLD server -> authoritative server
  4. Response cached and returned

Your Task

Implement a DNSResolver class that simulates DNS resolution:

  • addRecord(domain, type, value) — adds a DNS record
  • resolve(domain, type) — resolves a domain, following CNAME chains
  • addToCache(domain, type, value, ttl) — adds to cache with TTL
  • resolveWithCache(domain, type, currentTime) — resolves using cache (returns null if expired)
Node.js loading...
Loading...
Click "Run" to execute your code.