>
Netprog
2001 DNS
1
Address
Conversion Functions and
The Domain Name System
RFC 1034
RFC 1035
Netprog
2001 DNS
2
Hostnames
IP Addresses
are great for computers
IP address
includes information used for routing.
IP addresses
are tough for humans to remember.
IP addresses
are impossible to guess.
ever guessed
at the name of a WWW site?
Netprog
2001 DNS
3
The Domain
Name System
The domain
name system is usually used to translate a host name into an IP
address .
Domain names
comprise a hierarchy so that names are unique, yet easy to remember.
Netprog
2001 DNS
4
DNS Hierarchy
edu
com
org
jp
rpi
albany
Netprog
2001 DNS
5
Host name
structure
Each host
name is made up of a sequence of labels separated by periods.
Each label
can be up to 63 characters
The total
name can be at most 255 characters.
Examples:
whitehouse.gov
barney.the.purple.dinosaur.com
monica.cs.rpi.edu
Netprog
2001 DNS
6
Domain
Name
The domain
name for a host is the sequence of labels that lead from the host (leaf
node in the naming tree) to the top of the worldwide naming tree.
A domain is
a subtree of the worldwide naming tree.
Netprog
2001 DNS
7
Top level
domains
edu,
gov, com, net, org, mil,
00/font>
Countries
each have a top level domain (2 letter domain name).
New top level
domains proposed.
Netprog
2001 DNS
8
DNS Organization
Distributed
Database
The organization
that owns a domain name is responsible for running a DNS server
that can provide the mapping between hostnames within the domain to
IP addresses.
So - some
machine run by RPI is responsible for everything within the rpi.edu
domain.
Netprog
2001 DNS
9
rpi.edu
DNS DB
rpi.edu
DNS DB
DNS Distributed
Database
There is one
primary server for a domain, and typically a number of secondary servers
containing replicated databases.
rpi.edu
DNS DB
Authoritative
rpi.edu
DNS DB
Replicas
rpi.edu DNS server
Netprog
2001 DNS
10
DNS Clients
A DNS client
is called a resolver.
A call to gethostbyname()is handled by a resolver (typically
part of the client).
Most Unix
workstations have the file /etc/resolv.conf that contains the local
domain and the addresses of DNS servers for that domain.
Netprog
2001 DNS
11
/etc/resolv.conf
domain rpi.edu
128.113.1.5
128.113.1.3
Netprog
2001 DNS
12
nslookup
nslookup is
an interactive resolver that allows the user to communicate directly
with a DNS server.
nslookup is
usually available on Unix workstations.
Netprog
2001 DNS
13
DNS Servers
Servers handle
requests for their domain directly.
Servers handle
requests for other domains by contacting remote DNS server(s).
Servers cache
external mappings.
Netprog
2001 DNS
14
Server
- Server Communication
If a server
is asked to provide the mapping for a host outside it00 domain (and
the mapping is not in the server cache):
The server
finds a nameserver for the target domain.
The server
asks the nameserver to provide the host name to IP translation.
To find the
right nameserver, use DNS!
Netprog
2001 DNS
15
DNS Data
DNS databases
contain more than just hostname-to-address records:
Name server
records NS
Hostname aliases
CNAME
Mail Exchangers MX
Host Information HINFO
Netprog
2001 DNS
16
The Root
DNS Server
The root server
needs to know the address of 1st (and many 2nd) level domain nameservers.
edu
com
org
jp
albany
rpi
Netprog
2001 DNS
17
Server
Operation
If a server
has no clue about where to find the address for a hostname, ask the
root server.
The root server
will tell you what nameserver to contact.
A request
may get forwarded a few times.
Netprog
2001 DNS
18
DNS Message
Format
HEADER
QUERIES
Response
RESOURCE RECORDS
Response
AUTHORITY RECORDS
Response
ADDITIONAL INFORMATION
Netprog
2001 DNS
19
DNS Message
Header
query identifier
flags
# of questions
# of RRs
# of authority
RRs
# of additional
RRs
16 bit fields
Response
}
Netprog
2001 DNS
20
Message
Flags
QR: Query=0,
Response=1
AA: Authoritative
Answer
TC: response
truncated (> 512 bytes)
RD: recursion
desired
RA: recursion
available
rcode: return
code
Netprog
2001 DNS
21
Recursion
A request
can indicate that recursion is desired - this tells the server to find
out the answer (possibly by contacting other servers).
If recursion
is not requested - the response may be a list of other name servers
to contact.
Netprog
2001 DNS
22
Question
Format
Name: domain
name (or IP address)
Query type
(A, NS, MX, 00
Query class
(1 for IP)
Netprog
2001 DNS
23
Response
Resource Record
Domain Name
Response type
Class (IP)
Time to live
(in seconds)
Length of
resource data
Resource data
Netprog
2001 DNS
24
UDP &
TCP
Both UDP and
TCP are used:
TCP for
transfers of entire database to secondary servers (replication).
UDP for lookups
If more than
512 bytes in response - requestor resubmits request using TCP.
Netprog
2001 DNS
25
Lots more
This is not
a complete description !
If interested
- look at:
RFC 1034:
DNS concepts and facilities.
RFC 1035:
DNS implementation and protocol specification.
play with
nslookup.
Look at code
for BIND (DNS server code).
Netprog
2001 DNS
26
Name to
Address Conversion
The InetAddress class provides Name to address
conversion.
Sample code
is on the web:
Myaddress
00prints out local IP address
Lookup 00
prints out all the IP addresses for a hostname.