The Domain Name to IP resolution process is a very complex one while considering the time it takes to do that. We type the name of the website into the browser, gets converted to IP and there we have it! All of it just happens in a fraction of a second.
There are zillions of articles about the DNS process and it helps the admins across the world to resolve DNS issues effectively. However, misconceptions or confusions about the role and working of various DNS components keep some of the admins perplexed at times, especially during custom setups and migrations.
Since root nameservers and domains occupy the helm of DNS, I am trying to explain the role and importance of these two here.
The Operators
Root name servers are operated by twelve organizations often referred to as the “root server operators”. They are
A – VeriSign Global Registry Services
B – Information Sciences Institute
C – Cogent Communications
D – University of Maryland
E – NASA Ames Research Center
F – Internet Systems Consortium, Inc.
G – U.S. DOD Network Information Center
H – U.S. Army Research Lab
I – Autonomica/NORDUnet
J – VeriSign Global Registry Services
K – RIPE NCC
L – ICANN
M – WIDE Project
The letters A-M represent the 13 numeric IPv4 addresses at which the service is provided. These 13 IPs correspond to servers located at about 130 physical location around the globe in about 53 countries. These servers contain a file called ‘root.zone’ which makes them special.
The root zone file lists the names and numeric IP addresses of the authoritative DNS servers for all top-level domains (TLDs) such as ORG, COM, NL and AU. There are currently 13 root-servers (to be more specific, 13 IPs). The number of individual machines mapped with these IPs are more than 150 worldwide, described in further detail later.
The IPs of root-servers are known to every name server in the world using a special zone file, which is distributed with all DNS software. Below is the general implementation of the DNS and position of the root servers:
The black spots denote authoritative NS (name servers) for the domains beside them.
You may find the root servers locations from this site:
http://public-root.com/root-server-locations.htm
It is a good one!
Root Hint Files
All the name servers on the Internet will be aware of the IP of root servers. This information is provided in a file which comes along with the name server software package such as Bind, TinyDNS etc. The file is named.root or named.ca (it varies). This file is called the Root Hint file or root cache files. It holds the name of the root servers and the corresponding IP at which it should be contacted. The root hint file is usually located in /var/named as named.ca or named.root (if the NS package is BIND). I have attached below a screen shot of a part of the file.
Here you may see the name of the root server to the left-hand side and its IP to it’s right. The list I have put here has the servers up to D only. This list continues till M ( M.ROOT-SERVERS.NET.).
The IP of these root servers do not change frequently but it does, once in while. Thus no one cares to update this file. So it is advisable to update this file for anyone running a busy NS. You can easily fetch root hint file with a dig utility:
dig @a.root-servers.net . ns > root.hints
or
dig @a.root-servers.net . ns > named.ca
You can easily set-up a crontab entry to perform file update once in month.
What makes Root Servers so special than other servers?
The key file that makes root servers so special is ‘root.zone’. This is contained in all the root servers from A – M. You can download this file too and view it! Just note the screenshot in the above page. Two FTP servers are mentioned above: FTP.INTERNIC.NET & RS.INTERNIC.NET . Just do an ‘anonymous’ FTP to the above server and get the file by navigating to the specified directory. I have attached a screen shot of a part of it below.
In the two screenshots, we can observe the name of the Authoritative NS for the gTLD ‘.com’ and ccTLD ‘.in’ . These Authoritative NS for ‘.com’ and ‘.in’ will have the IP of Authoritative NS for the domains ( second level or third level ) under it. Similarly, all the existing ccTLDs and gTLDs have an entry for their NS in this file.
Now you might wonder: Only the names of the authoritative servers are mentioned here and where to get the IP of these? You need not worry. The IPs are mentioned in the same file after listing NS for all the TLDs. To make things clear I have put a screen print below:
The above is an entry in the same file ( root.zone). A.GTLD-SERVERS.NET. is an Authoritative NS for .com TLD. It’s IPv4 and Ipv6 addresses are mentioned. Similarly, there will be an IP entry for all the authoritative name servers for all the TLDs.
Okay. Then who updates this root.zone file?
In 2004, ICANN took over responsibility for the maintenance of the root- servers TLD master file—the file that lists the authoritative servers for each TLD. Distribution of this file to each of the operational root-servers is carried out using secure transactions. To further increase the security, the server providing the root updates is only accessible from the operational root-servers. It is not a publicly visible server.
Before I go on to the query process, I would like to present a small briefing about Domain Names basics:
Domain Names
The Domain Name System uses a tree (or hierarchical) name structure. At the top of the tree is the root node followed by the Top-Level Domains (TLDs), then the Second-Level Domains (SLD) and any number of lower levels, each separated with a dot. TLDs are split into two types:
1. Generic Top-Level Domains (gTLD): For example, .com, .edu, .net, .org, .mil, etc.
2. Country Code Top-Level Domains (ccTLD): For example, .us, .ca, .tv, .uk, etc.
For instance, abc.com, is actually a combination of an SLD name and a TLD name and is written from left to right with the lowest level in the hierarchy on the left and the highest level on the right:
So the format of a domain name is
sld.tld
The term Second-Level Domain is technically precise in that it defines nodes at the second level within the domain name hierarchy. There are also Third-Level Domains, which are especially relevant with ccTLDS. Any name just which is to exist in the Internet’s namespace just to the left of the gTLD or ccTLD ( i.e. SLD ) should be brought from an Accredited Registrar or simply, Registrar.
So what is www.abc.com?
From the explanations provided in the previous paragraph, we can see that if we assume a domain name www.abc.com, is built up from www and abc.com.
Keep in mind that only by convention do websites use the host name www (for World Wide Web), but a website can be named efg.abc.com—few may think of typing this into their web browser, but that does not invalidate the name! Every computer that is connected to the Internet or an internal network and is accessed using a name server has a hostname.
Consider some examples:
www.abc.com a company web server
ftp.abc.com a company file transfer protocol server
pc17.abc.com a normal PC
A hostname must be unique within the delegated domain name, but can be anything the owner of abc.com wants. Say, he can make ftp.abc.com as the web server. There is no protocol or convention to name web servers starting with www. It is usually given for better understanding that the name starting with www will be the web server and that starting with FTP will be the FTP server.
One more thing to note is that q1.abc.com & q2.abc.com need not be 2 different hosts (separate machines). It can also be 2 different sub-domains of abc.com on the same host!
To summarize: the owner can delegate, in any way they want, anything to the left of the domain name they own (or were delegated). The delegated owner is also responsible for administering this delegation.
Name Severs and Zone File
Each domain name in the Internet namespace will have at the least one authoritative NameServer associated with it (the accepted convention is to have at least two). This name server (NS) will be the one which helps and controls the resolution process of this domain and the domains under it ( sub-domains, add-on and parked ) to an IP.
The NS holds DNS records for a particular domain in the “Zone File” for the domain. In the Zone File there will be an entry called the A Record which maps the domain name to an IP.
So when we type in a domain into the web browser, it will be resolved to an IP only if the query from our machine reaches the authoritative name server. But how does this query reach the correct name server? This is where the Root name Servers come into play.