Namensdienste 4.1 Motivation
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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. „michael.schoettner@uni-ulm.de“, - 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.: - http://www.isi.salford.ac.uk/staff/dwc/Version.Web/Contents.htm , - mailto://schulthess@informatik.uni-ulm.de , - http://rr-vs.informatik.uni-ulm.de:80/rr/ , - ftp://plurix@fix.uni-ulm.de , - 134.60.77.74:80 . 74 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). User • Konvertierungsroutinen in Unix: 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, "Über"- "Über"- Externer o Adressen von Namensdienst-Servern. Server Server Server 79 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): 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, ... 81 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 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 localhost IN A 127.0.0.1 jupiter IN A 192.168.0.1 uranus IN A 192.168.0.2 venus IN A 192.168.0.3 mars IN A 192.168.0.4 82 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?, … Header - 1-n Anfragen: name, type, class, z.B. „uni-ulm.de, A, IN“, Anfragen - Resource Records: name, type, class, TTL, data len, data, (Format für Antworten, Autoritäten und Zusätzliches) Antworten - 1-n Antworten, - Authoritäten: Authority Nameserver für Namen in Antwort - Additional: Zusatzinformationen für Klient, Authoritäten 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. 86400 MX mail.adnc.com. FreeSoft.org. 86400 NS ns.adnc.com. FreeSoft.org. 86400 NS ns2.adnc.com. ns.adnc.com. 86400 A 205.216.138.22 ns2.adnc.com. 86400 A 205.216.138.24 84 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 Æ - Country (C), - Common Name (CN), - Organization Name (O), - Organization Unit Name (OU). 86 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 Wende java plurix kernel device 89 Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
• Implementierung: NameSvc - Klassenhierarchie des Namensdienstes, find - vorerst als Binärbaum implementiert ... getPath • Nutzanwendungen: getRoot - Root ist der Ansatzpunkt für die Freispeichersammlung, register - Befehlsklassen in Verzeichnissen public und users, unregister Search…… - Synergien mit den Symboltabellen im Compiler, - Maschinenkonfiguration im Namensdienst, - Textueller Aufruf von Befehlen, - Allgemeine Textelemente, - Verzeichnis als Text ? Node - Hypertexte ? • Suche nach einem bestimmten Typ: NamedObj - Verzeichnis, - Java Instanz, - Java Klasse ... Scope Compiler Objects • Die Verteilung geschieht automatisch. UserObj Compiler Scopes 90 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
Sie können auch lesen