Pages

Wednesday, March 7, 2012

Domain Name System (DNS)

The Domain Name System (DNS) is a hierarchical naming system for computers, services, or any resource participating in the Internet. It associates various information with domain names assigned to such participants. Most importantly, it translates domain names meaningful to humans into the numerical (binary) identifiers associated with networking equipment for the purpose of locating and addressing these devices world-wide. An often used analogy to explain the Domain Name System is that it serves as the "phone book" for the Internet by translating human-friendly computer hostnames into IP addresses. For example, www.PAMPLONA5.com translates to 10.200.91.218.
The Domain Name System distributes the responsibility of assigning domain names and mapping those names to IP addresses by designating authoritative name servers for each domain. Authoritative name servers are assigned to be responsible for their particular domains, and in turn, can assign other authoritative name servers for their sub-domains. This mechanism has made the DNS distributed, fault tolerant, and helped avoid the need for a single central register to be continually consulted and updated.
In general, the Domain Name System also stores other types of information, such as the list of mail servers that accept email for a given Internet domain. By providing a world-wide, distributed keyword-based redirection service, the Domain Name System is an essential component of the functionality of the Internet.
------------------------------------------------------------------------------------------------------------------
The domain name system (DNS) is the way that Internet domain names are located and translated into Internet Protocol addresses. A domain name is a meaningful and easy-to-remember "handle" for an Internet address.
Because maintaining a central list of domain name/IP address correspondences would be impractical, the lists of domain names and IP addresses are distributed throughout the Internet in a hierarchy of authority. There is probably a DNS server within close geographic proximity to your access provider that maps the domain names in your Internet requests or forwards them to other servers in the Internet.
Structure:

The domain name space
The domain name space consists of a tree of domain names. Each node or leaf in the tree has zero or more resource records, which hold information associated with the domain name. The tree sub-divides into zones beginning at the root zone. A DNS zone consists of a collection of connected nodes authoritatively served by an authoritative nameserver. (Note that a single nameserver can host several zones.)
Administrative responsibility over any zone may be divided, thereby creating additional zones. Authority is said to be delegated for a portion of the old space, usually in form of sub-domains, to another nameserver and administrative entity. The old zone ceases to be authoritative for the new zone.

Parts of a domain name

A domain name usually consists of two or more parts (technically labels), which are conventionally written separated by dots, such as example.com.

  • The rightmost label conveys the top-level domain (for example, the address www.example.com has the top-level domain com).
  • Each label to the left specifies a subdivision, or subdomain of the domain above it. Note: “subdomain” expresses relative dependence, not absolute dependence. For example: example.com is a subdomain of the com domain, and www.example.com is a subdomain of the domain example.com.
  • In theory, this subdivision can go down 127 levels. Each label can contain up to 63 octets. The whole domain name may not exceed a total length of 253 octets.  In practice, some domain registries may have shorter limits.
  • A hostname refers to a domain name that has one or more associated IP addresses; ie: the 'www.example.com' and 'example.com' domains are both hostnames; however, the 'com' domain is not.

DNS servers

The Domain Name System is maintained by a distributed database system, which uses the client-server model. The nodes of this database are the name servers. Each domain or subdomain has one or more authoritative DNS servers that publish information about that domain and the name servers of any domains subordinate to it. The top of the hierarchy is served by the root name servers: the servers to query when looking up (resolving) a top-level domain name (TLD).

Protocol details

DNS primarily uses UDP on port 53  to serve requests. Almost all DNS queries consist of a single UDP request from the client followed by a single UDP reply from the server. TCP comes into play only when the response data size exceeds 512 bytes or for such tasks as zone transfer. Some operating systems such as HP-UX are known to have resolver implementations that use TCP for all queries, even when UDP would suffice.

DNS use cases and Alternatives

**DNS (Domain Name System):**

DNS is a critical protocol that translates human-readable domain names into IP addresses, facilitating the identification of resources on a network. It plays a crucial role in internet communication. Here are some use cases of DNS:

1. **Domain Name Resolution:**
   - The primary purpose of DNS is to translate domain names (like www.example.com) into IP addresses. This process is known as domain name resolution and is essential for locating resources on the internet.

2. **Web Browsing:**
   - DNS is integral to web browsing. When you enter a domain name in a web browser, DNS resolution is performed to find the IP address associated with that domain, allowing your browser to connect to the web server.

3. **Email Delivery:**
   - DNS is used for email delivery. When sending an email, the mail server uses DNS to look up the destination domain's mail exchange (MX) records, determining where to deliver the email.

4. **Resource Record Types:**
   - DNS supports various record types, such as A records (IPv4 addresses), AAAA records (IPv6 addresses), MX records (mail exchange), CNAME records (canonical name), and more. Each record type serves a specific purpose in the DNS ecosystem.

5. **Load Balancing:**
   - DNS is often used for load balancing by distributing incoming requests across multiple servers. Round-robin DNS and other techniques help distribute the load among different server IP addresses.

6. **CDN (Content Delivery Network) Routing:**
   - Content Delivery Networks use DNS to direct users to the nearest or most optimal server for content delivery. This helps improve the speed and efficiency of content delivery.

7. **Failover and Redundancy:**
   - DNS can be configured to provide failover and redundancy by associating multiple IP addresses with a domain name. If one server becomes unavailable, DNS can direct traffic to an alternative IP address.

8. **Dynamic IP Assignment (DHCP):**
   - DNS is used in conjunction with DHCP (Dynamic Host Configuration Protocol) to dynamically assign IP addresses to devices on a network. DNS updates help ensure that devices are reachable by name.

**Alternatives to DNS:**

While DNS is the predominant system for name resolution, there are alternative approaches and technologies:

1. **Hosts File:**
   - A local "hosts" file on a device allows the manual mapping of domain names to IP addresses. This approach is simple but doesn't scale well and is not suitable for large networks.

2. **mDNS (Multicast DNS):**
   - mDNS is a protocol for resolving hostnames to IP addresses within small local networks. It doesn't rely on a centralized DNS server and is often used for zero-configuration networking.

3. **NetBIOS Name Service (NBNS):**
   - NBNS is a legacy name resolution service used in Windows environments. It resolves NetBIOS names to IP addresses.

4. **LLMNR (Link-Local Multicast Name Resolution):**
   - LLMNR is a protocol used for name resolution on local networks in the absence of a DNS server. It is similar to mDNS and is often used in Windows environments.

5. **Blockchain-Based Naming Systems:**
   - Some blockchain-based naming systems aim to provide decentralized and censorship-resistant domain name registration. Examples include Handshake and Unstoppable Domains.

While alternative systems exist, DNS remains the dominant and standardized solution for domain name resolution on the global internet due to its scalability, efficiency, and widespread adoption.

No comments:

Post a Comment