Literatur [11-1] http://www.syn-wiki.de/lan-wan- Analysis/htm/ger/_0/Namensdienst.htm [11-2] https://de.wikipedia.org/wiki/remote_method_invocation [11-3] https://de.wikipedia.org/wiki/verzeichnisdienst [11-4] https://de.wikipedia.org/wiki/lightweight_directory_access_protocol [11-5] http://www.linux-magazin.de/ausgaben/2001/05/straffe-verwaltung [11-6] http://www.openldap.org/ 2
Übersicht Namensdienste Verzeichnisdienste Beispiel: DNS Beispiel: LDAP 3 Was sind Namen? I Adresse = Identifikation eines Ortes und auch eines Objektes an diesem Ort Beispiele: IP-Adresse, RAM-Adresse Name = Symbolische Identifikation eines Objektes unabhängig vom Ort Beispiele: www.htw-berlin.de, meier@dingsta.de, readme.txt 4
Was sind Namen? II Namen abstrahieren vom Ort. Daher sind sie unabhängig vom Ort. Wer ein Objekt ansprechen will und nur seinen Namen kennt, muss vorher bestimmen wo es liegt, also die Adresse bestimmen. Namensdienst = name service = Dienst, der die Abbildung vom Namen zur Adresse und umgekehrt realisiert Die Informationen eines Namensdienstes gehen meist viel weiter: es werden noch weitere Informationen abgelegt, z.b. Telefonnummern, postalische Adressen etc. Verzeichnisdienst = directory service = repository = Dienst, der allgemein Informationen über Objekte bereit stellt. Der Übergang vom Namens- zum Verzeichnisdienst sind in der Praxis fließend; es gibt kaum Unterschiede. Daher werden hier beide als synonym behandelt. 5 Dienste (und auch Ports) Ein Dienstname kann als Abstraktion von Namen von Servern angesehen werden, denn unterschiedliche Server können denselben Dienst anbieten. Ports als abstrakte Schnittstellen (Ports von TCP/UDP sind nicht gemeint) können als Namen von Servern aufgefasst werden. Folgende Dinge müssen bei Namensdiensten registriert werden: Adressen Namen Port(namen) Dienst(namen) und deren Zusammenhänge (Relationen) 6
Registrieren I Directory Server register() unregister() Adresse Dienst Infos 141.45... Printer Laser 141.45... File 2 TB register() unregister() Server1 141.45... Mail Server2 Mit der Operation register() gibt ein Server seinen Dienst zusammen mit seinem Namen und Ort bekannt. Mit der Operation unregister() werden sein registrierten Informationen gelöscht. Beide Operationen werden mit RPCs realisiert. 7 Idee der Service Orientierten Architektur (SOA) Drei Rollen: Client, Service-Provider(Server) und Service-Directory 8
Registrieren II In einer Datenbank werden abgespeichert: Adresse hier IP-Adresse Name hier Name des Dienstes Weitere Informationen (Attribute), z.b. Art des Dienstes Kosten Öffentlich, beschränkter Zugang Passwörter 9 Suchen des Partners Broadcast (nur im LAN) Z.B. DHCP Query bei einem Namensdienst-Server query() Directory Server register() unregister() Klient1 Send() RPC... register() unregister() Server2 Server1 10
Zusammenfassung Initial muss einem Server mindestens ein Server mit dem Namensdienst bekannt sein. Dieser Server hat auch Verzeichnisse über andere Namensserver verfügbar. Mit den abstrakten Operationen register() und unregister() werden Informationen beim Namensdienst abgespeichert bzw. gelöscht. Mit der abstrakten Operation query() wird im Informations-bestand des Namensservers gesucht. Die Operationen register(), unregister() und query() sind deshalb abstrakt, weil sie in den konkreten Implementierungen anders heißen können. 11 Beispiel: Domain Name Service (DNS) Definiert in RFC 1034, 1035 Ziele dieses Verzeichnisdienstes Umsetzung einer symbolischen Adresse nach IP Umsetzung einer IP-Adresse zur symbolischen Vermerken der Adressen von E-Mail-Servern Vermerken von Informationen über Stationen Vermerken der Adressen anderer Server Die Adressen werden streng hierarchisch in Domains (Bereiche) zusammengefasst. 12
Namensraum www.htw-berlin.de www.f4.htw-berlin.de Top-Level-Domain Second-level Domain Third-level Domain Stations-/Service-Name Alte Top-Level-Domains: Länderkennzeichen.com Unternehmen.net Netzwerkbetreiber.org Organisationen.edu (Hoch-)Schulen.mil US-Militär.gov US-Regierung Weitere Top-Level-Domains:.biz Unternehmen.aero Fluglinien/Häfen.info Allgemein.name Namen.pro Berufsgruppen.museum Museen.coop Genossenschaften 13 Vergabe der Namen NIC: Network Information Center Deutschland: www.nic.de Internationale Koordinierung der Top-Level-Domains: ICANN = Internet Corporation for Assigned Names and Numbers Begriffe Zone = Bereich der Namen, für die der Server zuständig ist, d.h. von denen er Daten hat. Intern wird für jede Zone eine Datei angelegt, so dass ein Server mit mehreren Dateien (Zonen) arbeiten kann. 14
Hierarchie und Authoritätszonen (Beispiel) Root.de.fr.edu... (Authoritäts-)Zonen tu-berlin fu-berlin htw-berlin... rz f1 f2 f3 f4 15 Mechanismus I Station 1 Station 2 Anfrager Resolver Server Cache Datenbank Anfrage an einen Server 16
Mechanismus II Server 2 Anfrager Resolver Server 1 Server 3... Server N Der beauftragte Server 1 befragt andere, um die Anforderung des Resolvers zu erfüllen: Rekursiver Modus. 17 Mechanismus III Server 1 Anfrager Resolver Server 2... Server N Der Resolver befragt selbst andere, um die Anforderung bearbeiten zu können. Ein Server ohne Antwort gibt eine Adresse eines anderen Servers zurück, von dem geglaubt wird, er hätte die Antwort. 18
Auflösungsalgorithmus 1. Prüfung der Anfrage, ob Antwort in der Datenbank vorhanden ist: Falls ja: dem Client antworten 2. Sonst: Ermittlung der Top-Level-Domain 3. Anfrage an Top-Level-Domain-Server 4. Dort Prüfung und Rücksendung der IP-Adresse des zuständigen Servers (Nachsehen in Datenbank aller gültigen Domainnamen) 5. Direkte Nachfrage bei diesem Server 6. Dort Prüfung und Rückantwort mit der IP-Adresse 7. Dem Client antworten Dieses Verfahren läuft entweder automatisch durch den ersten Server ab (rekursiver Modus) oder durch den Resolver selbst. 19 Serverarten (Beispiele für Rollen) Für jede Zone existieren/können existieren: Primärer Server mit Originaldaten Sekundärer Server als Spiegel des Primären Servers Cache-Only-Server hat keine eigene Zone, vermerkt bzw. lernt Anfragen und Ergebnisse, es gibt für ihn auch keine Zonen- Datei. Dies sind Rollen, die durch einen Server eingenommen werden können, auch gleichzeitig, d.h. ein Server kann für eine bestimmte Zone der primäre Server sein und für eine andere der sekundäre. 20
Beispiel: LDAP LDAP = Lightweight Directory Access Protocol Basiert auf X.500 als vereinfachte Version Version 3 ist in RFC 4510 bis 4532 definiert Das Suchen erfolgt anhand von Attributen Die Namen haben einen strukturierten Aufbau (Distinguished Name DN) LDAP-Server bilden häufig die Basis vom Single Sign On 21 Hierarchische Struktur Directory Information Base Eintrag1 Eintrag2 Eintrag3... EintragN Attribut1 Attribut2... AttributN Value1 Value2... ValueN 22
Einträge I Getypte Attribute, teilweise zwingend vorgegeben Ein Wert oder eine Liste von Werten Regeln für die Abfrage Es können neue Objektklassen definiert werden Einträge werden durch DN (Distiguished Name) adressiert: uid cn sn l ou o dc c User id Common Name Surname Location Organisational Unit Organisation Domain Component Country Beispiel: dn: cn=burkhard Messer,ou=FB4,o=HTW-Berlin,c=DE 23 Einträge II - Beispiel dn: cn=burkhard Messer,ou=FB4,o=HTW-Berlin,c=DE objectclass: top objectclass: person cn: Burkhard Messer sn: Messer telephonenumber: +49 30 110 2940 userpassword: XYZ uid: bmesser mail: bmesser@f4.htw-berlin.de lastmodifiedby: cn=burkhard Messer,ou=FB4,o=HTW-Berlin,c=DE personaltitle: Mr 24
Ablage im Baum - Beispiel Directory Information Tree dc=fr dc=at dc=de o=htw-berlin o=company ou=fb4 cn=burkhard Messer 25 Operationen Abfragen: search(), compare() Modifikation: add(), delete(), modifydn(), modify() Authentifikation: bind() 26
Nach dieser Anstrengung etwas Entspannung... Auch so eine Art Registry... 27