What is DNS?

    July 27, 2005

DNS stands for Domain Name System and it’s a necessary part of what makes the Internet work. It is hard to do anything on the Internet these days without making a query to a DNS server.

The beauty of DNS is in its transparency. Many people have heard of it, but few care to or need to know how it functions. Type a URL in your browser and, behind the scene, the browser queries the DNS to resolve the URL to an IP address. Same goes for sending emails, as the email server needs to locate the IP address of the server to forward messages to the correct recipients.

The Internet is a collection of computers, known as nodes, inter-connected around the world. In order for a node to become a part of the Internet it must have a legitimate address, known as an IP (Internet Protocol) address. Just like a postal address, an IP address is the means by which nodes can find and converse with each other. Nodes can be accessed through their IP addresses, but in order to bring the Internet to the masses, a system was devised to transform IP addresses to a human readable format. That is precisely what DNS does. It is used to assign names to IP addresses.

In the beginning the task of translating names to IP addresses was accomplished using hosts files. These were simple text files with sequential records of IP addresses and their corresponding names. As the Internet grew, it became apparent that maintaining these files was cumbersome and error-prone. DNS was devised to not only ease and formalize the translation job, but to also give such translation a more distributed nature.

Today hosts files are rarely used at localized levels and that is mainly for debugging purposes, but the real work of translating names to IP addresses is done via DNS.

Just about all computers connected to the Internet are assigned at least one DNS address to handle the job of translation, known as resolving names. If you have a Windows machine, you can find your DNS assignment using the “ipconfing/all” command. In Unix/Linux, the “resolv.conf” file contains the DNS information that is used to resolve names.

There are commands available allowing you to interact with DNS and make various queries. In Windows “nslookup” is the command that can be used to query DNS to resolve a name to an IP address. In Unix/Linux the equivalent command is “dig”. These commands however run in shell or command environments and are too esoteric for an average user to utilize. There is however a plethora of Web sites on the Internet that offer this service to users for free. Users can generally type in a node name and the site would query the DNS on their behalf and display the results.

Robert Vahid Hashemian, http://www.hashemian.com/ , is an
Internet and database programmer living in Connecticut,
USA. He is also the author of the book,
“Financial Markets For The Rest Of Us”. His Web site
contains a variety of Internet tools, including DNS
utilities at http://www.hashemian.com/tools/ .