Naming. To do. q What s in a name q Flat naming q Structured naming q Attribute-based naming q Next: Content distribution networks

Similar documents
CSE 5306 Distributed Systems. Naming

CSE 5306 Distributed Systems

Naming in Distributed Systems

Naming and Content Distribution

The Design and Implementation of a Next Generation Name Service for the Internet (CoDoNS) Presented By: Kamalakar Kambhatla

殷亚凤. Naming. Distributed Systems [5]

Parallelism. Master 1 International. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique

Venugopal Ramasubramanian Emin Gün Sirer SIGCOMM 04

Lecture 4 Naming. Prof. Wilson Rivera. University of Puerto Rico at Mayaguez Electrical and Computer Engineering Department

Chapter 5 Naming (2)

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Naming WHAT IS NAMING? Name: Entity: Slide 3. Slide 1. Address: Identifier:

Distributed Naming. EECS 591 Farnam Jahanian University of Michigan. Reading List

New Topic: Naming. Differences in naming in distributed and non-distributed systems. How to name mobile entities?

Naming. Naming entities

Today: Naming. Example: File Names

Computing Parable. New Topic: Naming

Systèmes Distribués. Master MIAGE 1. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique

Naming. Chapter 4. Naming (1) Name resolution allows a process to access a named entity. A naming system is necessary.

Networking Applications

New Topic: Naming. Approaches

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 5 Naming

Chapter 5 Naming (2)

A DNS Tutorial

ECE 650 Systems Programming & Engineering. Spring 2018

Overview General network terminology. Chapter 9.1: DNS

Development of the Domain Name System

Distributed System: Definition

Chapter 3: Naming Page 38. Clients in most cases find the Jini lookup services in their scope by IP

UNIT III. cache/replicas maintenance Main memory No No No 1 RAM File system n No Yes No 1 UNIX file system Distributed file

Naming. Distributed Systems IT332

Protocol Classification

9.1 Introduction 9.2 Name services and the DNS 9.3 Discovery services 9.6 Summary

S Computer Networks - Spring What and why? Structure of DNS Management of Domain Names Name Service in Practice

CS519: Computer Networks. Lecture 6: Apr 5, 2004 Naming and DNS

DNS Basics BUPT/QMUL

Naming. Naming. Naming versus Locating Entities. Flat Name-to-Address in a LAN

Communications Software. CSE 123b. CSE 123b. Spring Lecture 11: Domain Name System (DNS) Stefan Savage. Some pictures courtesy David Wetherall

CSE 123b Communications Software. Overview for today. Names and Addresses. Goals for a naming system. Internet Hostnames

Linux Network Administration

DNS and HTTP. A High-Level Overview of how the Internet works

Distributed Operating Systems

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

The Application Layer: Sockets, DNS

DNS. Introduction To. everything you never wanted to know about IP directory services


Network Security Part 3 Domain Name System

CSC2231: DNS with DHTs

Manual Configuration Stateful Address Configuration (i.e. from servers) Stateless Autoconfiguration : IPv6

Computer Network 1 1

Domain Name Service. DNS Overview. October 2009 Computer Networking 1

12. Name & Address 최양희서울대학교컴퓨터공학부

Assignment 5. Georgia Koloniari

0 0& Basic Background. Now let s get into how things really work!

EECS 122: Introduction to Computer Networks DNS and WWW. Internet Names & Addresses

MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration. Chapter 5 Introduction to DNS in Windows Server 2008

DNS & Iodine. Christian Grothoff.

Domain Name System.

Application Layer Protocols

DNS/DNSSEC Workshop. In Collaboration with APNIC and HKIRC Hong Kong. Champika Wijayatunga Regional Security Engagement Manager Asia Pacific

DNS Concepts. Acknowledgements July 2005, Thimphu, Bhutan. In conjunction with SANOG VI. Bill Manning Ed Lewis Joe Abley Olaf M.

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSc 450/550 Computer Networks Domain Name System

DNS. DNS is an example of a large scale client-server application.

IP ADDRESSES, NAMING, AND DNS

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet Technology 3/2/2016

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Overview. Last Lecture. This Lecture. Next Lecture. Scheduled tasks and log management. DNS and BIND Reference: DNS and BIND, 4 th Edition, O Reilly

How to Configure DNS Zones

Networking and Internetworking 1

Lesson 9: Configuring DNS Records. MOAC : Administering Windows Server 2012

