DOMAIN NAME SYSTEM
(DNS)
Berkley Internet
Name Domain
(BIND)
A Default Google India Search Page With Its IP Address
On The Bottom
IP Address
Internet Protocol Address An Internet Protocol address (IP address) is a numerical label assigned to each
device (e.g., computer, printer) participating in a computer network that uses the Internet
Protocol for communication.
OR
In other words we can say that it is a number by which a device is referred in a network.
IP address is always characterized by its class. It has following classes. Class Range of first octet Network ID format Host ID format No.of networks No. of
addr./network
A 0 127 a b.c.d 128 16777216
B 128 191 a.b c.d 16384 65536
C 192 223 a.b.c d 2097152 256
Example of certain class type IPs.
Class A 10.0.0.1/255.0.0.0
Class B 172.24.0.1/255.255.0.0
Class C 192.168.0.1/255.255.255.0
Server In computing, the term server is used to refer to one of the following:
a computer program running to serve the needs or requests of other programs
(referred to in this context as "clients") which may or may not be running on
the same computer.
a physical computer dedicated to running one or more such services, to serve
the needs of programs running on other computers on the same network.
a software/hardware system (i.e. a software service running on a dedicated
computer) such as a database server, file server, mail server, or print server.
Domain Name System (DNS) The DNS is a hierarchical distributed naming system for computers, services,
or any resource connected to the Internet or a private network. It associates
various information with domain names assigned to each of the participating
entities. Most importantly, it translates domain names meaningful to humans
into the numerical identifiers associated with networking equipment for the
purpose of locating and addressing these devices worldwide.
An often-used analogy to explain the Domain Name System is that it serves
as the phone book for the Internet by translating human-friendly computer
hostnames into IP addresses. For example, the domain name
www.example.com translates to the addresses 192.0.32.10 (IPv4) and
2620:0:2d0:200::10 (IPv6).
History The practice of using a name as a simpler, more memorable abstraction of a
host's numerical address on a network dates back to the ARPANET era.
Before the DNS was invented in 1983, each computer on the network retrieved
a file called HOSTS.TXT from a computer at SRI (now SRI International).
The HOSTS.TXT file mapped names to numerical addresses.
At the request of Jon Postel, Paul Mockapetris invented the Domain
Name System in 1983 and wrote the first implementation. The original
specifications were published by the Internet Engineering Task Force
which were superseded in November 1987.
In 1984, four Berkeley studentsDouglas Terry, Mark Painter, David Riggle, and Songnian Zhouwrote the first Unix implementation, called The Berkeley Internet Name Domain (BIND) Server. In 1985, Kevin
Dunlap of DEC significantly re-wrote the DNS implementation. Mike Karels,
Phil Almquist, and Paul Vixie have maintained BIND since then. BIND
was ported to the Windows NT platform in the early 1990s.
Overview The Internet maintains two principal namespaces, the domain name hierarchy
and the Internet Protocol (IP) address spaces. The Domain Name System
maintains the domain name hierarchy and provides translation services
between it and the address spaces. Internet name servers and a
communication protocol implement the Domain Name System. A DNS name
server is a server that stores the DNS records for a domain name, such as
address (A) records, name server (NS) records, and mail exchanger (MX)
records; a DNS name server responds with answers to queries against its
database.
Domain Name Space DNS is the name service provided by the server for TCP/IP networks. DNS is
broken up into domains, a logical organization of computers that exist in a
larger network. The domains exist at different levels and connect in a
hierarchy that resembles the root structure of a tree. Each domain extends
from the node above it, beginning at the top with the root-level domain. Under
the root-level domain are the top-level domains, under those are the second-
level domains, and on down into sub domains. DNS namespace identifies the
structure of the domains that combine to form a complete domain name.
For example, in the domain name sub.secondary.com, "com" is the top-
level domain, "secondary" identifies the secondary domain name, and "sub"
identifies a subdomain within the larger network. This entire DNS domain
structure is called the DNS namespace.
Domain Name Syntax A domain name consists of one or more parts, technically called labels, that
are conventionally concatenated, and delimited by dots, such as example.com.
The right-most label conveys the top-level domain; for example, the domain name www.example.com belongs to the top-level domain com.
The hierarchy of domains descends from right to left; each label to the left specifies a subdivision, or sub domain of the domain to the right. For
example: the label example specifies a sub domain of the com domain, and
www is a sub domain of example.com. This tree of subdivisions may have
up to 127 levels.
Each label may contain up to 63 characters. The full domain name may not exceed a total length of 253 characters in its external dotted-label
specification. In the internal binary representation of the DNS the
maximum length requires 255 octets of storage. In practice, some domain
registries may have shorter limits.
DNS names may technically consist of any character representable in an octet. However, the allowed formulation of domain names in the DNS root
zone, and most other sub domains, uses a preferred format and character
set. The characters allowed in a label are a subset of the ASCII character
set, and includes the characters a through z, A through Z, digits 0 through
9, and the hyphen. This rule is known as the LDH rule (letters, digits,
hyphen). Domain names are interpreted in case-independent manner.
Labels may not start or end with a hyphen.
myhost.mygrp.mycorp.com.
Name Server The Domain Name System is maintained by a distributed database system,
which uses the client-server model. The nodes of this database are the name
servers. Each domain has at least one authoritative DNS server that publishes
information about that domain and the name servers of any domains
subordinate to it. The top of the hierarchy is served by the root nameservers,
the servers to query when looking up (resolving) a TLD.
Authoritative name server An authoritative name server is a name server that gives answers that have
been configured by an original source, for example, the domain administrator
or by dynamic DNS methods, in contrast to answers that were obtained via a
regular DNS query to another name server. An authoritative-only name server
only returns answers to queries about domain names that have been
specifically configured by the administrator.
An authoritative name server can either be a master server or a slave server. A
master server is a server that stores the original (master) copies of all zone
records. A slave server uses an automatic updating mechanism of the DNS
protocol in communication with its master to maintain an identical copy of the
master records.
Every DNS zone must be assigned a set of authoritative name servers that are
installed in NS records in the parent zone.
When domain names are registered with a domain name registrar their
installation at the domain registry of a top level domain requires the
assignment of a primary name server and at least one secondary name server.
The requirement of multiple name servers aims to make the domain still
functional even if one name server becomes inaccessible or inoperable. The
designation of a primary name server is solely determined by the priority
given to the domain name registrar. For this purpose generally only the fully
qualified domain name of the name server is required, unless the servers are
contained in the registered domain, in which case the corresponding IP
address is needed as well.
Primary name servers are often master name servers, while secondary name
server may be implemented as slave servers.
An authoritative server indicates its status of supplying definitive answers,
deemed authoritative, by setting a software flag (a protocol structure bit),
called the Authoritative Answer (AA) bit in its responses. This flag is
usually reproduced prominently in the output of DNS administration query
tools (such as dig) to indicate that the responding name server is an authority
for the domain name in question.
DNS Resolvers The client-side of the DNS is called a DNS resolver. It is responsible for
initiating and sequencing the queries that ultimately lead to a full resolution
(translation) of the resource sought, e.g., translation of a domain name into an
IP address.
A DNS query may be either a non-recursive query or a recursive query:
A non-recursive query is one in which the DNS server provides a record for a
domain for which it is authoritative itself, or it provides a partial result
without querying other servers.
A recursive query is one for which the DNS server will fully answer the query
(or give an error) by querying other name servers as needed. DNS servers are
not required to support recursive queries.
The resolver, or another DNS server acting recursively on behalf of the
resolver, negotiates use of recursive service using bits in the query headers.
Resolving usually entails iterating through several name servers to find the
needed information. However, some resolvers function more simply by
communicating only with a single name server. These simple resolvers (called
"stub resolvers") rely on a recursive name server to perform the work of
finding information for them.
Basic entry of a DNS Server via DHCP (Dynamic Host Control Protocol)
or Manual on DNS Resolver.
Berkley Internet Name Domain (BIND) BIND is the most widely used DNS software on the Internet. On Unix-like
operating systems it is the de facto standard.
Originally written by four graduate students at the Computer Systems
Research Group at the University of California, Berkeley (UCB), the name
originates as an acronym from Berkeley Internet Name Domain, reflecting the
application's use within UCB.
BIND was first released with Berkeley Software Distribution 4.3BSD, and as
such, it is a free and open source software. Paul Vixie started maintaining it in
1988 while working for Digital Equipment Corporation. As of 2010, the
Internet Systems Consortium maintains BIND.
Sample DNS Master Named Configuration File
Caching Server
Explanation DNS Master Named Configuration
File acl or access control list specifies the name for the network 192.168.0.0/24
Listen on port specifies the system that it should listen on port number 53 of
the I.P loopback and 192.168.0.100
Quercy source the query should be given to port 53
Directory gives the location of file inside the chroot enviroment
Dump-file keeps the cache of hitted I.P and host or domain names
Static file contains the statistics of the hits
MemStats keeps the stats of memory given to bind
Zone specified the rule for the domain name like which file contains the
information for the I.P to name and name to I.P resolution factors as well as
which zone contains which domains information Type specifies which type of server is it master or slave
File gives the location of the files which contains name to I.P and I.P to name
resolution factor.
Sample Host Name To I.P Conversion File
SOA Start Of Authority TTL Time To Live
42 Increased While Adding A New Entry And Replicating With Slave Server
NS Name Server A Address Record
Refresh is the number of seconds between update requests from slave
servers.
Retry number of seconds the slave will wait before retrying the last attempt
has failed
Expire is the number of seconds a slave will wait before considering the data
stale if it cannot reach the primary name server.
Minimum used to determine the minimum TTL, this is used for negative
caching. This is the default TTL if the domain does not specify a TTL.
Sample I.P To Host Coversion File
SOA Start Of Authority TTL Time To Live
42 Increased While Adding A New Entry And Replicating With Slave Server
NS Name Server A Address Record
Refresh is the number of seconds between update requests from slave
servers.
Retry number of seconds the slave will wait before retrying the last attempt
has failed
Expire is the number of seconds a slave will wait before considering the data
stale if it cannot reach the primary name server.
Minimum used to determine the minimum TTL, this is used for negative
caching. This is the default TTL if the domain does not specify a TTL.
Sample DNS Slave Named Configuration
File
Explanation DNS Master Named Configuration
File acl or access control list specifies the name for the network 192.168.0.0/24
Listen on port specifies the system that it should listen on port number 53 of
the I.P loopback and 192.168.0.100
Quercy source the query should be given to port 53
Directory gives the location of file inside the chroot enviroment
Dump-file keeps the cache of hitted I.P and host or domain names
Static file contains the statistics of the hits
MemStats keeps the stats of memory given to bind
Zone specified the rule for the domain name like which file contains the
information for the I.P to name and name to I.P resolution factors as well as
which zone contains which domains information Type specifies which type of server is it master or slave
File gives the location of the files which contains name to I.P and I.P to name
resolution factor.
Masters gives the information of the master servers I.P address
External Links 1. The Berkeley Internet Name Domain Server
http://www.eecs.berkeley.edu/Pubs/TechRpts/1984/5957.html
2. Domain Names - Concepts AND Facilities
http://tools.ietf.org/html/rfc1034
3. Letting DNS Loose
http://www.circleid.com/posts/letting_dns_loose/
4. Domain Name System
http://en.wikipedia.org/wiki/Domain_Name_System#DNS_resolvers
5. Ubuntu DNS BIND Configuration
https://help.ubuntu.com/community/BIND9ServerHowto
6. Fedora Linux Operating System
http://www.fedoraforum.org/