introduction
Sites in the Internet have place names. These names are stored in the DNS (Domain Name System).
All Internet services use DNS. It provides a way of giving memorable names to IP addresses. An implementation of DNS contains a DNS server, DNS client and a data store. The client and server talk to each other about domains by following the DNS protocol.
BIND is an open source DNS server. nslookup and host are DNS client programs.
Image produced from the Ordnance Survey Get-a-map service. Image reproduced with kind permission of Ordnance Survey and Ordnance Survey of Northern Ireland.
what it is
Every computer in the Internet has an address. Computers being what they are, Internet addresses are long strings of ones and zeroes like 0100001001100110 0000100101101000. Since most people take to a binary number system
| DNS domains |
|---|
![]() |
like a cat to water, no-one is going to use an address like that. The Internet address is chopped into octets (8 bit chunks) and those are turned into decimal numbers and seperated by dots to make a more memorable address like 66.102.11.99. This is called an IP address. The general public prefer words to numbers so an IP address is usually given a text label like www.google.com. This is a domain name. The machinery that deals with domain names is the DNS (Domain Name System). Domain naming is a system for replacing IP addresses with names. It is not necessary for computers to talk DNS: it is helpful for the people who use them.
A domain is a group of computers that have something in common, such as belonging to the same company. The Internet is a hierarchy of domains, split into subdomains of domains and subdomains of subdomains.
The biggest domain contains everything and has the catchy name of root and is written as a "." (commonly called a dot, a period or a full stop, depending on where you live). The first set of subdomains are called top level domains. Top level domains are controlled by ICANN (Internet Corporation For Assigned Names and Numbers).
| examples of TLDs (Top Level Domains) | ||
|---|---|---|
| domain | description | notes |
| .com | Company subdomains are contained in this domain. | This is a gTLD (Generic Top Level Domain). gTLDs have three letters. |
| .org | Non-profit organizations are contained in this domain. | This is another gTLD like .com. |
| .tv | Subdomains in the country of Tuvalu are contained in this domain. | This is a ccTLD (Country Code Top Level Domain). ccTLDs have two letters. |
| .arpa | Special technical domain | This is a special domain used for finding the domain name if you only have the IP address. |
Subdomains contained in a top level domain are called second-level domains, subdomains contained within a second level domain are called third-level domains, and so on. Each computer in a domain has a name. If a computer hosts a web site it is usually named www. If a computer hosts a file copying service it is usually named ftp.
One computer does not necessarily have one IP address in a sort of one-man-one-vote communism. It is more like lots-of-votes-for-the-rich capitalism. A home computer does have one IP address because that is all it needs to use Internet services. A business computer has several IP addresses. A busy Internet service has one IP address but is powered by several computers. The relation between IP addresses and DNS names is the same. One IP address may have several names; the names are all aliases for the same thing.
One DNS name may have several IP addresses. This is handy for a trick called round robin, used in a load balancing cluster such as a bunch of web servers. A web browser asks a DNS server for an IP address that matches a host name. The DNS server returns a list of web servers' IP addresses and the web browser picks the first address to send the request to. The next time a web browser makes the same request the DNS server changes the order of the IP addresses, moving the first address to the end. Requests end up being distributed between the web servers.
| www.google.com |
|---|
![]() |
The computer name, the subdomains and the top level domain are all used to form a DNS name. These are all stuck together in the same order as a postal address, with the most specific bit (the name of the computer) first and the least specific bit (the top level domain) last. This makes a name like www.google.com. It is not called an address because this would be confused with IP address. It is called an FQDN (Fully Qualified Domain Name). The domain names .co and .uk are not fully qualified. They are undergraduates. The domain name .google is just a schoolkid. The root domain is usually not included in a name so you don't have to type the final dot in the http://www.google.com./ URL. If you just type the http://www.google.com/ part the web browser is perfectly happy.
A DNS server has a database of IP addresses. Each address has a DNS name stored with it. The most common question a server receives is from a DNS client asking what IP address is associated with a DNS name. Since this question is a bit like looking up a telephone number in the Yellow Pages it is called a lookup query. A DNS server can also receive questions from DNS clients asking what DNS name is associated with an IP address. Since this is the reverse of the most common type of question, this is called a reverse lookup query. Finding the answer to a query is called resolving.
When a server receives a lookup query it checks its database. If it finds the address then it returns the name to the client. If a server gets very busy, more DNS servers are brought in to be its lackeys. The original server is the boss so it delegates its work to its lackeys.
A DNS server only keeps information about the addresses in its domain. If the address is outside its domain, the server tells the client to go ask a DNS server that is part of the root domain. The root domain DNS servers don't know the answer to anything, but that doesn't matter: they are the bosses at the top of the DNS tree. All they have to do is to redirect the client to one of the subdomain lackeys.
A DNS client and server usually talk to each other using UDP and port 53. They sometimes use TCP instead of UDP.
what it isn't
DNS should really be thought of as a specification, not an implementation (a type of thing, not a thing). BIND should be called an implementation of a DNS server. That is, however, just too anally retentive.
where it is
A DNS server runs on each administration host. Every host has a DNS client.
history
In the 1970s all IP addresses and names were kept in a file called HOSTS.TXT. The file was copied from SRI-NIC (Stanford Research Institute - Network Information Center) to every Internet host.
In 1983 Paul Mockapetris designed a new system, DNS. He published his idea in in RFCs (Request For Comments) 882 and 883. Seven gTLDs (.com, .edu, .gov, .int, .mil, .net, and .org) were created. He then operated the original "root servers" for all Internet names.
In 1986 DNS was declared an Internet Standard by the IETF (Internet Engineering Task Force).
In 1988 Paul Vixie created BIND, the most popular DNS server on the Internet.
In 2001 seven more gTLDs (.biz, .info, .name, .pro, .aero, .coop, and .museum) were created.




