Blog System Design

Understanding ICANN, DNS, and the Internet Ecosystem: A Detailed Explanation

ICANN: The Central Authority

The Internet Corporation for Assigned Names and Numbers (ICANN) acts as a central authority that manages the global Domain Name System (DNS) and coordinates the unique allocation of IP addresses and domain names. ICANN maintains a source of truth for domain names and IP addresses but does not directly handle DNS resolution or store IP addresses in real-time. Instead, ICANN delegates responsibilities to other entities, ensuring the internet operates seamlessly.

How DNS and IP Address Mapping Works

1. The Role of DNS

The Domain Name System (DNS) translates human-readable domain names (like example.com) into machine-readable IP addresses (like 192.0.2.1). DNS is a hierarchical and distributed system designed to handle billions of queries daily without relying on a single centralized authority.

  • Default DNS: Typically, your Internet Service Provider (ISP) provides a default DNS resolver. However, you can change your DNS to alternatives like Google DNS (8.8.8.8) or Cloudflare DNS (1.1.1.1) to potentially improve speed and privacy.

2. How to Change DNS on Your Laptop

You can configure your DNS settings manually on your device:

On Windows:

  1. Open the Control Panel and navigate to Network and Sharing Center.
  2. Click on your network and go to Properties.
  3. Select Internet Protocol Version 4 (TCP/IPv4) and click Properties.
  4. Choose Use the following DNS server addresses and enter your preferred DNS (e.g., 8.8.8.8 for Google DNS).

On macOS:

  1. Open System Preferences and go to Network.
  2. Select your active connection and click Advanced.
  3. Navigate to the DNS tab and add your preferred DNS server.

The Role of ICANN in the Ecosystem

ICANN ensures that domain names and IP addresses are unique and globally consistent. However, it delegates tasks to entities like:

  • Registries: Organizations managing top-level domains (e.g., Verisign for .com).
  • Registrars: Companies like GoDaddy that sell domain names to users.
  • Regional Internet Registries (RIRs): Manage IP address allocation (e.g., ARIN, RIPE NCC).

ICANN’s role includes:

  • Ensuring the uniqueness of domain names and IP addresses.
  • Coordinating changes to the root DNS system.
  • Facilitating incremental updates to domain and IP records.

How ICANN Reduces Load

Fetching all data from ICANN for every query would overload the system. Instead, the system employs the following:

1. Caching

  • Local Caching: Browsers and operating systems cache DNS mappings for a certain period (TTL – Time to Live).
  • Recursive Resolvers: DNS servers cache results to reduce repetitive queries to authoritative servers.

2. Incremental Updates

Instead of retrieving the entire database, registrars and DNS servers fetch only updates (new entries or changes) based on timestamps. This ensures efficiency and minimizes bandwidth usage.

3. Versioning

ICANN and registries maintain versioned records of changes to allow differential fetching—requesting only differences from the last known state.

4. Distributed Hierarchy

The DNS hierarchy delegates queries from root servers to TLD servers and then to authoritative servers, reducing the load on any single entity.


What Happens If ICANN Goes Down?

If ICANN were to experience downtime, the internet would still function for the most part due to DNS caching and distributed operations:

  • Impact on DNS Resolution:
    • Cached records in DNS resolvers ensure that users can still access websites they’ve visited recently.
    • Google’s and Cloudflare’s DNS servers maintain copies of authoritative data, so queries can still be resolved.
  • Impact on Domain Registration:
    • New domain registrations or changes to existing records (e.g., ownership updates) would be affected since ICANN oversees these operations.

In essence, critical internet functionality (e.g., accessing websites) remains unaffected, but non-critical tasks (e.g., registering new domains) may face delays.


Why Changes to Domain Records Take Time

Changes to DNS records, such as updating an IP address for a domain, can take 6 to 24 hours to propagate globally. This is due to:

  • Caching: DNS resolvers and ISPs cache records to reduce load, and these caches must expire before new records take effect.
  • TTL Settings: Time to Live settings define how long DNS records remain in cache.

Static vs. Dynamic IP Addresses

  • Static IP Addresses:
    • Assigned permanently to a device or server.
    • Suitable for hosting websites, as the IP does not change.
  • Dynamic IP Addresses:
    • Assigned temporarily by an ISP.
    • Common for home users and changes periodically, unsuitable for domains.

Reducing Downtime During Deployments

1. Load Balancing

A load balancer distributes incoming traffic across multiple servers to ensure availability and prevent downtime during deployments or server issues.

  • Multiple IP Addresses for the Same Domain Name: A domain name can resolve to multiple IP addresses, each pointing to a different load balancer. This ensures high availability. For example, codetechsummit.com could have multiple IPs, each representing a different load balancer.
  • High Availability: Multiple load balancers eliminate single points of failure.
  • DNS Mapping: The load balancer’s IP address is mapped to the domain name in DNS.

2. How Load Balancers Work

  • Load balancers maintain a pool of servers and keep track of which machines are live.
  • They forward requests to live servers, ensuring no downtime even if some servers or load balancers fail.
  • Subdomains can also be directed to specific IP addresses, enabling more granular traffic control.

3. Zero Code or Minimal Code Changes in Load Balancers

Load balancers do not require frequent updates or complex coding logic. They focus on:

  • Routing requests to available servers.
  • Monitoring server health and redistributing traffic automatically.
  • Allowing seamless scaling without changes to application code.

4. Zero-Downtime Deployments

  • Techniques like blue-green deployment or canary releases allow new code to be deployed without affecting the live environment.
  • Load balancers minimize downtime during deployments by routing traffic away from servers undergoing updates.

5. Reducing Deployment Downtime

Deployments can cause brief server unavailability. Load balancers mitigate this by:

  • Maintaining live servers to handle traffic while updates occur.
  • Distributing requests across multiple machines to avoid overloading any single server.
  • Ensuring that any failures during deployment do not disrupt the entire service.

Summary of Key Concepts

  1. DNS Resolution Process:
    • Browser → Local Cache → Recursive Resolver → Root Server → TLD Server → Authoritative Server.
  2. ICANN’s Role:
    • Manages root DNS and coordinates domain/IP uniqueness.
    • Handles changes incrementally to reduce load.
  3. Static vs. Dynamic IPs:
    • Static IPs are essential for consistent domain mapping.
  4. Load Balancers:
    • Ensure traffic is directed to live machines, reducing downtime.
    • Operate with minimal code changes, focusing on routing and server health monitoring.
  5. Multiple IPs and Subdomains:
    • Domains can resolve to multiple IPs for high availability.
    • Subdomains can have unique IP mappings for specific services.

By maintaining a distributed and hierarchical DNS system with caching and load balancing, the internet achieves both reliability and scalability, ensuring uninterrupted access to websites even during ICANN-related downtimes.

Avatar

Neelabh

About Author

As Neelabh Singh, I am a Senior Software Engineer with 6.6 years of experience, specializing in Java technologies, Microservices, AWS, Algorithms, and Data Structures. I am also a technology blogger and an active participant in several online coding communities.

You may also like

Blog Design Pattern

Understanding the Builder Design Pattern in Java | Creational Design Patterns | CodeTechSummit

Overview The Builder design pattern is a creational pattern used to construct a complex object step by step. It separates
Blog Tech Toolkit

Base64 Decode

Base64 encoding is a technique used to encode binary data into ASCII characters, making it easier to transmit data over