Namensdienste 4.1 Motivation

Die Seite wird erstellt Klaus Kohl
 
WEITER LESEN
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