DNS: What It Is and What It Does
In essence, DNS is simply a database that links meaningful names (known as host names), such as http://www.microsoft.com, to a specific IP address, such as 192.168.124.1. Simply linking addresses to names is just the beginning, though, because DNS has many more features in addition to host-name-to-address mapping.
The key features of host name to IP mapping are as follows:
- Mappings of addresses to names and vice versa (known as records) are stored in a database.
- The DNS database is distributed.
- A DNS database also stores additional records.
Although DNS is a database, most importantly it's a distributed database. Each DNS server contains only a small portion of the host name to IP address mappings (relative to the number of records for the entire Internet). Each DNS server is configured with a special record that tells the DNS server where (the IP address of another DNS server) it will perform a lookup for records it doesn't have in its portion of the DNS database. Because of this arrangement, each DNS server maintains only a small portion of the total DNS host to IP address mappings. The collection of host-name-to-IP-address mappings contained with the DNS database is also known as a namespace. Essentially, when looking for a name in DNS, the DNS client first checks a top-level DNS server database. That server tells the client which DNS server hosts the next part of the DNS name, and the client then queries that server. This lookup-and-handoff process continues until the client finds the DNS server that hosts the DNS record in question, and that server provides the IP address.
In addition to the basic IP-address-to-host-name mapping records stored by the DNS database, records are also maintained by DNS for other purposes. DNS contains a number of record types that facilitate other applications. The Mail Exchanger (MX) record, for example, provides mail servers with the information required to forward e-mail messages to the recipient's e-mail server. Another type of record, the service (SVC) record, is used by Microsoft Active Directory to locate network services.
Seeing the DNS difference
By itself, DNS doesn't appear to do much, and on top of that, DNS can seem a bit intimidating because it has number of different features and record types. One key to understanding the importance of DNS is realizing how other processes and applications depend on the services DNS provides. By understanding how DNS provides the underlying services used by various applications, you can get a clearer picture of why DNS exists and how it works.
Many common applications use DNS services, including
- World Wide Web (WWW)
- Other applications, such as instant messaging
The World Wide Web depends on DNS for user-friendly navigation. You could get to a Web site by entering the IP address of a site in your Web browser, but remembering lots of arbitrary numbers isn't easy for most folks. It's much easier to remember a DNS name for a Web site that reflects its content, such as http://www.yahoo.com or http://www.microsoft.com. It's fair to say that without DNS, the Web wouldn't have become quite the phenomenon that it is now.
Serving the e-mail connection
E-mail is one of the more popular applications that use DNS. Although the Web simply uses DNS for linking names to IP addresses for Web sites, e-mail servers also require some specialized records above and beyond what is required for basic host name to IP addresses. For example, when an e-mail message is sent from your e-mail client (such as Microsoft Outlook or Netscape Messenger), it can be sent either directly to the target domain (Microsoft.com if the note was sent to email@example.com) or to another e-mail server that is providing a relay service. If your e-mail application specifies an outgoing (SMTP) mail server that is not the final destination server for the message, you're making use of the relay process.
An e-mail address is made up of two parts: a recipient and a host. In the address firstname.lastname@example.org, postmaster is the recipient, the user who will receive the message. This is irrelevant to the SMTP process, though, because the mail transfer agent (MTA) is responsible for making sure that the message gets into the mailbox of the recipient.
The host, domain.tld, is of much more interest. In this case, domain.tld refers not to a host in the traditional sense of an A record but rather to a mail server known as a mail exchanger (MX). This server is responsible for accepting all mail for domain.tld, denoted by a special record — an MX record — in DNS.
Beyond the Web and e-mail are many applications that either rely on or can use DNS services. These applications can include databases, multi-tier Web applications built by using middleware or an application server, peer-to-peer sharing programs, instant messaging, and multiplayer games.
In quite a practical sense, any application that uses the Internet to connect two or more hosts to share information, or otherwise communicate, is probably relying on DNS services in one form or another.