How to Add Domains and DNS Records

Outline Applications. Central Server Hierarchical Peer-to-peer. 31-Jan-02 Ubiquitous Computing 1

APNIC elearning: DNS Concepts

CptS 464/564 Lecture 18

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

Computer Networks. Domain Name System. Jianping Pan Spring /25/17 CSC361 1

Domain Name System (DNS) DNS Fundamentals. Computers use IP addresses. Why do we need names? hosts.txt does not scale. The old solution: HOSTS.

Higher layer protocols

ECE 435 Network Engineering Lecture 7

CSE561 Naming and DNS. David Wetherall

This time. Digging into. Networking. Protocols. Naming DNS & DHCP

Advanced Networking. Domain Name System

Advanced Networking. Domain Name System. Purpose of DNS servers. Purpose of DNS servers. Purpose of DNS servers

7. Naming and Directory Services. Distributed Systems Prof. Dr. Alexander Schill

Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License. Page 2. Page 3.

DNSSEC DNS SECURITY EXTENSIONS INTRODUCTION TO DNSSEC FOR SECURING DNS QUERIES AND INFORMATION

Domain Name System (DNS) Session-1: Fundamentals. Joe Abley AfNOG Workshop, AIS 2017, Nairobi

THE AUTHORITATIVE GUIDE TO DNS TERMINOLOGY

ICS 351: Today's plan. DNS WiFi

Root Servers. Root hints file come in many names (db.cache, named.root, named.cache, named.ca) See root-servers.org for more detail

How to Configure the DNS Server

DNS. dr. C. P. J. Koymans. September 16, Informatics Institute University of Amsterdam. dr. C. P. J. Koymans (UvA) DNS September 16, / 46

Chapter 4. Internet Applications

Introduction to Network. Topics

Goal of this session

DNS Security. * pers/dnssec/dnssec.html. IT352 Network Security Najwa AlGhamdi

Distributed Systems. Distributed Systems Within the Internet Nov. 9, 2011

Managing Caching DNS Server

CSE 565 Computer Security Fall 2018

Transcription:

Naming To do q What s in a name q Flat naming q Structured naming q Attribute-based naming q Next: Content distribution networks

What's in a name? That which we call a rose By any other name would smell as sweet. W. Shakespeare, Romeo and Juliet (II, ii, 1-2) Names are artificial conventions 2

