DNS - Domain Name System



Similar documents
DNS : Domain Name System

Motivation. Domain Name System (DNS) Flat Namespace. Hierarchical Namespace

CS3250 Distributed Systems

Hostnames. HOSTS.TXT was a bottleneck. Once there was HOSTS.TXT. CSCE515 Computer Network Programming. Hierarchical Organization of DNS

DNS Domain Name System

The Domain Name System (DNS)

THE DOMAIN NAME SYSTEM DNS

Lecture 2 CS An example of a middleware service: DNS Domain Name System

The Domain Name System

Distributed Systems. 09. Naming. Paul Krzyzanowski. Rutgers University. Fall 2015

Applications and Services. DNS (Domain Name System)

Forouzan: Chapter 17. Domain Name System (DNS)

Domain Name System (DNS) Fundamentals

Internetworking with TCP/IP Unit 10. Domain Name System

ECE 4321 Computer Networks. Network Programming

DNS. Computer Networks. Seminar 12

Domain Name System. DNS is an example of a large scale client-server application. Copyright 2014 Jim Martin

19 Domain Name System (DNS)

Application Protocols in the TCP/IP Reference Model

Domain Name System (DNS)

Application Protocols in the TCP/IP Reference Model. Application Protocols in the TCP/IP Reference Model. DNS - Concept. DNS - Domain Name System

CS 348: Computer Networks. - DNS; 22 nd Oct Instructor: Sridhar Iyer IIT Bombay

DNS. Computer networks - Administration 1DV202. fredag 30 mars 12

Domain Name System (DNS) Session-1: Fundamentals. Ayitey Bulley

Domain Name System (DNS) RFC 1034 RFC

Application Protocols in the TCP/IP Reference Model. Application Protocols in the TCP/IP Reference Model. DNS - Domain Name System

Internet-Praktikum I Lab 3: DNS

Domain Name System DNS

DNS Domain Name System

IPv6 support in the DNS

Teldat Router. DNS Client

- Domain Name System -

Domain Name Server. Training Division National Informatics Centre New Delhi

CS640: Computer Networks. Naming /ETC/HOSTS

Applications & Application-Layer Protocols: The Domain Name System and Peerto-Peer

Agenda. Network Services. Domain Names. Domain Name. Domain Names Domain Name System Internationalized Domain Names. Domain Names & DNS

Configuring the BIND name server (named) Configuring the BIND resolver Constructing the name server database files

Introduction to DNS CHAPTER 5. In This Chapter

Introduction to DNS and Application Issues related to DNS. Kirk Farquhar

Domain Name System (DNS) Reading: Section in Chapter 9

Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 34 DNS & Directory

Introduction BIND. The DNS Protocol. History (1) DNS. History (2) Agenda

what s in a name? taking a deeper look at the domain name system mike boylan penn state mac admins conference

NET0183 Networks and Communications

1 DNS Packet Structure

Introduction to the Domain Name System

netkit lab dns Università degli Studi Roma Tre Dipartimento di Informatica e Automazione Computer Networks Research Group Version Author(s)

Understanding DNS (the Domain Name System)

Services: DNS domain name system

Domain Name Servers. Domain Types WWW host names. Internet Names. COMP476 Networked Computer Systems. Domain Name Servers

DNS. The Root Name Servers. DNS Hierarchy. Computer System Security and Management SMD139. Root name server. .se name server. .

DNS Resolving using nslookup

Local DNS Attack Lab. 1 Lab Overview. 2 Lab Environment. SEED Labs Local DNS Attack Lab 1

Domain Name System Richard T. B. Ma

3. The Domain Name Service

Domain Name System (DNS)

How-to: DNS Enumeration

Chapter 23 The Domain Name System (DNS)

The Domain Name System: An Integral Part of the Internet. By Keiko Ishioka

DNS at NLnet Labs. Matthijs Mekking

DNS. Spring 2016 CS 438 Staff 1

Deploying & Configuring a DNS Server on OpenServer 6 or UnixWare 7. Kirk Farquhar

DNS. Some advanced topics. Karst Koymans. (with Niels Sijm) Informatics Institute University of Amsterdam. (version 2.6, 2013/09/19 10:55:30)

