Prepared by Dr: Naglaa Fathi Mohammed Soliman Name service Prepared by Dr: Naglaa Fathi Mohammed Soliman
Outline General concepts Domain Name System (DNS)
Introduction In a distributed system names are used to refer to a wide variety of resources such as computers, services, remote objects, and files as well as users. Names facilitate communication and resource sharing. Names are used for identification as well as for describing attributes. For many purposes, names are preferable to identifiers because the binding of the named resource to a physical location can be changed because they are more meaningful to users Names (e.g. URLs) are bound to objects (e.g. web pages). Names must be resolved before the corresponding objects can be invoked. The use of addresses as names is deprecated because it prevents the relocation of the named objects.
Names, Addresses and other attributes Any process that requires access to a specific resource must possess a name or identifier for it. Ex: human-readable names are file names such as /etc/passwd, and Internet domain names such as www.cdk5.net. The term identifier is sometimes used to refer to names that are interpreted only by programs (Ex. NFS file handles) Names can be pure or non-pure. Pure names are simply uninterpreted bit patterns. Pure names always have to be looked up before they can be of any use.
At the other extreme from a pure name is an object’s address. Addresses are efficient for accessing objects, but objects can sometimes be relocated, so addresses are inadequate Non-pure names contain information about the object that they name; in particular, they may contain information about the location of the object. A name is said to be resolved when it is translated into data about the resource or object.
Names and Binding The association between a name and an object is called binding. Name ↔binding ↔ {Object, Attribute (IP addressing)} Services are written to map between names and the attributes of objects they refer to. Example: Domain name Service (DNS) maps domain names to the attributes of the host computer (IP) CORBA Naming service maps the name of a remote object onto its remote object reference.
Composed naming domains used to access a resource from a URL Figure 9.1 http://www.cdk3.net:8888/WebExamples/earth.html URL Resource ID (IP number, port number, pathname) 138.37.88.61 WebExamples/earth.html 8888 DNS lookup (Ethernet) Network address 2:60:8c:2:b0:5a ARP lookup file Web server Socket *
Figure 9.1 shows the domain name portion of a URL resolved first via the DNS into an IP address. and then, at the final hop of Internet routing, via ARP to an Ethernet address for the web server. The last part of the URL is resolved by the file system on the web server to locate the relevant file.
Names and services Many of the names used in a DS are specific to some particular service . Client uses service name to perform an operation up one a named object or resource. Names are also needed to refer to entities in a distributed system that are beyond the scope of any single service.(e.g. users, computers and services) All these names must be readable.
Uniform Resource Identifier It used to identify resources on the web and other internet resources such as electronic mailbox. URL: Uniform Resource Locator This term is reserve for identifiers that are resource locators, http://www.cdk5.net/ identifies a web page at the given path (‘/’) on the host www.cdk5.net. URN: Uniform Resource Names URNs are URIs that are used as pure resource name rather than locator For example, the URI: mid:0E4FC272-5C02-11D9-B115- 000A95B55BC8@hpl.hp.com
Name Service and the DNS A name service stores a collection of one or more naming contexts – sets of bindings between textual names and attributes for objects. Provides a general naming scheme for entities (such as users and services) that are beyond the scope of a single service. Major operation: resolve a name - to look up attributes from a given name Other operations required: creating new binding, deleting bindings, listing bound names and adding and deleting contexts.
Name management is separated from other services largely because of the openness of DS, which brings the following motivations: Unification : it is convenient for resources managed by different services to use the same naming scheme ( URI). Integration : it is not possible to predict the scope of sharing DS. So, without a common name service, the administrative domain may use entirely different naming conventions.
General Name Service Requirements Name services were originally quite simple, since they were designed only to meet the need to bind names to addresses in a single management domain, corresponding to a single LAN or WAN. The interconnection of networks and the increased scale of distributed systems have produced a much larger name-mapping problem. Handle arbitrary number of names and to serve arbitrary number of administrative organizations. A long lifetime High availability Fault isolation Tolerance of mistrust
Name services: Design Issues Name spaces Name Resolution The domain name system
Name Spaces A name space is a collection of all valid names recognized by a particular service. Allow simple but meaningful names to be used. Potentially infinite number of names. A full domain name is a sequence of labels separated by dots (.). The domain names are always read from the node up to the root.
Hierarchic name space Names may have an internal structure that represents their position in a hierarchic name space. Hierarchic name space advantages: Each part of a name is resolved relative to a separate context, and the same name may be used with different meaning in different contexts (directory). it is potentially infinite Different context can be managed by different people.
Name Space
Aliases An alias is a name defined to denote the same information as another name. An alias allows a convenient name to be substituted for a more complicated one. The DNS allows aliases in which one domain is defined to stand for another. The reason for having aliases is to provide for transparency. Aliases are generally used to specify the names of machines that runs the web server or an FTP server. Example: www.example.net might be an alias for www.fred.example.net
Aliases (con.) Advantages: Client can refer to the web server by a generic name that does not refer to a particular machine. If the web server is moved to another computer, all that needs to be done is to update the alias in the DNS database.
Domain A domain is a subtree of the domain name space. The name of the domain is the domain name of the node at the top of the subtree. The figure below shows some domains. Note that a domain may itself be divided into domains (or subdomains as they are sometimes called).
Naming domains A naming domain is a name space for which there exist a single overall administrative authority for assigning names with it. Domains in DNS are collections of domain names. A domain’s name is the common suffix of the domain names within it. For example, net is a domain name that contains cdk4.net
Combining and customizing name spaces Merging In which a part of one name space is conveniently embedded in another. Adding super root Embed the mounted file systems Heterogeneity The DCE allows heterogeneous name spaces to be embedded with it using junction. Customization Users sometimes prefer to construct their name spaces independently rather than sharing a single name space
Name Resolution Resolution is an iterative process whereby a name is repeatedly presented to the naming contexts. The name is first presented to some initial naming context; resolution iterates as long as further context and derived names are output. Example1: /etc/passwd in which ‘etc’ is presented to context / and ‘passwd’ is presented to context /etc. Example 2: www.dcs.qmw.ac.uk in which the alias is resolved to another domain name such as copper.dcs.qmw.ac.uk which is further resolved to produce IP address. Name resolution in the presence of cooperating name servers is called navigation and may be performed by the client or by the server.
Name Servers and Navigation Any name service stores a very large database. Data is partitioned into servers according to its domain. Partitioning of the data implies that the local name server cannot answer all the enquiries without the help of other name servers. Process of locating naming data from among more than one name server in order to resolve a name is called navigation. Ex: Iterative Navigation model(DNS)
Navigation types Iterative navigation Multicast navigation Non-recursive server-controlled navigation Recursive server-controlled navigation
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 NS2 NS1 NS3 Name servers
Non-recursive and recursive server-controlled navigation Figure 9.3 1 2 3 4 client NS2 NS1 NS3 Non-recursive server-controlled Recursive server-controlled 1 2 3 5 4 client NS2 NS1 NS3 A name server NS1 communicates with other name servers on behalf of a client DNS offers recursive navigation as an option, but iterative is the standard technique. Recursive navigation must be used in domains that limit client access to their DNS information for security reasons. *
Caching Client name resolution software and servers maintain a cache of previous name resolutions. How long a resolver caches a DNS response (i.e. how long a DNS response remains valid) is determined by a value called the time to live. Server may use data from its own cache or other server cache it is authorized to access. Caching is key to performance and fault tolerance.
The Domain Name System A distributed naming database Name structure reflects administrative structure of the Internet Rapidly resolves domain names to IP addresses exploits caching heavily typical query time ~100 milliseconds Scales to millions of computers partitioned database caching Resilient to failure of a server replication The Domain Name System resolves names on a world-wide scale and represents a considerable engineering achievement.
Parts of a domain name Usually consists of two or more parts (technically labels), separated by dots. . The rightmost label conveys the top-level domain. Each label to the left specifies a subdivision, or subdomain of the domain above it.
DNS queries Host name resolution Mail host location When a web browser is given a URL containing the domain name www.dcs.qmul.ac.uk , it makes a DNS enquiry and obtains the corresponding IP address. Mail host location Electronic mail software uses the DNS to resolve domain names into the IP address of mail hosts
Reverse resolution: return the domain name given an IP address.. Some other types of query that are implemented in some installations but are less frequently used than those just given are: Reverse resolution: return the domain name given an IP address.. Host information: return the machine type and operating system Well-known services : return the list of services run by a computer.
DNS name servers The Domain Name System consists of a hierarchical set of DNS servers Each server holds part of the naming database Each domain or sub-domain has one or more authoritative DNS servers that publish information about that domain and the name servers of any domains "beneath" it The hierarchy of authoritative DNS servers matches the hierarchy of domains. At the top of the hierarchy stand the root name-servers: the servers to query when looking up (resolving) a top-level domain name
Zones The DNS naming data are divided into zones. Each zone contains: Attribute data for names in a domain, less any sub- domains administered by lower-level authorities. The name and addresses of at least two name servers that provide authoritative data for the zone. The names of name servers that hold authoritative data for delegated sub-domains Zone management parameters ( governing the caching & replication of zone data.
DNS servers and zones A server may hold authoritative data for zero or more zones. The DNS architecture specifies that each zone must be replicated authoritatively in at least two servers.
Master files System administrators enter the data for a zone into a master file, which is the source of authoritative data for the zone. There are two types of servers: Primary or master server which reads zone data directly from a local master file. Secondary servers which download zone data from a primary server and communicate periodically with the primary server to check whether their stored version matches that held by the primary server. The primary sends the latest version if the secondary’s copy is out of date The value of secondary’s check is one or two a day which is set by administrators as a zone parameters.
Basic DNS algorithm for name resolution Look for the name in the local cache Try a superior DNS server, which responds with: another recommended DNS server the IP address (which may not be entirely up to date)
DNS name servers Figure 9.4 jeans-pc.dcs.qmw.ac.uk * a.root-servers.net (root) ns0.ja.net (ac.uk) dns0.dcs.qmw.ac.uk (dcs.qmw.ac.uk) alpha.qmw.ac.uk (qmw.ac.uk) dns0-doc.ic.ac.uk (ic.ac.uk) ns.purdue.edu (purdue.edu) uk purdue.edu ic.ac.uk qmw.ac.uk ... dcs.qmw.ac.uk *.qmw.ac.uk *.ic.ac.uk *.dcs.qmw.ac.uk * .purdue.edu ns1.nic.uk (uk) ac.uk ... co.uk yahoo.com .... Note: Name server names are in italics, and the corresponding domains are in parentheses. Arrows denote name server entries authoritative path to lookup: jeans-pc.dcs.qmw.ac.uk *
DNS in typical operation a.root-servers.net (root) ns0.ja.net (ac.uk) dns0.dcs.qmw.ac.uk (dcs.qmw.ac.uk) alpha.qmw.ac.uk (qmw.ac.uk) dns0-doc.ic.ac.uk (ic.ac.uk) ns.purdue.edu (purdue.edu) uk purdue.edu ic.ac.uk qmw.ac.uk ... dcs.qmw.ac.uk *.qmw.ac.uk *.ic.ac.uk *.dcs.qmw.ac.uk * .purdue.edu ns1.nic.uk (uk) ac.uk ... co.uk yahoo.com .... Without caching IP: alpha.qmw.ac.uk 2 Animation: reveals each step in looking up jeans-pc.dcs.qmw.ac.uk from a client in the ic.ac.uk domain Discuss how caching reduces the number of steps. client.ic.ac.uk IP:jeans-pc.dcs.qmw.ac.uk 4 jeans-pc.dcs.qmw.ac.uk ? IP:ns0.ja.net 1 3 IP:dns0.dcs.qmw.ac.uk *
Resource Records
Figure 9.6 DNS zone data records domain name time to live class type value 1D IN NS dns0 dns1 cancer.ucs.ed.ac.uk MX 1 mail1.qmul.ac.uk 2 mail2.qmul.ac.uk domain name ti m e to l i ve class type value www 1D IN CNAME apr cot A 138.37.88.248 dcs 1D IN NS dns0.dcs dns0.dc s A 138.37.88.249 dns1.dcs dns1.dc 138.37.94.248 ca n c e r. u .ed .a c.uk Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
DNS issues Name tables change infrequently, but when they do, caching can result in the delivery of stale data. Clients are responsible for detecting this and recovering Its design makes changes to the structure of the name space difficult. For example: merging previously separate domain trees under a new root moving subtrees to a different part of the structure (e.g. if Scotland became a separate country, its domains should all be moved to a new country-level domain.
References Distributed Systems: Concepts and Design Internet sources http://www.cdk3.net wiki