Chapter 17 DNS (Domain Name System) Mi-Jung Choi Dept. of Computer Science and Engineering mjchoi@postech.ac.kr 1 Introduction People prefer to use easy to remember names instead of IP addresses Domain names are alphanumeric names for IP addresses e.g., kr.yahoo.com, postech.ac.kr, ietf.org The domain name system (DNS) is an Internet-wide distributed database that translates between domain names and IP addresses How important is DNS? Imagine what happens when the local DNS server is down. KT 1.25 대란 (DNS서버 DOWN !!!) 2 Resolver and Name Server An application program on a host accesses the domain system through a DNS client, called the Resolver Resolver contacts DNS Server, called name server DNS server returns IP address to resolver which passes the IP address to application Resolver Client 1. Host name(khu.ac.kr) 4. IP(163.180.96.52) DNS Server 2. Host name(khu.ac.kr) 3. IP(163.180.96.52) 3 Design principle of DNS The naming system on which DNS is based is a hierarchical and logical tree structure called the domain namespace. An organization obtains authority for parts of the name space, and can add additional layers of the hierarchy Names of hosts can be assigned without regard of location on a link layer network, IP network or autonomous system 4 Design principle of DNS (Cont’d) In practice, allocation of the domain names generally follows the allocation of IP address, e.g., All hosts with network prefix 163.180/16 have domain name suffix khu.ac.kr 5 Distributed, Hierarchical Database Root DNS Servers com DNS servers yahoo.com DNS servers amazon.com DNS servers org DNS servers pbs.org DNS servers edu DNS servers poly.edu umass.edu DNS servers DNS servers Client wants IP for www.amazon.com; At first, client queries a root server to find com DNS server Then, client queries com DNS server to get amazon.com DNS server Thirdly, Client queries amazon.com DNS server to get IP address for www.amazon.com 6 Resolution Process Let’s look at the resolution process step by step Local DNS What is the IP address of khu.ac.kr? Client 7 Resolution Process (cont’d) The Local DNS asks a root name server, m, for khu.ac.kr’s address m.root-server Local DNS What is the IP address of khu.ac.kr? Client 8 Resolution Process (cont’d) The root server m refers local DNS to the kr name servers This type of response is called a “referral” m.root-server Local DNS Here’s a list of the kr name servers. Ask one of them. Client 9 Resolution Process (cont’d) The local DNS asks a kr name server, f, for khu.ac.kr m.root-server Local DNS f.kr-server What is the IP address of khu.ac.kr? Client 10 Resolution Process (cont’d) The kr name sever f refers Local DNS to the ac.kr name servers m.root-server Local DNS f.kr-server Here’s a list of the ac.kr name servers. Ask one of them. Client 11 Resolution Process (cont’d) The local DNS asks an ac.kr name sever, g.ac-kr for khu.ac.kr’s address m.root-server Local DNS What is the IP address of khu.ac.kr? f.kr-server g.ac.kr-server Client 12 Resolution Process (cont’d) The g.ackr-server responds with khu.ac.kr’s address m.root-server Local DNS Here’s the IP address for khu.ac.kr (163.180.96.52) f.kr-server g.ac.kr-server Client 13 Resolution Process (cont’d) The local DNS responds to client with khu.ac.kr’s address m.root-server Local DNS Here’s the IP address for khu. ac.kr (163.180.96.52) f.kr-server g.ac.kr-server Client 14 Resolution Process (Caching) After the previous query, the Local DNS now knows: The names and IP addresses of the kr name servers The names and IP addresses of the ac.kr name servers The IP address of khu.ac.kr Let’s look at the resolution process again Client 15 Resolution Process (Caching) The client asks its Local DNS for networking.khu.ac.kr’s address m.root-server Local DNS What is the IP address of networking.khu.ac.kr? f.kr-server g.ac.kr-server h.khu.ac.kr-server Client 16 Resolution Process (Caching) Local DNS has cached an NS record indicating g.ac.kr-server is an ac.kr name server, so it asks it for networking.khu.ac.kr’s address m.root-server Local DNS f.kr-server What is the IP address of networking.khu.ac.kr? g.ac.kr-server Client 17 Resolution Process (Caching) g.ackr-server responds with networking.khu.ac.kr’s address m.root-server Local DNS Here’s a list of the khu.ac.kr name servers. Ask one of them. f.kr-server g.ac.kr-server h.khu.ac.kr-server Client 18 Resolution Process (Caching) g.ackr-server responds with networking.khu.ac.kr’s address m.root-server Local DNS f.kr-server What is the IP address of networking.khu.ac.kr? g.ac.kr-server h.khu.ac.kr-server Client 19 Resolution Process (Caching) Finally, the Local DNS responds to client with networking.khu.ac.kr’s address m.root-server Local DNS Here’s the IP address for networking.khu.ac.kr (163.180.116.228) f.kr-server g.ac.kr-server h.khu.ac.kr-server Client 20 DNS: Root name servers contacted by local name server that can not resolve name root name server: contacts authoritative name server if name mapping is not known gets mapping returns mapping to local name server a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland, College Park, MD k RIPE, London (also Amsterdam, g US, DoD, Vienna, VA Frankfurt) h ARL, Aberdeen, MD i Autonomica, Stockholm (plus 3 j Verisign, (11 locations) other locations) e NASA, Mt View, CA f Internet Software C. Palo Alto, m WIDE Tokyo CA (and 17 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 13 root name servers worldwide 21 Objectives Be able to explain process-to-process communication Know the format of a UDP user datagram Be able to calculate a UDP checksum Understand the operation of UDP Know when it is appropriate to use UDP Understand the modules in a UDP package 22 Examples Example 5 : After a few seconds, a user datagram arrives for port 52,222. The input module checks the table and cannot find the entry for this destination. The user datagram is dropped and a request is made to ICMP to send an “unreachable port” message to the source. Example 6 : After a few seconds, a process needs to send a user datagram. It delivers the data to the output module which adds the UDP header and sends it 23