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.eduNetprog 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 HINFONetprog 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 RRs16 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 codeNetprog 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 dataNetprog 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.download Address Conversion Functions and The Domain Name System
