Professional Documents
Culture Documents
SYSTEM
Resolving names to IP using a distributed application
DNS: Domain Name System
◦ Internet hosts, routers:
– IP address (32 bit) - used for addressing
– “name”, e.g., www.yahoo.com - used by humans
◦ DNS: Directory service that maps
between IP addresses and hostnames
◦ Domain Name System: is a distributed
database implemented in hierarchy of
many name servers.
DNS lookup
Web server
MAC address of destination
2:60:8c:2:b0:5a file
Socket
April 2018 Domain Name System 3
DNS Services
• Hostname to IP ◦ Why not centralize DNS?
address translation • single point of failure
• Host aliasing • traffic volume
– Canonical and alias • distant centralized
names database
• Mail server aliasing • maintenance
• Load distribution ◦ doesn’t scale!
• Replicated Web ◦ Naming as discussed in
servers: set of IP DFS
addresses for one
canonical name
called a zone
DNS EXAMPLE
Tracing a Name Query
Domain Name System 8
Arrows denote name
server entries
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
qmul.ac.uk
I want to connect to
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
qmul.ac.uk
Lets ask the domain controller
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
domain controller
qmul.ac.uk
I only know of my domain
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
domain controller
qmul.ac.uk
I don’t know of purdue.edu
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
Lets ask the parent domain
qmul.ac.uk
controller
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
parent domain controller
ic.ac.uk
pc203.purdue.edu qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
parent domain controller
ic.ac.uk
I don’t know of purdue.edu qmul.ac.uk
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
parent domain controller
ic.ac.uk
I don’t know of purdue.edu qmul.ac.uk
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
parent domain controller
ic.ac.uk
Lets ask grand parent qmul.ac.uk
pc203.purdue.edu
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
Root server
pc203.purdue.edu uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
a.root-servers.net
(root)
uk
ns1.nic.uk purdue.edu pc203.purdue.edu
(uk) yahoo.com
ns.purdue.edu
(purdue.edu)
co.uk
ns0.ja.net
ac.uk
(ac.uk)
* .purdue.edu
ic.ac.uk
qmul.ac.uk
dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk
DNS LEVELS
Top level Domain & Authoritative Name Servers
DNS QUERIES
Types of DNS Queries
Domain Name System 31
DNS Message Flow: Two Types of
Queries
Recursive query:
• Puts burden of name resolution on contacted
name server
• The contacted name server resolves the name
completely
Iterated query:
• Contacted server replies with name of server to
contact
• “I don’t know this name, but ask this server”
iterative recursive
April 2018 Domain Name System 33
Iterative Navigation
NS2
2
Name
1 NS1 servers
Client
3
NS3
2 2
4 3
1 1
NS1 NS1
client client
4 3 5
NS3 NS3
Non-recursive Recursive
server-controlled server-controlled
A name server NS1 communicates with other name servers on behalf of a client
2 iterated
3 query
4
7
local name server TLD name server
130.132.1.9
1 5 6
8
authoritative name server
dns.cs.umass.edu
requesting host
cyndra.cs.yale.edu
April 2018
gaia.cs.umass.edu
Domain Name System 36
April 2018
DNS RESOLUTION
Records and Updates
Domain Name System 37
DNS: caching and updating records
• Once (any) name server learns mapping, it
caches mapping
– Cache entries timeout (disappear) after
some time
– Local DNS server can also cache the IP
addresses of TLD servers
– Thus root name servers not often visited
• Type=A • Type=CNAME
– name is hostname – name is alias name for some
– value is IP address “canonical” (the real) name
www.ibm.com is really
• Type=NS
servereast.backup2.ibm.com
– name is domain (e.g. – value is canonical name
foo.com)
– value is the hostname of • Type=MX
authoritative name – value is name of mailserver
server for this domain associated with name
April 2018 Domain Name System 42
DNS Resource Records
Record type Meaning Main contents
A A computer address IP number
NS An authoritative name server Domain name for server
CNAME The canonical name for an alias Domain name for alias
SOA Marks the start of data for a zone Parameters governing the zone
WKS A well-known service description List of service names and protocols
PTR Domain name pointer (reverse Domain name
lookups)
HINFO Host information Machine architecture and operating
system
MX Mail exchange List of < preference, host > pairs
TXT Text string Arbitrary text
April 2018 Domain Name System 43
DNS Zone Data Records
domain name time to live class type value
dcs.qmul.ac.uk 1D IN NS dns0
dcs.qmul.ac.uk 1D IN NS dns1
dcs.qmul.ac.uk 1D IN NS cancer.ucs.ed.ac.uk
dcs.qmul.ac.uk 1D IN MX 1 mail1.qmul.ac.uk
dcs.qmul.ac.uk 1D IN MX 2 mail2.qmul.ac.uk
dcs 1D IN NS dns0.dcs
dns0.dcs 1D IN A 138.37.88.249
dcs 1D IN NS dns1.dcs
dns1.dcs 1D IN A 138.37.94.248
April 2018 Domain Name System 44
DNS Protocol, Messages
DNS Msg header:
• Identification:
• 16 bit # for query
• Reply to a query uses the
same #
• Flags:
• query or reply
• recursion desired
• recursion available
• reply is authoritative
DNS protocol: over UDP/TCP; query and reply messages, both with the same message format