Namensdienste - Institut für Verteilte Systeme
Transcription
Namensdienste - Institut für Verteilte Systeme
4. Namensdienste 4.1 Motivation • Namen statt Adressen: “people prefer names, machines use addresses“. • Abbildung von Namen auf dahinter stehende Objekte. • Beispiel: URL Namensauflösung (nach Coulouris): 72 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.2 Namen, Adressen & Attribute 4.2.1 Namen, Pfade & Adressen • Namen: - Erläuterung (sprechende Namen), z.B. „mailserver“, - Identifizierung: Name referenziert Objekt eindeutig, z.B. „[email protected]“, - Lokalisierung: Name verbirgt Adresse, z.B. „www.uni-ulm.de“ verbirgt IP-Adresse, • Kontext: - Namen besitzen nur in einem bestimmten Zusammenhang ihre Bedeutung, - „4711“ kann Name (UID) eines Benutzers sein oder Name (Inode-Nr.) eines Inodes sein. • Adresse: - externes Gegenteil zu Namen, - referenziert Objekt direkt. • Binden: Zuordnung eines Namens zu einer Adresse. • Attribute: - zu einem Namen gespeicherte Eigenschaft, - z.B. Attribute zu Rechnernamen: IP-Adresse, HW-Architektur, ... - z.B. Attribute zu Benutzernamen: UID, voller Name, verschlüsseltes Passwort, ... 73 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.3 Namensräume • Nur ausnahmsweise flache Namensräume: - Reorganisation des Namensraum ist schwierig, skaliert nicht gut für größere Namensräume, ungünstig zum Navigieren. z.B. Unix UID. • Üblicherweise hierarchische Namensräume: - Mit Separierungszeichen (z.B. „.“ oder „/“) zw. den einzelnen Namensteilen, Namensauflösung kann partitioniert werden, gute Skalierbarkeit f. große Namensräume, z.B. in DNS, Dateisysteme, ... • URL-Notation für Internet "Universal Resource Locator", z.B.: - 74 http://www.isi.salford.ac.uk/staff/dwc/Version.Web/Contents.htm , mailto://[email protected] , http://rr-vs.informatik.uni-ulm.de:80/rr/ , ftp://[email protected] , 134.60.77.74:80 . Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner • Namensdomäne: Namensraum unter best. administrativer Kontrolle. • Beispiel: DNS: Domäne wird durch Domain-Name bezeichnet - Beispiel: „informatik.uni-ulm.de“ Æ Präfix für die möglichen Domain-Names des Namensraums der Domäne - weitere Delegation möglich an andere Namensdomänen Æ z.B. Namensdomäne „vs.informatik.uni-ulm.de“ in der „mail.vs.informatik.uni-ulm.de“ ein Name ist • Partitionierung des Gesamtnamensraums: - jede Namensdomäne stellt eine Partition des Gesamtnamensraums dar, - jede Namensdomäne betreibt eigenen Teil-Namensdienst. • Auflösung von Namen bei Partitionierung: - iterative Auflösung, - server-gesteuerte nicht-rekursive Auflösung, - server-gesteuerte rekursive Auflösung. 75 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.3.1 Iterative Namensauflösung • Beispiel: „www-vs.informatik.uni-ulm.de“ • Client übernimmt Auflösung. • Auflösung von „de“ beim Wurzelserver verweist auf Server der Namensdomäne „de“. • Auflösung von „uni-ulm“ beim „de“-Server verweist auf Server der Domäne „uni-ulm.de“. • Auflösung von „informatik.uni-ulm.de“ beim „uni-ulm“-Server verweist auf Server der Namensdomäne „informatik.uni-ulm.de“. • Auflösung von „www-vs.informatik.uni-ulm.de“ beim „informatik.uni-ulm.de“ Server liefert IP-Adresse 76 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.3.2 Servergesteuerte nicht-rekursive Auflösung • Beispiel: „www-vs.informatik.uni-ulm.de“ • Erster Namensdienst übernimmt Auflösung, - Namensdienst der lokalen Namensdomäne, - Lokaler Namensvermittler mit Namenscache. 77 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.3.3 Servergesteuerte rekursive Auflösung • Beispiel: „www-vs.informatik.uni-ulm.de“ • Namensdienste fragen bei Auflösung jeweils weiter. • Auflösung des vollständigen Namens beim Wurzelserver: - kann nur „de“-Präfix auflösen, - Weiterleitung an „de“-Server. • Auflösung des vollständigen Namens beim „de“-Server: - kann nur „uni-ulm.de“-Präfix auflösen, - Weiterleitung an „uni-ulm.de“-Server. 78 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.4 Fallbeispiel: Domain Name Service • Hierarchischer Namensdienst mit Domains, Subdomains & Resources: - DNS wurde 1987 eingeführt (RFC 1034), - verwaltet den Internet Namensraum, - Millionen relativ statischer Adressen. • Namensvergabe: - International: ICANN = Internet Corporation for Assigned Names and Numbers. - Deutschland: DeNIC = Deutsches Network Information Center. • IP-Kenngrößen: TCP oder UDP (Port 53). • Konvertierungsroutinen in Unix: User Program - gethostbyname( url ) gibt eine IP-Adresse zurück, - gethostbyaddr( ip# ) gibt DNS-Namen zurück. • Resolverfunktion (DNS Client): Cache Resolver - erst lokalen Cache konsultieren, dann evtl. externen Server. - Lokale Datei: etc/hosts (Unix) Æ Übersetzungstabelle von DNS auf IP-Adresse. - Lokale Datei: etc/resolve.conf (Unix): o Ablauf der Namensauflösung, o Adressen von Namensdienst-Servern. 79 "Über"Server "Über"Server Externer Server Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.4.1 Domain-Names und Zonen • Namensdaten werden in Zonen unterteilt: - Zonen def. administrative Einheiten, - Zonen-Konfig.datei enthält u.a. Adresse & Namen von anderen Name-Servern. - pro Zone ein Primärserver & mehrere Sekundärserver (period. Zonensync.) Æ Fehlertoleranz. • Beispiel: 80 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner Datenhaltung pro Zone (Auszug) • Name: Domain-Name • TTL: “time to live” eines Eintrags: - Zeit (in Sek.), wie lange dieser Record im Cache eines entfernten Systems vorgehalten werden soll. - optional pro Eintrag (sonst Defaultwert). • Class: hier immer „IN“ für Internet. • Type: Typ des Eintrags: - SOA (Start of Authority): 81 o Informationen über Zone: Mail-Adresse des Verantwortlichen für diese Zone, Seriennummer: bei jeder Änderung inkrementieren. o Cache Parametern (in Sek.) für Nameserver-Slaves der Zone: refresh: Intervall des Zonentransfers (Syncronisierung) Æ 20min. – 12h. retry: Wartezeit, falls Master nicht antwortet Æ 3min. – 15min. expire: Zone deaktivieren, falls keine Antwort Æ 2 - 4 Wochen. negative Cache: wie lange sollen unbekannte Domains gespeichert werden? A (Address): IP-Adresse eines Rechners, NS (Name Server): Verweise auf DNS-Server, MX (Mail eXchange): Host für E-Mail. HINFO (Host Information): Angaben zum Rechner, ... Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner • Rdata: resource data (abh. vom Typ, z.B. IP-Adresse). • Beispiel: Linux-Zonendatei: - $TTL Default TTL für Records dieser Zone, - durch optionale TTL bei A Records überschreibbar, - SOA = Start of Authority Record (“@” bei Mail-Adr. ersetzt durch „.“) Caching: Version und Parameter. - vollständige DNS Namen mit “.” am Ende, - ansonsten wird Domain auto. angehängt. $TTL 86400 mynet.de. IN localhost jupiter uranus venus mars 82 SOA mars.mynet.de. root.mynet.de. { 2003071203 ; serial (12.7.2003 vers. 3) 28800 ; refresh every 8 hours 7200 ; retry every 2 hours 604800 ; expire after 1 week 86400 ; negative cache 1 day } IN NS mars IN IN IN IN IN A A A A A 127.0.0.1 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.4.2 Namensauflösung • Wurzelserver: - Internet-Namensbehörde ICANN verwaltet 13 Wurzelserver (Root Server), - genauer: „a.root-server.net“ bis „m.root-server.net“, - 10 davon stehen in USA plus London, Stockholm und Keio (Japan). • Auflösungsverfahren: - entfernte Server: meist rek. Verfahren, - naher Server: meist nicht-rekursives V., (verkürzte Auflösungszeit durch Cache), - oft lokaler Server ohne eigene Namensdomäne o dient nur als lokaler Ansprechpartner & Cache, o i.d.R. auch mit negativem Caching für bekannte Fehler. • Interaktiver Resolver: - nslookup (Unix+Windows). 83 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner • Format der DNS Nachrichten (RFC 1035): Æ - Header: Antwort- bzw. Anfragebit, Antwort nur von Authority Server?, … - 1-n Anfragen: name, type, class, z.B. „uni-ulm.de, A, IN“, - Resource Records: name, type, class, TTL, data len, data, - Header Anfragen (Format für Antworten, Autoritäten und Zusätzliches) Antworten 1-n Antworten, Authoritäten: Authority Nameserver für Namen in Antwort Authoritäten Additional: Zusatzinformationen für Klient, z.B. IP-Adressen der autoritativen Server. Bemerkung: Zusätzliches o Anfrage und Antwort benutzt selbes Format. o Daten aus einem Cache sind nicht autoritativ (evt. veraltet). o Resolver kann rekursive Auflösung verlangen Æ Server löst Name komplett auf. o Server kann rekursive Auflösung verweigern Æ liefert Liste weiterer Nameserver • Beispiel: FreeSoft.org MX? FreeSoft.org. FreeSoft.org. FreeSoft.org. ns.adnc.com. ns2.adnc.com. 84 86400 86400 86400 86400 86400 MX NS NS A A mail.adnc.com. ns.adnc.com. ns2.adnc.com. 205.216.138.22 205.216.138.24 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.5 Fallbeispiel: LDAP • LDAP = Lightweight Directory Access Protocol. • Verbreiteter Verzeichnisdienst f. beliebige Daten. • Für Unix und auch Microsoft Windows. • Vereinfachte Version von X.500: - geringerer Funktionsumfang, leichter zu implementieren, TCP für Kommunikation schneller. • Implementierungen - LDAPv1: 1991, Universität Michigan - OpenLDAP: Open Source (www.openldap.org). • Informationsmodell (Schema) wie X.500: - Objekte und Attribute, - Attribute in Form von Zeichenketten, - Attribute tragen Metadaten: Name, Syntax, Vergleichsoperationen. • Verschiedene Schemata vorhanden (z.B. für NIS) Æ Verteilte Benutzerverwaltung für Linux. 85 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.5.1 X.500 Namensraum • Hierarchischer Namensraum: Directory Information Tree (DIT). • Objekte - Objekte an den Knoten im Namensbaum (Blätter und innere Knoten), - Inhalt der Objekte: (Name, Wert)-Tupel, - Objekttypen durch Klassen definiert o beschreiben Namen und dazugehörige Wertetypen, o viele vordefinierte Klassen (z.B. Person, Organization). - Vererbung implementiert. • Beispiel: Baum und Attribute - 86 Æ Country (C), Common Name (CN), Organization Name (O), Organization Unit Name (OU). Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner Namensraummodell: • Directory Information Tree (DIT) - Jeder Knoten hat 0 bis n Kinderknoten, - Jeder Knoten hat genau 1 Elternknoten. • Objekte sind Baumknoten: - Jeder Eintrag hat in seiner Hierarchieebene einen eindeutigen Namen: Relativ Distinguished Name (RDN). - Alle RDNs von Objekt bis Wurzel ergeben den Distinguished Name (DN). - Beispiel: DIT 87 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.5.2 LDAP Verzeichnisdienste • Klassischer Namensdienst: Abbildung v. DN in das zugehöriges Objekt. • Suchfunktion: Suche von Objekten mit entsprechenden Attributwerten - z.B. alle Personen in Deutschland mit Nachname Schoettner, - &(C=DE)(CN=* Schoettner). • URLs: - URLs zum Auflösen von Namen in Objekte, - URLs zum Auflisten von Objekten bei Suchanfragen, - Beispiel: ldap://ldap.informatik.uni-ulm.de/CN=Michael%20Schoettner. • Einsatz: - Namensdienst für Rechnernamen, - Verzeichnisdienst für Personen, Rechner, Programme ... - z.B. für verteilte Benutzerverwaltung o Linux: OpenLDAP o Microsoft Windows Server: Active-Directory-Service Æ basiert auf X.500; Zugriff per LDAP oder MAPI 88 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.6 Fallbeispiel: Plurix • Baum im verteilten virtuellen Speicher: - Enthält irgendwelche Instanzen und Erweiterungen von NamedObject , - Verzeichnisse, Packages, Klassen, Instanzen, Texte, Bilder ... root public users admin Tlak java 89 plurix kernel Wende device Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner • Implementierung: NameSvc - Klassenhierarchie des Namensdienstes, - vorerst als Binärbaum implementiert ... find getPath getRoot register unregister Search…… • Nutzanwendungen: - Root ist der Ansatzpunkt für die Freispeichersammlung, Befehlsklassen in Verzeichnissen public und users, Synergien mit den Symboltabellen im Compiler, Maschinenkonfiguration im Namensdienst, Textueller Aufruf von Befehlen, Allgemeine Textelemente, Verzeichnis als Text ? Hypertexte ? • Suche nach einem bestimmten Typ: NamedObj - Verzeichnis, - Java Instanz, - Java Klasse ... • Die Verteilung geschieht automatisch. 90 Node Scope UserObj Compiler Objects Compiler Scopes Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner 4.7 Zusammenfassung • "Sprechende" Namen statt Adressen. • Hierarchische Namensräume sind Standard (Skalierbarkeit!). • Namensdomäne zur Paritionierung des Gesamtnamensraumes. • Auflösung bei Partionierung: iterativ, server-gesteuert (nicht) rekursiv. • DNS: - verwaltet Millionen relativ statischer Adressen, primär Abbildung von Domain Namen auf IP-Adressen (aber auch umgekehrt), Zonen definieren administrative Einheiten (Primär und mind. ein Sekundärserver pro Zone), Zonendatei definiert u.a. Namensabbildung & wie lange gecachte Eintraege gültig sein dürfen. Namensauflösung unterscheidet zw. Antwort aus Cache und Antwort von Authority Server. • LDAP: - allgemeiner hierarchischer Verzeichnisdienst, - z.B. für verteilte Benutzerverwaltung (Linux & Windows XP). • Plurix Namensdienst: - hierarchisch, speichert beliebige Objekte, - Verteilung geschieht automatisch über den DSM. - Konsistenzmodell funktioniert im LAN gut, im WAN Erweiterung nötig. 91 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner