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