DNS / Reverse Resolution
Domain Name System (DNS)
DNS or Domain Name System is a distributed data base system which allows the translation of name to an IP address or vice versa.
This system is a key part of the Internet infra structure. therefore, a system of great importance.
On the initial days of Internet the number of connected hosts was small what allowed the maintenance of file containing names and IP address of every connected host.
Just an observation. Even with small number of hosts, it was, and still is, easier to memorize names instead of IP address (a 32 bits octal number).
That file was made available in a central site and then copied by others system administrators.
With the success of the Internet and its continuous growing in number of connected hosts, it became hard to keep that file updated.
The solution was to create a distributed system to allow the name to address resolution.
This system has an hierarchical domain name structure where each site is responsible for keeping its own domain information updated. That is why it is considered a distributed system.
On this hierarchy, each part of the name is separeted by a ".". Being the leftmost part the most specific.
For example: www.example.org. The leftmost part represents one servers (normally a web server), and it is the most specific part of the example domain name; which, by its turn, is inside the org domain, which is the less specific part of the whole domain name.
Each part of the domain name might be under responsibility of a different entity. For example, the entity responsible for org zone not necessarily is the same responsible for the zone example.
This DNS system is composed by tree different components: authoritative servers, recursive servers and clients (resolvers).
The client (resolver) is the one found on any computer with TCP/IP software. What could be seen as any new computer with Internet access capability.
This client software initiates a DNS resolution due to some request by other softwares being executed in the computer which might be trying to access other computers through the Internet.
The configuration of a resolvers is very simple and only requires the IP address of a recursive server.
The recursive server is the one that receives DNS queries from resolvers and has the responsibility to do the complete resolution in order the return the most complete answer to the resolver. In order to do this, the recursive queries several different servers responsible for different parts of a given domain name.
The authoritative server is the one that has authority over the information of a given zone. Therefore, is the trustable source of information contained in the zone. It is registered in this server, all the information about IP addresses associated to names inside the zone.
A domain name resolution is initiated by the client software running in the computer. This software sends a query to the recursive server. This other server, in general, initiates the resolution querying the root servers, which are the servers responsible for the top level of domain name hierarchy. After this initial query, the recursive server follows information received from the root servers to query other servers in the hierarchy tree until it gets to the server responsible for the domain name being consulted.