Each computer directly connected to the Internet has at least one specific IP address. However, users do not want to work with numerical addresses such as 188.8.131.52 but with a domain name or more specifically addresses (called FQDN addresses) such as www.commentcamarche.net.
It is possible to associate names in normal language with numerical addresses thanks to a system called DNS (Domain Name System).
At the beginning of TCP/IP, since the networks were not very extensive, or in other words the number of computers connected to the same network was low, network administrators created files called manual conversion tables. These manual conversion tables were sequential files, generally called hosts or hosts.txt, associating on each line the IP address of the machine and the related literal name called the host name.
However, the previous system of conversion tables required manual updating of the tables for all computers in the event of an addition or modification of a machine name. So with the explosion in the size of networks and their interconnection, it was necessary to implement a management system for names which was hierarchical and easier to administrate. The system called Domain Name System (DNS) was developed in November 1983 by Paul Mockapetris (RFC 882 and RFC 883) then revised in 1987 in RFCs 1034 and 1035. DNS has been subject to many RFCs.
This system offers:
The structure of the DNS system relies on a tree structure where the higher level domains (called TLD, for Top Level Domains) are defined, attached to a root node represented by a dot.
Each node of the tree is called a domain name. Each node has a label with a maximum length of 63 characters.
All domain names therefore make up an inverse tree where each node is separated from the following node by a dot (".").
The end of a branch is called the host, and corresponds to a machine or entity on the network. The host name given to it must be unique in the respective domain, or if the need arises in the sub-domain. For example a domain's web server generally bears the name www.
The word "domain" formally corresponds to the suffix of a domain name, i.e. the tree structure's collection of node labels, with the exception of the host.
The absolute name relating to all the node labels of a tree structure, separated by dots, and finished by a final dot is called the FQDN address (Fully Qualified Domain Name). The maximum depth of the tree structure is 127 levels and the maximum length of a FQDN name is 255 characters. The FQDN address makes it possible to uniquely locate a machine on the network of networks. So, www.commentcamarche.net. is an FQDN address.
The machines called domain name servers make it possible to establish the link between domain names and IP addresses of machines on a network.
Every domain has a domain name server, called a primary domain name server, as well as a secondary domain name server, able to take over from the primary domain name server in the event of unavailability.
Every domain name server is declared in the domain name server of the immediately higher level, meaning authority can implicitly be delegated over the domains. The name system is a distributed architecture, where each entity is responsible for the management of its domain name. Therefore, there is no organization with responsibility for the management of all domain names.
The servers relating to the top level domains (TLD) are called "root name servers". There are 13 of them, distributed around the planet with the names "a.root-servers.net" to "m.root-servers.net".
A domain name server defines a zone, i.e. a collection of domains over which the server has authority. The domain name system is transparent for the user, nevertheless, the following points must be remembered:
The most commonly used server is called BIND (Berkeley Internet Name Domain). This is free software available under UNIX systems, initially developed by the University of Berkeley in California and now maintained by ISC (Internet Systems Consortium).
The consistent mechanism for finding the IP address relating to a host name is called "domain name resolution". The application making it possible to conduct this operation (generally integrated in the operating system is called "resolving".
When an application wants to connect to a known host by its domain name (e.g. "www.commentcamarche.net"), it interrogates a domain name server defined in its network configuration. In fact, each machine connected to the network has the IP addresses of its service provider's two domain name servers in its configuration.
A request is then sent to the first domain name server (called the "primary domain name server"). If this domain name server has the record in its cache, it sends it to the application, if not, it interrogates a root server (in our case a server relating to the TLD ".net"). The root name server sends a list of domain name servers with authority over the domain (in this case, the IP addresses of the primary and secondary domain name servers for commentcamarche.net).
The primary domain name server with authority over the domain will then be interrogated and will return the corresponding record to the domain host (in our case www).
A DNS is a distributed database containing records known as RR (Resource Records), relating to domain names. They alone are concerned with reading the information after the people responsible for the administration of a domain, the operation of domain name servers being totally transparent to users.
Because of the cache system enabling the DNS system to be distributed, the records for each domain have a lifetime known as TTL (Time to Live) enabling the intermediary servers to know the information's expiry date and therefore know if it is necessary to verify it or not.
Generally, a DNS record contains the following information:
|Domain name (FQDN)||TTL||Type||Class||RData|
www.commentcamarche.net. IN MX 10 mail.commentcamarche.net.
There are two categories of TLD (Top Level Domains):
|AE||United Arab Emirates|
|AG||Antigua and Barbuda|
|CD||Democratic Republic of Congo|
|CF||Central African Republic|
|EDU||Organisation with educational links|
|FK||Falkland Islands (Malvinas)|
|FX||France (European Territory)|
|HM||Heard and McDonald Islands|
|IM||Isle of Man|
|IO||British Indian Ocean Territory|
|KN||Saint Kitts and Nevis|
|MP||Northern Mariana Islands|
|NET||Organisation with Internet links|
|ORG||Non referenced organization|
|PG||Papua New Guinea|
|PM||Saint-Pierre and Miquelon|
|PR||Puerto Rico (USA)|
|SJ||Svalbard and Jan Mayen Islands|
|ST||Sao Tomé and Principe|
|TC||Turks and Caicos Islands|
|TF||French Austral Territories|
|TT||Trinidad and Tobago|
|UM||US Minor Outlying Islands|
|VC||Saint-Vincent and the Grenadines|
|VG||British Virgin Islands|
|VI||American Virgin Islands|
|WF||Wallis and Futuna|