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



Similar documents
Distributed Systems. 22. Naming Paul Krzyzanowski. Rutgers University. Fall 2013

Internet Technology. 03. Application layer protocols. Paul Krzyzanowski. Rutgers University. Spring 2016

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

Domain Name System. CS 571 Fall , Kenneth L. Calvert University of Kentucky, USA All rights reserved

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

DNS Domain Name System

Domain Name System WWW. Application Layer. Mahalingam Ramkumar Mississippi State University, MS. September 15, 2014.

DNS : Domain Name System

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

Domain Name System DNS

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

The Domain Name System

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

The Domain Name System (DNS)

Domain Name System Richard T. B. Ma

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

DNS Basics. DNS Basics

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

3. The Domain Name Service

DNS Domain Name System

The Application Layer: DNS

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

Computer Networks: Domain Name System

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

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

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

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

CS3600 SYSTEMS AND NETWORKS

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

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

Chapter 23 The Domain Name System (DNS)

THE DOMAIN NAME SYSTEM DNS

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

CS3250 Distributed Systems

DNS: Domain Name System

Chapter 2 Application Layer

The Use of DNS Resource Records

Introduction to Network Operating Systems

Internetworking with TCP/IP Unit 10. Domain Name System

Domain Name System (DNS)

NET0183 Networks and Communications

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

DNS Root NameServers

Understanding DNS (the Domain Name System)

Domain Name System (DNS) RFC 1034 RFC

Application-layer protocols

How to set up the Integrated DNS Server for Inbound Load Balancing

The Domain Name System (DNS)

- Domain Name System -

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

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

DNS. Spring 2016 CS 438 Staff 1

DNS and BIND. David White

IPv6 support in the DNS

Networking Domain Name System

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

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

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

Glossary of Technical Terms Related to IPv6

Internet-Praktikum I Lab 3: DNS

DNS - Domain Name System

Chapter 25 Domain Name System Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

INTERNET DOMAIN NAME SYSTEM

DNS Protocol and Attacks

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

Outline. Definition. Name spaces Name resolution Example: The Domain Name System Example: X.500, LDAP. Names, Identifiers and Addresses

Basic DNS Course. Module 1. DNS Theory. Ron Aitchison ZYTRAX, Inc. Page 1 of 24

The Domain Name System

The secret life of a DNS query. Igor Sviridov <sia@nest.org>

ECE 4321 Computer Networks. Network Programming

APNIC IPv6 Deployment

Domain Name Server. Training Division National Informatics Centre New Delhi

web hosting and domain names

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

Application Protocols in the TCP/IP Reference Model

Domain Name Service (DNS) Training Division, NIC New Delhi

OpenSRS Service DNS Configuration Guide

1 Introduction: Network Applications

Distributed Systems. Naming

Automated domain name registration: DNS background information

DNS: Domain Name System

The Internet Ecosystem and ICANN!! Steve Stanford University, Center for Information and Society! 29 April 2013!

The IANA Functions. An Introduction to the Internet Assigned Numbers Authority (IANA) Functions

The Domain Name Service, Etc. Jeff Chase Duke University, Department of Computer Science CPS 212: Distributed Information Systems

The Domain Name System

OVERVIEW OF THE DNS AND GLOSSARY OF TERMS

Forouzan: Chapter 17. Domain Name System (DNS)

Domain Name System (DNS) Fundamentals

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

Internet Structure and Organization

THE MASTER LIST OF DNS TERMINOLOGY. v 2.0

OVERVIEW OF THE DNS AND GLOSSARY OF TERMS

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

Understand Names Resolution

DNS and DHCP. 14 October 2008 University of Reading

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

DNS. Computer Networks. Seminar 12

Configuring DNS. Finding Feature Information

How To Guide Edge Network Appliance How To Guide:

DATA COMMUNICATOIN NETWORKING

Transcription:

Distributed Systems 09. Naming Paul Krzyzanowski Rutgers University Fall 2015 October 7, 2015 2014-2015 Paul Krzyzanowski 1

Naming things Naming: map names to objects Helps with using, sharing, and communicating information Examples User names: used for system login, email, chat Machine names: used for ssh, email, web Files Devices Objects, functions, variables in programs Network services October 7, 2015 2014-2015 Paul Krzyzanowski 2

What s a name? Name: identifies what you want Address: identifies where it is Route: identifies how to get there Binding: the association of a name with the object choose a lower-level-implementation for a higher-level semantic construct RFC 1498: Inter-network Naming, addresses, routing October 7, 2015 2014-2015 Paul Krzyzanowski 3

