DNS Overview

WINS worked well for internal networks as all machines are part of the same organisation. However, with the advent of the Internet where there are many networks connected, a method of structuring names became essential. A flat database, such as WINS, would be too cumbersome, as the resolver would have to search the entire database to resolve a name. Considering the size of the Internet this would be an extremely resource intensive, slow process.

Use the buttons below to navigate through the lesson

To solve this problem the Domain Naming System (DNS) was introduced. DNS names are arranged in a tree structure with the client names comprising of their own computer name followed by a string of domain names in order, separated by a . finishing with the top level domain. e.g. mail.es-net.co.uk.

This system allows distinctive names to be used on all networks, For example a computer called mail. In WINS there could only be one machine called mail in the world. With DNS we can call any computer mail as long as its domain-name was unique.

DNS is a distributed service that is based on a logical, hierarchical structure of DNS domain names. Because of this it is more scalable than WINS. Internet searches are based on DNS name resolution. When a name resolution query is made to a DNS server and it doesn’t know the answer the query can be passed onto another DNS server which in turn may pass the query on. In the end the client will either receive an answer or a name-resolution error. DNS is a hierarchically distributed database. This means that the DNS database is distributed all over the internet instead of in a central location.

Queries are made in a specific order, as you are about to see. Suppose a user types this address into his browser. Effectively a query has been made which says: “Find this address for me. I won’t go away until you have!”

The local DNS server begins its search… The first server visited is the root, because this address is known. Each DNS Server only has records for the next tier in the hierarchy. The root servers know the locations of the top-level domains, e.g. com, edu, uk. Thanks to the speed of modern switches and repeaters, and the blistering speed of light, many servers can be queried in a short space of time. Each of these question and response pairs are Iterative queries. The questioner (resolver) is happy with a hint as to where to look next. As far as the user is concerned his demand for a definitive answer has been met. The DNS server has done its job.

A Recursive query demands a definitive answer (even “Haven’t a clue” counts in this case.)
An Iterative query accepts a hint to ask somewhere else.
A Resolver is the machine making queries.

A DNS resolver can make one of two different queries:

Iterative queries can be described as “do you know the answer? If you don’t could you point me in the right direction” and is used by DNS servers to query other DNS servers.

Recursive queries are more like “tell me an answer even if the answer is I can’t find it or I don’t know”. This is how a client machine queries a DNS server. Servers can issue a recursive query but it is considered bad form as you put load on someone else’s DNS server. The server takes the responsibility for resolving the query.