You are on page 1of 47

DOMAIN NAME

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.

April 2018 Domain Name System 2


Composed naming domains used
to access a resource from a URL
URL http://www.cdk3.net:8888/WebExamples/earth.html
http://www.cdk5.net:8888/WebExamples/earth.html

DNS lookup

Resource ID (IP number, port number, pathname)

55.55.55.55 8888 WebExamples/earth.html

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

April 2018 Domain Name System 4


DNS – Naming Scheme
A hierarchical naming space to avoid name conflict

called a zone

April 2018 Domain Name System 5


Distributed Management of
the Domain Name Space
◦ A distributed database managed by authoritative name servers
◦ divided into zones, where each zone is a sub-tree of the global tree
◦ each zone has its own authoritative name servers
◦ an authoritative name server of a zone may delegate a subset (i.e. a sub-
tree) of its zone to another name server

April 2018 called a Name


Domain zone
System 6
Root Zone and Root Servers
• The root zone is managed by the root name servers
• 13 root name servers worldwide (A-M)

See http://root-servers.org/ for more details

April 2018 Domain Name System 7


April 2018

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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 9
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
Lets ask the domain controller
pc203.purdue.edu

dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 10
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
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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 11
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
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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 12
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
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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 13
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
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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 14
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
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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 15
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
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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 16
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
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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 17
Arrows denote name
server entries

a.root-servers.net
(root)

Grand parent domain controller


uk
pc203.purdue.edu 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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 18
Arrows denote name
server entries

a.root-servers.net
(root)

Grand parent domain controller


uk
I don’t know of purdue.edu ns1.nic.uk purdue.edu pc203.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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 19
Arrows denote name
server entries

a.root-servers.net
(root)

Grand parent domain controller


uk
Lets ask root server ns1.nic.uk purdue.edu pc203.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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 20
Arrows denote name
server entries

a.root-servers.net
(root)

Grand parent domain controller


uk
Lets ask root server ns1.nic.uk purdue.edu pc203.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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 21
Arrows denote name
server entries

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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 22
Root server
Arrows denote name
server entries
I KNOW where purdue.edu is
pc203.purdue.edu

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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 23
Root server
Arrows denote name Lets forward the request
server entries
pc203.purdue.edu

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

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 24
Purdue server
Yes I KNOW this machine
pc203.purdue.edu
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

dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 25
Sending IP back
Arrows denote name
pc203.purdue.edu
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

dcs.qmul.ac.uk *.dcs.qmwul.ac.uk
*.ic.ac.uk
*.qmul.ac.uk

alpha.qmul.ac.uk dns0.dcs.qmul.ac.uk dns0-doc.ic.ac.uk


My name is (qmul.ac.uk) (dcs.qmul.ac.uk) (ic.ac.uk)
PC201.dcs.qmul.ac.uk
April 2018 Domain Name System 26
April 2018

DNS LEVELS
Top level Domain & Authoritative Name Servers

Domain Name System 27


TLD and Authoritative Servers
• 13 root servers are at the top
• Top-level domain (TLD) servers: responsible for
com, org, net, edu, etc, and all top-level country
domains uk, fr, ca, jp.
– Network solutions maintains servers for com
TLD
– Educause for edu TLD
• Authoritative DNS servers: organization’s DNS
servers, providing authoritative hostname to IP
mappings for organization’s servers (e.g., Web and
mail).
– Can be maintained by organization or service
April 2018
provider Domain Name System 28
Local Name Server
• Does not strictly belong to hierarchy
• Each ISP (residential ISP, company, university) has
one.
– Also called “default name server”
– Can have a secondary name server that takes over
when primary fails
• When a host makes a DNS query, query is sent to its
local DNS server
– Acts as a proxy, forwards query into hierarchy.
• Local DNS server is learned from DHCP, or configured

April 2018 Domain Name System 29


Linking Name Servers
• Each name server knows the addresses of the
root servers
• Each name server knows the addresses of its
immediate children (i.e., those it delegates)

Top level domain


(TLD)

April 2018 Domain Name System 30


April 2018

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”

April 2018 Domain Name System 32


DNS Message Flow: Two Types of
Queries

iterative recursive
April 2018 Domain Name System 33
Iterative Navigation

NS2

2
Name
1 NS1 servers
Client

3
NS3

A client iteratively contacts name servers NS1–NS3 in order to resolve a name

April 2018 Domain Name System 34


Recursive Navigation
NS2 NS2

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

April 2018 Domain Name System 35


DNS Message Flow: The Hybrid
Case root name server

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

April 2018 Domain Name System 38


DNS Resolution Example
Scenario and Assumptions
◦ “XYZ Industries” runs its own DNS servers for the
“xyzindustries.com” zone
◦ The master name server is called “ns1.xyzindustries.com”, and
the slave is “ns2.xyzindustries.com”
◦ These are also used as local DNS servers for resolvers on client
machines
◦ These DNS servers accept recursive requests from machines within
our company, but will not assume other machines will accept such
request
◦ Both the server and resolver perform caching, and the caches are
initially empty

April 2018 Domain Name System 39


DNS Resolution Example
◦ Googleplex University runs its
own DNS servers for the
“googleplex.edu” domain with
the hierarchy as shown
◦ An employee at XYZ types in
the URL
www.net.compsci.googleplex.e
du
◦ How will the DNS resolution
for the host name take place?

April 2018 Domain Name System 40


April 2018 Domain Name System 41
DNS Records
DNS: distributed db storing resource records (RR)
RR format: (name, value, type, ttl)

• 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

domain name time to live class type value


www 1D IN CNAME apricot
apricot 1D IN A 138.37.88.248

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

April 2018 Domain Name System 45


DNS: Inserting Records
◦ example: new startup “Network Utopia”
◦ register name networkuptopia.com at DNS registrar (e.g., Network
Solutions)
◦ provide registrar with the names, IP addresses of your authoritative
name server (primary and secondary)
◦ registrar inserts two RRs into com TLD server:
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
◦ create your own authoritative server Type A record for
www.networkuptopia.com; Type MX record for networkutopia.com

April 2018 Domain Name System 46


Yahoo.com using nslookup

April 2018 Domain Name System 47

You might also like