Names, identifiers and addresses Names are used to denote entities in a system Hosts, printers, files, processes, users. To operate on an entity, e.g. print a file, we need to access it at an access point An entity can offer one or more access points (think phone #s) Access point Access point Access point Entity (Lisa) 3

Names, identifiers and addresses Access points are entities too An address is the name of an access point Address of an access point of an entity = address of an entity (telephone # - telephone - person) 742 Evergreen Terrace Springfield Location-independent name for entity E A name independent from the addresses of E s access points Easier and more flexible to use E can have multiple addresses and change them 4

Other names Pure names un-interpreted bit patterns Have no meaning, random strings (only good for comparison) No-pure names contain info about the object (e.g., location) (True) Identifiers names interpreted by programs Each identifier refers to at most one entity (no reusing) Each entity is referred to by at most one identifier E.g. phone is not, passport number maybe An identifier need not necessarily be a pure name, i.e., it may have content Alias a name defined to denote the same info as another name 5

Name services How do we resolve names and identifiers to addresses? Name service Stores a collection of textual names, as bindings between names and attributes A name is resolved when it is translated into data about the named object 6

Name services Name space Collection of all valid names recognized by a particular service Name the two principal name spaces in the Internet Binding Association between name and object In general, names are bound to data about an objects rather than the object itself; e.g., address Why is name management a separate service? Unification resources managed by different services using the same naming scheme Integration - resources created in different administrative domain may eventually be shared 7

Names in distributed systems Flat naming Names chosen from a flat set of numeric or symbolic ids Must be globally unique Structured naming Have an internal structure that represent their position in a hierarchic name space Unique only within immediately containing level Each level resolved within the context of the next higher one Attribute-based naming Maybe easier to look up entities by attributes {(attribute, value)} Entities have a collection of (attribute, value) pairs 8

Name resolution and flat names Given a unstructured name, how to locate its associated access point? Key point name has no information to locate the access point Simple solutions Broadcasting Forwarding pointers Home-based approaches Hierarchical location service Distributed Hash Tables 9

Broadcasting Broadcasting simply broadcast the ID, requesting the entity to return its current address Think Address Resolution Protocol (ARP) Can never scale beyond local-area networks Requires all processes to listen to incoming location requests Multicasting can help Join a multicast address and wait for your call Can (sort-of) help when selecting nearest replica What happens if the name is unbound? What happens if the entity can move? 10

Forwarding pointers Forwarding pointers each time an entity moves, it leaves behind a pointer telling where it has gone to Dereferencing can be made entirely transparent to clients by simply following the chain of pointers Update a client s reference as soon as present location has been found Geographical scalability problems Long chains are not fault tolerant need some chain reduction mechanism Increased network latency at dereferencing 11

Home-based approaches A home keeps track of an entity location (Mobile IP) An entity s home address is registered at a naming service The home registers the foreign address of the entity Clients contact home first, and continues with foreign location Host s home location 2. Return address of current location 1. Send packet to host at its home Client s location 3. Tunnel packet to current location 4. Send successive packets to current location Host s present location 12

Home-based approaches issues Home address has to be supported as long as the entity lives Home address is fixed, even if entity moves permanently Poor geographical scalability (entity may be next to the client) Host s home location 2. Return address of current location 3. Tunnel packet to current location 1. Send packet to host at its home Client s location 4. Send successive packets to current location Host s present location 13

Hierarchical location system Scalability through hierarchies Flat name space with hierarchical administration Network divided into a collection of domains and subdomains Each domain has an associated directory node Keeps track of entities in that domain The root directory node dir(t) M Top-level domain T Directory node dir(s) of domain S A subdomain S of top-level domain T (S is contained in T) D 1 D 2 A leaf domain, contained in S 14

Lookup and caching Tree organization Address of an entity kept in leaf node, or an intermediate node Intermediate nodes contain a pointer to a child iff the sub-tree rooted at the child stores an address of the entity The root knows about all entities Lookup Start lookup at the directory node of the local leaf node If node knows it, follow downward pointer, otherwise go one up Upward lookup stops at root M knows about E forwards request to child M Lookup request D 15

Back in 5 structured naming 16

Structured naming Flat names are good for machines but hard for humans Structured names Have an internal structure that represent their position in a hierarchic name space Unique only within immediately containing level Each level resolved within the context of the next higher one Advantages of hierarchies Makes large name spaces more manageable They are potentially infinite (rather than limited by the length/ base of the id space) 17

Name resolution On the client s behalf, a local name resolver To resolve a name we need a directory node; how do we actually find that (initial) node? Closure mechanism Closure mechanism deal with selecting the initial node in a name space from which to start Many times implicit, e.g., in the Unix FS the i-node of the root directory is the first i-node in the FS 18

Iterative name resolution Interactive client drives the resolution Caching by clients only (a second client s resolution of the same name has to go through the same sequence ) Potentially costly communication (www,eecs,northwestern,edu) #edu, (www,eecs, northwestern) Root name server At a well-known location (www,eecs, northwestern,edu) Client s name resolver (www,eecs,northwestern) #northwestern (www,eecs) (www,eecs) #eecs, (www) (www) #www #(www,eecs, northwestern,edu) Name server Name server Name server 19

Recursive name resolution Recursive a name server passes result to next server Higher performance demand on servers More effective caching Reduced communication costs Client s name resolver (www,eecs,northwestern,edu) #edu, (www,eecs, northwestern) #northwestern (www,eecs) #eecs, (www) Root name server Name server Name server To edu (www,eecs,northwe stern) To northwestern (www,eecs) #www Name server To eecs (www) (www,eecs, northwestern,edu) #(www,eecs, northwestern,edu) 20

Hierarchical naming DNS Naming for the Internet before DNS (1983) Each computer retrieved HOST.TXT from a computer at SRI A legacy a fossil host file still exist in most modern OS DNS (Paul Mockapetris, then at UC Irvine) Names organized into name spaces Name space hierarchically organized as a rooted tree A path name, a listing of labels separated by. (root is represented by a dot, generally omitted) eleuthera.cs.northwestern.edu A subtree is called a domain, the path name to its root node is the domain name Content of a node a collection of resource records 21

DNS names and name spaces Domain name space is partitioned organizationally and geographically (.edu and.ar) Name space consist of a tree of domains; each node has 0+ resource records SOA Holds info on the represented zone (email address of sys admin, host from where data on zone can be fetched, ) A IP address of the host this node represents MX Mail server to handle mail address to this node NS Name server that implement the represented zone CNAME Canonical name of the host (alias implemented by a node storing a CNAME record) HINFO Info on this host 22

DNS scalability Scalability though partitioning, replication and caching Tree sub-divides into zones beginning at the root Each zone could be 1+ domains and sub-domains Zone files the txt file that describes a zone Includes name and address for 2+ authoritative servers and for delegated subdomains Management parameters (e.g. caching) and RR Information in a zone is kept in 2+ name servers (redundancy) Any server can cache data from other servers If a non-authoritative server caches data, it notes the TTL 23

DNS scalability Top of DNS hierarchy root nameservers keep track of authoritative nameservers for top-level domains (TLDs) Generic TLDs (gtlds) -.com,.edu,.net Country-code TLDs -.ar,.uk,.in,.cn, Nameservers are statically configured with 13 IP addresses for the root servers (today) 24

DNS scalability and resolution DNS resolvers operate on behalf of clients to map queries to matching resource records Accepts queries, formats them, contacts servers to answer them Resolver follows simple request/reply over UDP Multiple queries/resp per request/reply to save on network traffic Either recursive (optional) or iterative resolution Client ask local resolver, resolver contact a root nameserver to find the TLD nameserver issues the query to TLD, obtains the authoritative nameserver of the next subdomain Aggressive caching to scale Weak consistency through time-to-live (TTL) 25

Stress on current DNS* Increases in malicious behavior Delegation bottleneck number of NS in delegation chain that need to be compromised to control the domain Worst at the network level minimum number of gateways 33% at a single gateway (Microsoft DDOS attack 2001) Buggy implementations with known vulnerabilities 2% with a known buffer overflow bug (in 2004) Explosion in client population, Zipf-like query distribution low performance In 2000, 29% of queries took >2 Bottlenecks All Domains Top 500 1 0.82% 0.8% 2 78.44% 62.80% 3 9.96% 13.20% 4 4.64% 13% Hierarchy implies higher load at the higher levels 2002 DDOS left 9/13 root severs unresponsive *V. Ramasubramanian et al, SIGCOMM 2004 26

Decentralized DNS back to DHTs Map names to responsible nodes through a hash CoDoNS based on Beehive Proactive replication on prefix-matching DHTs for O(1) lookup performance (instead of O(logN)) Clearly replicating every entry at every node gives O(1) Trick is in picking what to replicate Every organization contribute peers Same API as DNS, compatible with legacy DNS Use legacy to resolve queries not explicitly inserted by name owners Reply Legacy DNS Request Cached reply *V. Ramasubramanian et al, SIGCOMM 2004 27

Attributed-based and directory services Maybe more convenient to name, and look up entities by attributes {(attribute, value)} Simply agreeing on attributes and their values is a challenge Directory service Stores collection of bindings between names and attributes Allows attribute-based queries (a.k.a. attribute-based name services or yellow-age services) Expensive lookup basically an exhaustive search! 28

Scaling directory services Hierarchies again combine with traditional structured naming system LDAP, Microsoft s Active Directory A directory entry a collection of (attr,value) pairs Set of directory entries form a directory information base Listing attributes in sequence, leads to a tree the directory information tree And you can partition and distribute the tree among servers Attribute Abbr Value Country C USA Locality L Evanston C=USA L=Evanston O=Northwestern U. Organization O Northwestern U. Organization Unit OU EECS Common name CN Main server OU=IEMS OU=EECS Mail_Server - 129.105.8.4 WWW_Server - 129.105.8.227 29

Scaling directory services Entities descriptions translated into attribute-value trees (AVTree) then encoded into a set of unique hash ids for a (yes) DHT INS/Twine, SWORD, Mercury Entity description Corresponding AVTree A hash for every path description { type = book description { author = Tolkien title = LOTR } genre = fantasy } Queries translated into AVTree for matching type book author Tolkien genre fantasy Single-value queries (ranges would be harder) title LOTR Query: Books written by Tolkien? h1: hash(type-book) h2: hash(type-book-author) h3: hash(type-book-author-tolkien) h4: hash(type-book-title) h5: hash(type-book-title-lotr) h6: hash(genre-fantasy) type book author Tolkien 30

Summary Naming is central to computer systems in general and distributed systems in particular How do you name things? How do you find what you are looking for? What if that s a moving target? How do you implement name/directory services in an scalable manner? 31