The Domain Name System

How To Map Between Ip Address And Name On A Domain Name System (Dns)

Chapter 24 The Domain Name System (DNS)

Chapter 9: Name Services. 9.1 Introduction 9.2 Name services and the DNS 9.3 Directory services 9.6 Summary

Naming and the DNS. Focus. How do we name hosts etc.? Application Presentation Topics. Session Domain Name System (DNS) /URLs

IPv6 Support in the DNS. Workshop Name Workshop Location, Date

DNS Conformance Test Specification For Client

Motivation. Users can t remember IP addresses. Implemented by library functions & servers. - Need to map symbolic names (

DNS: Domain Name System

Domain Name System. Overview. Domain Name System. Domain Name System

DNS & IPv6. Agenda 4/14/2009. MENOG4, 8-9 April Raed Al-Fayez SaudiNIC CITC rfayez@citc.gov.sa, DNS & IPv6.

Domain Name System (or Service) (DNS) Computer Networks Term B10

CS 43: Computer Networks Naming and DNS. Kevin Webb Swarthmore College September 17, 2015

DNS and BIND. David White

Naming. Name Service. Why Name Services? Mappings. and related concepts

Application-layer Protocols

Configuring DNS. Finding Feature Information

Introduction to Network Operating Systems

Chapter 7 Implementing Domain Name System (DNS)

Part 5 DNS Security. SAST01 An Introduction to Information Security Martin Hell Department of Electrical and Information Technology

Names vs. Addresses. Flat vs. Hierarchical Space. Domain Name System (DNS) Computer Networks. Lecture 5: Domain Name System

HTG XROADS NETWORKS. Network Appliance How To Guide: EdgeDNS. How To Guide

Domain Name System :49:44 UTC Citrix Systems, Inc. All rights reserved. Terms of Use Trademarks Privacy Statement

Understand Names Resolution

DNS: Domain Name System

Networking Domain Name System

Computer Networks: Domain Name System

Networking Domain Name System

Names & Addresses. Names & Addresses. Names vs. Addresses. Identity. Names vs. Addresses. CS 194: Distributed Systems: Naming

The Application Layer: DNS

Transcription:

DNS - Domain Name System TCP/IP class 1

outline introduction naming scheme protocol format record types how it works reverse lookup implementation - named config files summary - futures 2

bibliography RFCs 1034 - Internet Domain Naming Philosophy (87) 1035 - Protocol standard (87) updated in 1101/1183 in 1990 Evi Nemeth s Unix Sys. Admin Handbook Sun Network Documentation BSD Bind docs Steven s TCP/Proto book gives good protocol explanation 3

Some DNS urls of interest ICANN - Inet Corporation for Assigned Names and Numbers - www.icann.org DNS administration see the FAQ for recent info http://www.internic/net/regist.html accredited list of registrars for.com/.net/.org http://www.isc.org/products/bind where to get DNS BSD Bind software 4

intro DNS - Domain Name System distributed database: (key, value) pairs include: 1. map DNS names to ip number (ADDRESS)» sirius.cs.pdx.edu to 131.1.2.3» connect(2) wants an ip number, so does sendto(2) 2. map ip number to DNS name (PTR) 3. mail routing, (MX)» mail cat@cs.pdx.edu -> sirius.cs.pdx.edu 4. aliases (CNAME)» www.cs.pdx.edu is actually sirius.cs.pdx.edu 5

intro done with distributed client/server implementation system is hierarchical and very scalable Internet-wide service, possibly the largest nameserver paradigm on the block DNS is of course both a protocol specification and an implementation BSD BIND/named implementation (4.9?) 6

intro - why? computers use ip numbers, people want names, 1.2.3.4 not as good as foo.com all computers can t be named fluffy so we need a hierarchical naming system to avoid host name conflicts origin rooted in /etc/hosts file which has ip address to name mapping, but obviousally doesn t scale to Internet-wide 7

3 schemes for name lookup 1. put it in /etc/hosts and distribute that periodically (rdist/cron/rcp, whatever) 2. Sun s NIS (Network Info. System) 1. not supported on all hosts 2. can t go outside your admin. domain» (Tek could do it, but can t manage it with Intel) 3. can do more than DNS, passwd, groups too 3. DNS 8

Berkeley Internet Name Domain parts include: named - a name server, takes files as database including a list of names/ip pairs, DNS roots, master configuration file resolver - client side library code for making DNS lookup, linked to apps like telnet, etc., inside gethostbyname(3), gethostbyaddr(3) calls debug tools: nslookup, dig (elsewhere) 9

intro - protocol DNS basically send/recv style message protocol. Here s the question, what s the answer? uses UDP for query/response may switch to TCP if response too big uses TCP to xfer database between primary and secondary domain servers (zone transfer) 10

DNS naming scheme problems to overcome... arpanet /etc/hosts file grew too big 30000+ hosts named venus UUCP gave us human-names mixed with route, we don t want the route in the name a!b!c!d from a to d... we need hierarchical names with distributed control of naming authority 11

sample name sirius.cs.pdx.edu. from right to left (top to bottom), right is general, left is specific root is on right (1st dot) namespace is a tree of domains, root domain, edu, pdx, cs, etc 12

names DNS labels acc. to RFC 1032 should be short (12 chars max), but 64 is actually allowed names are case-insensitive can be relative; e.g., sirius, but smart resolver code has to append local domainname correctly edu is TOP level domain pdx is 2nd-level. Apply to NIC registration service (http://rs.internic.net) for 2nd-level they must guarantee uniqueness 13

names internic manages root and 2nd-level local admins manage 3rd-level (or more) and can distribute that management locally if size warrants the rest of the world is NOT involved in how we manage our DNS names internally 14

names domain name - tree is made up of hierarchy of domains, each node is a domain and we go from right to left edu, pdx.edu, cs.pdx.edu, labels are unique only within a domain absolute domain name has root dot and is called FQDN - Fully Qualified Domain Name if relative, name must be completed somehow 15

names zone: namespace is partitioned into zones, zones are a set of names managed by 1 server, server will have > 1 zone to manage typically DNS server must have partner server elsewhere for redundancy, manages its zone and somebody else s too 16

DNS supports > 1 name hierarchy organizational reverse lookup country Liberian freighter registry? (not yet...) 17

DNS organization hierarchy root (.) com edu gov int mil net org pdx cs ee opb opb.org sirius.cs.pdx.edu sirius walt walt.ee.pdx.edu

organizational domains mostly but not all U.S. com - commercial edu - educational gov - U.S. goverment int - international organizations mil - U.S. military net - networks org - other organizations 19

recent proposal - new domains.arts - entertainment/cultural.firm - firms or businesses.info - information providers.nom - personal names.rec - entertainment/recreation entities.store - bus offering goods for purchase.web - WWW related entities 20

or alternative registries even name.space AlterNIC.exp,.ltd,.lnx,.med,.nic, and.xxx 21

Acc. To ICANN, recent new TLDs (wotsa TLD?).aero, air transport industry.biz.coop, cooperatives.info.museum.name, individual humans.pro - lawyers, Drs, accountants 22

DNS pointer query hierarchy arpa root (.) in-addr 1 2 3 4 4.3.2.1.in-addr.arpa, note for ip = 1.2.3.4

DNS country domains root (.) uk us nl su ch jp zw va reston helvetica... countries may have 2nd-level domains; e.g.,.co.uk for commercial UK cnri.reston.va.us cnri

DNS record types adding a record types isn t easy name has type, client must ask for it by type Basic = ADDRESS, PTR, MX Zone=SOA (start of authority), NS (name server, server for a zone) optional = CNAME (alias), HINFO (host info), RP (responsible person), WKS (deprecated, but well known services), TXT (text) 25

record types you can start to see that a query = (name, type); (sirius.cs.pdx.edu.,a) a name may map to more than one item, e.g., sirius.cs.pdx.edu, type A, might have 1-n ip addresses associated with it 26

protocol header typically UDP request, reply request/reply format request = fixed header + question section reply = fixed header + query + answer sections question = (name, type, class = IP) with name in compressed format reply = set of Resource Records (RR) 27

DNS query/response format fixed identification flags header # questions # answers + query + reply...... # authorities # extra A RRs 1 or more questions 1 or more answers (RRs) authorities (NS RRs) A records for NS records 6 2-byte fields = 12 in all variable length node: id field used by client to match responses 28

header - flags field QR opcode AA TC RD RA (zero) return code 1 4 1 1 1 1 3 4 = 16 bits QR - 0 if query, 1 if response opcode - 0, standard query; 1, inverse; 2, server status request AA - authoritative answer. Answer is from NS that maintains zone TC - truncated. Using UDP, and answer was > 512 bytes RD - recursion desired. If not set then iterative, NS may return list of other NS servers to try. RA - recursion available. Set if server supports recursion rcode - error codes, 0 means no error. Only set if name invalid. 29

question portion query part logically (name, type, class) class is IP type is A, NS, PTR, CNAME, MX, etc. name is encoded and variable length with a count (size) for each label in the name typically 1 question (and no answers yet...) 30

Resource Record format domain name type (A, etc.) class (IP) variable length time-to-live resource length resource data... variable length 31

RR format domain name - same format as in query TTL - in seconds, value often 86400, 1 day resource data, the answer, for example if the query was foo.com, the answer might be 192.12.1.2 32

theory of operation/server-side person responsible for zone supplies 1 or more name servers primary name server and 1 or more secondary servers elsewhere necessary hope is to avoid single point of failure admin must change zone file and notify name server to reload (signal to named on UNIX) currently sans security, can t change zone info dynamically, must be manual 33

operation - root servers name server must contact other name servers for non-local info need IP address to contact... hmm... each name server has list of root servers, need IP addresses for them root servers know 2nd-level servers, refer name servers to them see how to get list of root names later 34

operation port 53 used for queries/answers may use UDP/TCP if answer too big TCP used for zone transfer between primary and secondary servers 35

how it works % telnet local.machine.com DNS is invoked to do name mapping to get IP address. (arp before udp before tcp...) client resolver code must have addresses for local name servers to prime the pump on UNIX, /etc/resolv.conf gethostbyname(3) calls resolver code which uses info in resolv.conf file 36

/etc/resolv.conf # domain cs.pdx.edu # search cs.pdx.edu. ee.pdx.edu. # nameserver 131.252.20.183 nameserver 131.252.20.2 nameserver 128.95.120.1 37

operation - types of name resolution 2 ways to resolve a name used in DNS iterative - contact name servers one at a time. You ask a root server and it gives you a list of contacts (NS + A records) recursive - ask a name server to do the whole job resolvers are assumed to be simple and do things recursively root servers are busy and are iterative 38

when server gets query checks to see if name lies in its zones if so translates name to A and returns RRs if not, acc. to howto code if recursive contacts other servers (root/2ndary) until it gets A, and returns it else iterative (e.g., root server) returns NS with A records 39

1 query - how many answers? if you ask for sirius.cs.pdx.edu, you get two A records (last time I checked) multi-homed host > 1 address record by definition 40

local lookup: send request to local server server returns authoritative response 41

remote lookup ask local NS (recursive) local NS may return cached hit. This is called a non-authoritative answer may ask root server in iterative fashion, get list of secondary servers ask secondary server, cache result return result to client 42

remote lookup picture 2. iterative root 3 client 1. Recursive local NS 4 remote NS 6 5 43

caching we don t want to work down the tree every time as root servers have a heavy load server data from remote systems thus kept locally with timeout (1 day typical) without timeout we would have remote systems with DNS, ip mapping where ip address might change cached data is non-authoritative 44

reverse address lookup is Alex Trebec involved with the DNS? pose an answer (IP address), get a question (DNS name)... gethostbyaddr(3), ip in, DNS out make a pointer query (PTR) special tree using in-addr.arpa domain class A, B, C net part at top, host at bottom 45

reverse address lookup if we didn t have tree organized by address, how would we do it? search through from domain roots? (take a lifetime...) gethostbyaddr(3) often used as weak security check, get DNS domain part and make sure it is in xyzzy domain (foo.com) gethostbyaddr(3) may automatically check that returned ip matches name by internal gethostbyname(3) call 46

DNS pointer query hierarchy arpa root (.) in-addr 1 2 3 4 4.3.2.1.in-addr.arpa, note for ip = 1.2.3.4

nslookup - debug utility it s a shell, help and exit are commands from the command-line % nslookup foo.com 1.2.3.4 <----- you (may) get an answer basically a resolver (client-side) for testing to do reverse-pointer lookup -> set type=ptr -> 1.254.138.128.in-addr.arpa. yes, you have to reverse the address to put it in normal form, above is for 128.138.254.1 48

named - config /usr/somewhere/in.named - BSD named DNS server, started as server at boot /etc/named.boot - named configuration file not inetd based, start after syslog roughly: /usr/etc/in.named -r /etc/named.boot named.boot tells named where to find database files 49

named files besides named.boot /somewhere/named/named.ca (name may be different) - cache of root servers as RR records hosts - primary RR (A records, MX, CNAME, etc), one or more reverse pointer - PTR query records, one or more 50

named.boot - sample ; named.boot ; pdx-domain ; directory means where the db files hang out directory /usr/local/lib/named ; root cache cache named.ca ; what kind of server/domain name/filename primary 0.0.127.in-addr.arpa localhost primary cs.pdx.edu zone.pdx.cs primary 20.252.131.in-addr.arpa revp.131.252.20 primary 21.252.131.in-addr.arpa revp.131.252.21 51

more details on boot file primary keyword indicates this named is primary server for zone info in that file secondary keyword says that host is secondary nameserver, need ip address + cache file name single name server can support more than one zone may have caching only server, no data files forwarders, can point interior NS at one NS that will cache all external queries xfrnets - can restrict who can do zone tranfer 52

root cache get one from ftp://rs.internic.net/domain/named.cache need to prime the pump, 9 currently dot in NS record is for domain field and means root domain can use nslookup to check given 1 root server -> server = a.root-servers.net. -> set type=ns ->. 53

root cache example (don t use) ; /domain/named.root ;. 3600000 IN NS a.root-servers.net. a.root-servers.net. 3600000 A 198.41.0.4 ;. 3600000 IN NS b.root-servers.net. b.root-servers.net. 3600000 A 128.9.0.107 ; etc... through i.root-servers.net. 54

RR - SOA SOA - source of authority and start of zone db ; start of authority ; @ - current zone symbol @ IN SOA foo.com. joebob@foo.com. ( 1001; serial #, increment when change zone ; used to make zone xfer happen 21600; 6 hours, time to zone xfer 1800; 30 minutes, 2nd retry if primary missing 1209600; expire, 2 weeks for 2nd if no 1st 432000 ); minimum, 5 days, ttl on RRs 55

RR - NS NS - name server record. Assume foo.com ; ns, name servers for this domain, all primarys and ; secondaries foo.com. IN NS a.foo.com. foo.com. IN NS z.somethingelse.com. ; ns records for the current domain are not necessary ; needed however in parent for subdomains ; don t forget the A records for the NS records admin IN NS a.admin.foo.com. marketing IN NS z.mrkt.foo.com. 56

RR - A and other records Address records are heart of DNS ; the data part localhost IN A 127.0.0.1 foobar IN A 192.0.0.1 snarp IN A 192.0.0.2 flozzle IN A 192.0.0.3 www IN CNAME foobar.foo.com. foo.com IN MX foobar.foo.com. multi IN A 192.0.0.4 IN A 192.0.0.5 57

update of zone files change the serial # in the SOA record add the A records or whatever kill -HUP signal to named secondary won t change until refresh time passed, will check serial # first, cache current data in data file zone xfer done with TCP, port 53 58

DNS futures types are attribute OF the name, not in the name not easy to change types since you must change code everywhere, but it happens e.g., there are ISDN/X.25 record types would like DNS to be dynamic but 1st DNS needs a secure protocol 59

DNSSEC IETF working group add security to DNS dynamic DNS updates KEY/SIG records using RSA public keys zone authority may sign all DNS records new USER record as well hence can authenticate user@dns 60