Khaled Report
Khaled Report
Abstract
Throughout the World Wide Web the DNS protocol fills a main role in
allowing people use the network and find their way around. Enabling
the transparent translation from human language to computer’s, the
DNS lets us know where we want to go in the net without knowing the
32-bit IP-address of our destination but by knowing a meaningful name
representing it.
In this project we designed DNS compliant client and server models.
The DNS server model is a Name Server and it is programmed to
resolve DNS queries using the two protocol based algorithms. Using
these basic objects the simulation was configured.
The models and simulation of the DNS protocol was designed using the
OPNET modeler platform, written in C++.
The project, through its independent models, allows for future
projects the use of the designed model for creating more simulations
or other enhancements. One such enhancement will be done in part B
of this project in which we will add real delays taken from
experimental measurements. The system allows for easy adding of
different delay times to be used by the simulation, in order to allow
for analysis of reality based timing.
1. Introduction
1.6.1 Preparations
(In edit-preferances)
• Mod_dirs – dns op_model location (in first line in the directory
list).
• Run simulation.
This next chapter will give you better understanding of the DNS
protocol, its structure and algorithms.
This is the foundation on which the "DNS client-server model" project
leans upon.
2.1 General
The structure of the DNS database is very similar to the structure of the
UNIX file system. The database appears as an inverted tree, with the
root node at the top. Each node has a text label- an identifier relative to
its parent.
The domain names are divided starting at the root. The second level in
the tree is consisted of three groups: generic domains; country domains;
inverse domain.
In figure 2.1 we can see the top division of the domain tree.
The relative identifier, along with its chain of parent nodes' labels
separated by dots, creates a unique name.
For example – the name of the node "comnet" in the figure 2.2 is:
comnet.technion.ac.il (the root does not add an extra ".") as seen by the
arrows.
Every domain has a unique name (according to its identifier and path to
the root).
In DNS each domain can be administrated by a different organization.
Each organization can then break its domain into a number of
subdomains and handout responsibilities for those subdomains to
others. For example the "ac.il" domain is administrated by a central
organization in Israel while the "technion.ac.il" domain is administrated
by the technion itself.
Domains can contain both hosts and subdomains. Each host on a
network has a domain name, which points to it.
The delegation of subdomains creates different zones. A zone is a part
of a domain, which is under the administration of a single authority – a
specific name server. A name server who is authoritative for a zone
must have all the information needed for its zone.
Using this structure we have a distributed complete database of all the
hosts throughout the network. Each authoritative name server holds all
required information ranging from lower zones’ name servers which
were delegated by it (lower subdomains which are not administered by
it) to application specific information on a host (e.g. information for
t2.technion.ac.il mail-server & for its telnet server etc.). Using the
protocol’s algorithms we can reach the needed information from
somewhere in this database.
In figure 2.3 there is an illustration of the domain and zone structure.