Wednesday, June 22, 2005

Bind - DNS basics

Table Of Contents:

Basic terminology:

1. Meaning Of Domain
2. Zone
3. Recursion and Iteration
4. Types / Other Uses of a Domain

A Linux Domain:

1. Meaning Of Domain:

An Internet Domain can be briefly described as a "hierarchical methodology of storing / retrieving information on the Internet". Let us imagine a smaller version. Take floppy for example. Here the organization of data is defined in the form of FAT, Root Directory Table, Inodes ... etc. Once data organization is defined, one goes about writing programs for both "writing to" and "reading from" the floppy based upon the above design. Same way, the Internet is also a collection of huge quantity of Data, which is organized in a pre-defined hierarchical manner. So there must be "programs" that "write to" and "read from" this storage mechanism. The programs that "read from" the internet are what we call the browsers. They ask queries to the programs that "write to" and "maintain" Information that is requested for. In most basic terms, the programs that "write to" and "maintain" this information in the Internet are called Name Servers.

For accessing a sector of a floppy for example, we need some parameters ( such as sector number, the cylinder number etc ).In the same way, to access any Internet Domain, we need IP Address of the domain. So that is the parameter that the Browser on client's system queries for. The internet Domain in turn contains a program called Name Server that performs the task of answering the query. So a Name Server "can be primarily thought of as a 'program' that performs the task of returning the IP address corresponding to a name query ( eg.,,".

2. Zone

One can imagine Zones by looking at a very simple example. Imagine a small software company of 100 developers, with a name "". The programs that are written by the developers are stored in different hosts within the company which are interconnected to one another. So is the information related to the developers ( like say, i. User information, ii. Programs Developed and their permissions , iii. Information related to the programs ( such as their revision numbers ) etc... The above software company can be thought to be having a certain "centralized" set of "servers" ( or computers ) that perform the following tasks :

1. Providing the users ( in this case, the developers ), the "user space" ( for writing their programs into ).
2. Providing necessary services for monitoring ( or "administering" ) critical user information
and permissions.

Thus the above setup consists of a set of computers that have been "delegated" the "authority of administering the database of user information and data". Now, the above setup can be called a "Zone" that is administered by "the delegated servers".

But, the outside internet world need not necessarily know about the internal mechanism of administration and activities. They are interested in knowing about the software that has been developed by the organization and related details. So there must also be some "other" delegated servers which perform the above task. Those servers can be thought of as forming another so called "Zone". Though, it is particularly inappropriate to consider the above example in the strictest of terms, it is quite easily a way of appreciating the concept of Zones.

3. Recursion and Iteration:

Now that we know that browsers query for the IP addresses, we must define how they do so. Whom do they query ? The query put forward by the browsers, goes to 13 or 14 "root" programs which are conveniently placed in the Internet. These programs are the root name servers. They are represented by the symbol "." . Now, looking at the speed at which internet is growing, and the complexities that arise when only 13 to 15 programs have to answer all the queries, the same technique mentioned in the above example ( of ) is used for simplification. That is , delegation. The root servers delegate other servers with the job of answering the queries put forward by the millions of users in the internet. These delegated name servers are nothing but the programs that in turn handle ".com", ".org", ".biz" ... domains independently.

There are two ways in which a query can be handled. Say for example , host A queries for . Now, the query initially goes to one of the root servers, which in turn "query the name server that handles only ".com" type of domains. The name server that handles ".com" type of domains, in turn queries another name server that handles "", to obtain the IP address. Provided there is a physical system ( or node ) that represents "" in "", its IP address is returned to the ".com"'s name server by the ""'s name server. This is the first method of getting the IP address to host. This method as can be seen is too centralized, and provides a lot of burden upon the top level servers. Another such "method" can be used for answering such queries. The root ( "." ) server instead of making the host wait for the IP address, can ask the host ( the host making the query that is ), to go and query the name server handling ".com" queries. This way the root server is freed for answering other hosts. Again, the name server handling ".com" queries, "diverts" the query to one(s) that handle "" ... and so on. This difference in type of query answering mechanism is what distinguishes whether the method is that of Recursion or Iteration.

4. Types / Uses of a Domain:

An Internet Domain can be used for hierarchical arrangement and administration of different "types" of data. Data may be just user names and passwords, as it is, in the case of a basic mail server. It might be just a internet mapping and searching program ( a search engine ). It might as well be a dedicated one to be only used by a very limited set of users in some remote locations( VPNs ). There exist domains that perform the tasks of each type mentionable on earth !


Post a Comment

<< Home