Pure & Impure Names Pure names identify The name contains no information aside from the name It does not identify where the object can be found Examples: c8:2a:14:3f:92:d1 my computer s ethernet MAC address paul.krzyzanowski my facebook name 908-555-3836 phone # (this used to be an impure name) October 7, 2015 2014-2015 Paul Krzyzanowski 4

Pure & Impure Names Impure names guide The name contains context information Object is generally unmovable Examples: p@pk.org, pxk@cs.rutgers.edu User names in different Internet domains: same person or not? Context (domain name) is encoded into the name /home/paul/bin/qsync File pathname changes if we move the object October 7, 2015 2014-2015 Paul Krzyzanowski 5

Uniqueness of names Easy on a small scale problematic on a large scale It can be difficult to make globally unique names Uniqueness for pure names Designate a bit pattern or naming prefix that does not convey information Ethernet MAC address: 3 bytes: organization, 3 bytes: controller IP address: network & host (variable partition) Uniqueness for impure names Use a hierarchy Globally unique components (pure names) Compound name: iterative list of pure names connected with separators Domain name (www.cs.rutgers.edu) URLs (http://pk.org/417/lectures/l-naming.html) File pathnames (/usr/share/dict/words) October 7, 2015 2014-2015 Paul Krzyzanowski 6

Terms: Naming convention = syntax Naming system determines syntax for names Naming convention can take any format Ideally one that will suit the application and user E.g., human readable names for humans, binary identifiers for machines UNIX file names: Parse components from left to right separated by / /home/paul/src/gps/gui.c Internet domain names: Ordered right to left and delimited by. www.cs.rutgers.edu LDAP names Attribute/value pairs ordered right to left, delimited by, cn=paul Krzyzanowski, o=rutgers, c=us October 7, 2015 2014-2015 Paul Krzyzanowski 7

Terms: Context A particular set of name object bindings Names are unique within the context E.g., /etc/postfix/main.cf on a specific computer Each context has an associated naming convention A name is always interpreted relative to some context E.g., directory /usr in a Linux file system on crapper.pk.org October 7, 2015 2014-2015 Paul Krzyzanowski 8

Terms: Naming System Connected set of contexts of the same type (same naming convention) along with a common set of operations For example: System that implements DNS (Internet domain names) System that implements LDAP (directory of people) October 7, 2015 2014-2015 Paul Krzyzanowski 9

Terms: Namespace = set of names A container for a set of names in the naming system A namespace has a scope scope = region where the name exists & refers to the object For example, Names of all files in a directory All domain names within rutgers.edu E.g., Java package, local variables A namespace may be tree structured (hierarchical) Fully-qualified or hierarchical names may be used to identify names outside the local namespace Global namespace = root of the tree October 7, 2015 2014-2015 Paul Krzyzanowski 10

Terms: Resolution Resolution = name lookup Return the underlying representation of the name Look up the binding of the name to its object For example, www.rutgers.edu 128.6.4.5 Iterative resolution Example: parse a pathname Recursive resolution Example: parse a distribution list: each entity may be expanded October 7, 2015 2014-2015 Paul Krzyzanowski 11

When do should you do a resolution? Static binding Hard-coded Early binding Look up binding before use Cache previously used binding These can cause problems! Late binding Look up just before use October 7, 2015 2014-2015 Paul Krzyzanowski 12

Name Service The service that performs name resolution Allows you to resolve names Looking up a name gives the corresponding address as a response Can be implemented as Search through file Database query Client-server program (name server) may be distributed October 7, 2015 2014-2015 Paul Krzyzanowski 13

Name Service The service that performs name resolution Allows you to resolve names Looking up a name gives the corresponding address as a response Can be implemented as Search through file Database query Client-server program (name server) may be distributed October 7, 2015 2014-2015 Paul Krzyzanowski 14

Directory Service Extension of name service: Associates names with objects Allows objects to have attributes Can search based on attributes For example, LDAP (Lightweight Directory Access Protocol) Directory can be an object store: E.g., look up printer object and send data stream to it October 7, 2015 2014-2015 Paul Krzyzanowski 15

IP Domain Names Human readable names e.g., www.cs.rutgers.edu Hierarchical naming scheme Top of hierarchy on the right No relation to IP address or network class October 7, 2015 2014-2015 Paul Krzyzanowski 16

Case Study: Internet Domain Name System (DNS) October 7, 2015 2014-2015 Paul Krzyzanowski 17

How are IP addresses assigned? IP addresses are distributed hierarchically Internet Assigned Numbers Authority (IANA) at the top IANA is currently run by ICANN Internet Corporation for Assigned Names and Numbers IANA Regional Internet Registries (RIR) AfriNIC APNIC ARIN LACNIC RIPE NCC Allocate blocks of addresses to ISPs RIR Map ISP ISP ISP ISP ISP ISP ISP ISP Your computer (or Internet gateway) - Permanent (static) or temporary (dynamic) October 7, 2015 2014-2015 Paul Krzyzanowski 18

How are machine names assigned? Early ARPANET Globally unique names per machine (e.g., UCBVAX) Kept track at the Network Information Center (NIC) at the Stanford Research Institute (SRI) That doesn t scale! A domain hierarchy was created in 1984 (RFC 920) Domains are administrative entities: divide name management Tree-structured global name space Textual representation of domain names www.cs.rutgers.edu October 7, 2015 2014-2015 Paul Krzyzanowski 19

Domain Name Hierarchy Root com edu gov info net org ac ae nl us zw rutgers generic TLDs country-code TLDs cs nb www October 7, 2015 2014-2015 Paul Krzyzanowski 20

Top Level Domains (TLDs) cctld Country-code domains ISO 3166 codes e.g.,.us,.de,.ca,.es IDN cctld Internationalized country-code domains e.g.,,السعودية.. 中 國,.рф gtld Generic top-level domains e.g.,.biz,.com,.edu,.gov,.info,.net,.org,.audio,.catering,. 网 络 There are currently 1,097 top-level domains Each top-level domain has an administrator assigned to it Assignment is delegated to various organizations by the Internet Assigned Numbers Authority (IANA) IANA keeps track of the root servers See http://www.iana.org/domains/root/db for the latest count October 7, 2015 2014-2015 Paul Krzyzanowski 21

Shared registration Domain name registry: this is the database Keeps track of all domain names registered under a top-level domain Domain name registry operator: this is the company that runs the db NIC = Network Information Center organization that keeps track of the registration of domain names under a top-level domain See https://www.icann.org/resources/pages/listing-2012-02-25-en Keeps the database of domain names Domain name registrar: this is the company you use to register Company that lets you register a domain name Registars update the registry database at the NIC October 7, 2015 2014-2015 Paul Krzyzanowski 22

The problem Every device connected to the internet has a unique Internet Protocol (IP) address How do you resolve user-friendly machine names to IP addresses? www.cs.rutgers.edu 128.6.4.24 October 7, 2015 2014-2015 Paul Krzyzanowski 24

Original solution Through the 1980s Search /etc/hosts file for machine name (see RFC 606) File periodically downloaded from Network Information Center (NIC) at the Stanford Research Institute (SRI) This was not sustainable with millions of hosts on the Internet A lot of data A lot of churn in the data new hosts added, deleted, addresses changed Maintenance Traffic volume Solution doesn t scale! October 7, 2015 2014-2015 Paul Krzyzanowski 25

DNS: Domain Name System Distributed database: a hierarchy of name servers DNS is an application-layer protocol Name-address resolution is handled at the edge The network core is unaware of host names and does not care There is no special relationship between names and addresses Example: cs.poopybrain.com can resolve to cs.rutgers.edu cs.poopybrain.com cs.rutgers.edu October 7, 2015 2014-2015 Paul Krzyzanowski 26

DNS provides Name to IP address translation Aliasing of names (called canonical names) Identification of name servers Mail server names Load distribution: Multiple name servers may handle a query for a domain Caching store past look-ups Ability to provide a set of IP addresses for a name October 7, 2015 2014-2015 Paul Krzyzanowski 27

DNS is a distributed, hierarchical database Root DNS Servers com DNS Servers edu DNS Servers org DNS Servers google.com DNS Servers rutgers.edu DNS Servers columbia.edu DNS Servers pk.org DNS Servers A collection of DNS servers October 7, 2015 2014-2015 Paul Krzyzanowski 28

Authoritative DNS server An authoritative name server is responsible for answering queries about its zone Provides real answers vs. cached answers Configured by the administrator Zone = group of machines under a node in the tree E.g., rutgers.edu October 7, 2015 2014-2015 Paul Krzyzanowski 29

A DNS server returns answers to queries Key data that a DNS server maintains (partial list) Information Abbreviation Description Host A Host address (name to address) Includes name, IP address, time-to-live (TTL) Canonical name CNAME Name for an alias Mail exchanger MX Host that handles email for the domain Name server NS Identifies the name server for the zone: tell other servers that yours is the authority for info within the domain Start of Zone Authority SOA Specifies authoritative server for the zone. Identifies the zone, time-to-live, and primary name server for the zone October 7, 2015 2014-2015 Paul Krzyzanowski 30

Finding your way How do you find the DNS Server for rutgers.edu? That s what the domain registry keeps track of When you register a domain, You supply the addresses of at least two DNS servers that can answer queries for your zone You give this to the domain registrar, who updates the database at the domain registry So how do you find the right DNS server? Start at the root October 7, 2015 2014-2015 Paul Krzyzanowski 31

Root name servers The root name server answers can return a list of authoritative name servers for top-level domains 13 root name server addresses 386 servers A.ROOT-SERVERS.NET, B.ROOT-SERVERS.NET, Each has redundancy (via anycast routing or load balancing) Each server is a set of machines Download the latest list at http://www.internic.net/domain/named.root October 7, 2015 2014-2015 Paul Krzyzanowski 32

Name Resolution Approaches Iterative (non-recursive) name resolution Send query to root name server Send query to edu name server Send query to rutgers name server Advantage: stateless Recursive name resolution (true recursion DNS does not do this) Send query to root name server Root name server sends query to edu name server Edu name server sends query to rutgers name server Advantage: increased caching opportunities, reduced communication For DNS Servers Recursive means that a name server will take on the responsibility of fully resolving the name, even if it s through an iterative process A DNS server does not need to support recursion October 7, 2015 2014-2015 Paul Krzyzanowski 33

DNS Resolvers: local name server DNS Resolver = client side of DNS Not really a part of the DNS hierarchy Acts as an intermediary between programs that need to resolve names and the name servers A resolver is responsible for performing the full resolution of the query Where are resolvers? Each local system has one: that s what applications contact Local cache; may be a process or a library On Linux & Windows, these are limited DNS servers (called stub resolvers) Usually not capable of handling referrals and expect to talk with a name server that can handle recursion (full resolution) ISPs (and organizations) run them on behalf of their customers Including a bunch of free ones (OpenDNS, Google Public DNS) Resolvers cache past lookups they are not responsible for zones October 7, 2015 2014-2015 Paul Krzyzanowski 34

DNS Resolvers in action Local server ISP app DNS stub resolver DNS resolver Interative lookup app cache cache DNS hierarchy /etc/hosts zone info Local stub resolver: - check local cache - check local hosts file - send request to external resolver External resolver - DNS server that accepts recursion - Running at ISP, Google Public DNS, OpenDNS, etc. E.g., on Linux: resolver is configured via the /etc/resolv.conf file October 7, 2015 2014-2015 Paul Krzyzanowski 36

Sample query Rutgers registered rutgers.edu with the.edu domain educause.net is the domain registry for the.edu gtld Registration includes defining the name servers for.rutgers.edu ns124.a2.incapsecuredns.net: 192.230.123.124 ns8.a1.incapsecuredns.net: 192.230.122.8 ns87.a0.incapsecuredns.net: 192.230.121.87 EDUCAUSE registered its name servers with root name servers ns1.twtelecom.net ns1.educause.edu ns1.twtelecom.net We know how to get to root name servers Download http://www.internic.net/domain/named.root October 7, 2015 2014-2015 Paul Krzyzanowski 37

Sample Query Submit query to a local DNS resolver: 1. query(www.cs.rutgers.edu) any root name server send query to j.root-servers.net: 192.58.128.30 2. referral to list of edu name servers returns list of DNS servers for.edu: c.edu-servers.net: 192.26.92.30 3. query(www.cs.rutgers.edu) edu name server send query to 192.26.92.30 4. referral to rutgers.edu name servers: returns list of DNS servers for.edu: ns124.a2.incapsecuredns.net 192.230.123.124 ns8.a1.incapsecuredns.net 192.230.122.8 ns87.a0.incapsecuredns.net 192.230.121.87 5. query(www.cs.rutgers.edu) rutgers name server send query to 192.230.122.8 6. The rutgers name server returns authoritative response CNAME: www3.srv.lcsr.rutgers.edu alias A record for www3.srv.lcsr.rutgers.edu: 128.6.4.24 address October 7, 2015 2014-2015 Paul Krzyzanowski 38

Caching Starting every query at the root would place a huge load on root name servers A name server can cache results of previous queries Save query results for a time-to-live amount of time The time-to-live value is specified in the domain name record by an authoritative name server October 7, 2015 2014-2015 Paul Krzyzanowski 39

The End October 7, 2015 2014-2015 Paul Krzyzanowski 40