Schicht 7 Anwendungsprotokolle des Internets Anwendungsprotokolle im TCP/IP-Referenzmodell Dateitransfer Webseiten HTTP Internetprotokolle E-Mail Virtuelles Terminal Namensdienst Telnet DNS FTP IGMP Ethernet SMTP TCP RARP Schicht 1/2 Netzwerkmanagement TokenRing SNMP TFTP UDP ICMP IP Dateitransfer ARP Token Bus Wireless Lan 1 Anwendungsprotokolle im TCP/IP-Referenzmodell Protokolle der Anwendungsschicht definieren • Die Typen der verschickten Nachrichten • Die Syntax der Nachrichtentypen • Die Semantik der Nachrichtentypen • Regeln zur Festlegung, wann und wie ein Prozeß eine Nachricht sendet bzw. darauf antwortet Prozesse der Anwendungsschicht greifen auf Sockets zu FTP - File Transfer Protocol • FTP ist der Internet-Standard für die Übertragung von Dateien. • FTP wird benutzt, um eine komplette Datei von einem Rechner auf einen anderen zu kopieren. • FTP bietet neben dem reinen File-Transfer noch andere Möglichkeiten: – Interaktiver Zugriff – Format-Spezifikation – Authentifizierung 2 FTP - Bestätigter File-Transfer FTP Client A Connection Setup TCP (Port 21) B FTP Server FTP Connect to the Server Login Login OK Password Password OK User Logged In Get File Connection Setup TCP (Port 20) Data Exchange Termination of Connection TCP (Port 20) User Command Quit Termination of Connection TCP (Port 21) FTP - Befehle Kommando Wirkung open disconnect user cd lcd pwd get/mget put/mput binary ascii dir/ls help delete bye Verbinden zum FTP-Server Beende die FTP-Sitzung Sende Benutzerinformationen nach dem Verbinden change directory auf dem entfernten Rechner change directory auf dem eigenen Rechner Drucke das Arbeitsverzeichnis des entfernten Rechners Der Client empfängt ein (bzw. mehrere) Dokument Der Client sendet ein (bzw. mehrere) Dokument Setze den Übertragungmodus auf binary Setze den Übertragungsmodus auf ASCII Liste den Inhalt des entfernten Verzeichnisses auf Hilfe Lösche eine entfernte Datei Beende die FTP-Sitzung, Abbruch 3 FTP - Antworten Reply 1yz 2yz Wirkung Vorläufige positive Antwort: die Aktion wurde gestartet, aber der Client muß noch eine weitere Antwort abwarten. Die Anfrage wurde komplett bearbeitet. Positive Zwischenantwort: das Kommando wurde akzeptiert, aber ein weiteres Kommando wird erwartet. Temporäre negative Antwort: der Request wurde nicht bearbeitet, aber der Fehlergrund ist nur temporär, später kann eine Wiederholung erfolgen. Dauerhaft negative Antwort: das Kommando wurde nicht akzeptiert, sollte aber auch nicht wiederholt werden. 3yz 4yz 5yz x0z Syntax Error x1z Information x2z Die Meldung bezieht sich auf die Verbindung. x3z Antworten auf login-Befehle x4z Nicht festgelegt x5z Status des Dateisystems TFTP - Trivial File Transfer Protocol • TFTP ist ein sehr einfaches Protokoll für den File-Transfer • die Kommunikation läuft über Port 69 und benutzt UDP, nicht TCP • TFTP hat keine Authentifizierung • TFTP benutzt immer 512-Byte-Blöcke 4 TFTP - Ablauf TFTP Client A B TFTP Server IP Header UDP Header Get Path/File Name IP Header UDP Header Data (512 Bytes) IP Header UDP Header IP Header UDP Header Ack Data (512 Bytes) Timeout IP Header UDP Header Data (512 Bytes) IP Header UDP Header Ack IP Header UDP Header Data (350 Bytes) IP Header UDP Header Ack Elektronische Post: E-Mail Frühe Systeme Eine einfache Dateiübertragung erfolgte, mit der Konvention, daß die erste Zeile der Datei die Adresse des Empfängers enthält. Probleme E-Mails an Gruppen, Strukturierung der E-Mail, Delegation der Verwaltung an eine Sekretärin, Dateieditor als Benutzeroberfläche, keine gemischten Medien Lösung X.400 als Standard zum Mailtransfer. Dies war allerdings zu komplex und schlecht ausgelegt. Durchgesetzt hat sich ein einfacheres, ’von einer handvoll Informatikstudenten zusammengeschustertes’ System: das Simple Mail Transfer Protocol (SMTP). 5 E-Mail über POP3 und SMTP Simple Mail Transfer Protocol (SMTP) – Versenden von E-Mails über TCP-Verbindung (Port 25) – SMTP ist ein einfaches ASCII-Protokoll – Ohne Prüfsummen, ohne Verschlüsselung – Empfangende Maschine ist der Server und beginnt mit der Kommunikation – Ist der Server zum Empfangen bereit, signalisiert er dies dem Client. Dieser sendet die Information, von wem die E-Mail kommt und wer der Empfänger ist. Ist der Empfänger dem Server bekannt, sendet der Client die Nachricht, der Server bestätigt den Empfang. Post Office Protocol Version 3 (POP3) – Abholen von E-Mails beim Server über eine TCP-Verbindung, Port 110 – Befehle zum An- und Abmelden, Nachrichten herunterladen und auf dem Server löschen oder liegen lassen, Nachrichten ohne vorherige Übertragung vom Server direkt löschen – kopiert lediglich E-Mails vom entfernten Server auf das lokale System E-Mail über POP3 und SMTP • Benutzer 1: schreibt eine Mail • Mailprogramm 1 (User Agent 1): Formatiert die Mail, erzeugt die Empfängerliste und schickt die Mail an die Queue • Client 1 (Sender): Baut die Verbindung zum SMTP-Server auf und schickt eine Kopie der Mail dorthin • Server: Erzeugt den Header der Mail und platziert die Mail in die passende Mailbox • Client 2 (Empfänger): baut die Verbindung zum POP3-Server auf, authentifiziert sich mit Username und Passwort (unverschlüsselt!) • Server: schickt die Mail an den Client • Mailprogramm 2: formatiert die Mail • Benutzer 2: liest die Mail 6 E-Mail über POP3 und SMTP Mail Clients X.400 SMTP Proprietary Mail Protocol POP3 Mail Server und Gateway • • • Senden von E-Mails mit Hilfe von SMTP Mailanfragen über POP3 Gateways zu anderen Mailprotokollen SMTP - Befehlsabfolge • HELO (der SMTP-Client initialisiert die Verbindung und identifiziert sich) HELO domain.host.name • MAIL (vom Sender) MAIL FROM [email protected]än • RCPT (an den Empfänger) RCPT TO: [email protected]än • DATA (Beginn der eigentlichen Nachricht; Ende des Data-Blocks mit “<crlf>.<crlf>”) DATA • QUIT (fertig) QUIT 7 SMTP - Beispiel Kommunikation zwischen Partnern (von abc.com nach beta.edu) in Textform der Art: S: 220 <beta.edu> Service Ready C: HELO <abc.com> /* Abk. für „Hello“ /* /* Server meldet sich */ S: 250 <beta.edu> OK C: MAIL FROM:<[email protected]> /* Sender der Mail */ S: 250 OK /* Empfänger der Mail */ C: RCPT TO:<[email protected]> S: 250 OK /* Jetzt kommen die Daten */ C: DATA S: 354 Start mail input; end with “<crlf>.<crlf>“ on a line by itself C: From: Krogull @ ..... <crlf>.<crlf> S: 250 OK /* ab hier normales Nachrichtenformat */ C: QUIT S: 221 <beta.edu> Server Closing /* Beenden der Verbindung */ SMTP - Antwortcodes Reply Code Bedeutung Reply Code Bedeutung 211 System status 500 Syntax error, command unrecognised 214 Human information about how to use SMTP 501 Syntax error, in parameters or arguments 220 <domain> service ready 502 Command not implemented 221 <domain> service closing channel 503 Bad sequence number 250 Requested mail action okay, completed 504 Command parameter not implemented 251 User not local, forwarded to forward path 550 Requested action not taken; mailbox unavailable 354 Start mail input, end with <CRLF>.<CRLF> 551 Requested action not taken; error in processing 421 <domain> Service not available 552 User not local; please try <forward path> 450 Requested action aborted; mailbox unavailable 553 Action not taken; mailbox name not allowed 451 Requested action aborted; error in processing 554 Transaction failed 452 Requested action aborted; insufficient storage 8 POP3-Prozeß Abholen der E-Mails vom Server mittels POP3: Client (Agent-Terminal) PC • Authorisierungsstatus: USER name PASS string POP3-Server • Transaktionsstatus TCP/IP-Netz STAT TCP Verbindung Port 110 LIST [msg] RETR msg Greeting DELE msg NOOP Commands RSET Replies QUIT Weiterentwicklung: IMAP (Interactive Mail Access Protocol). Hier werden die E-Mails nicht abgerufen und lokal gespeichert, sondern bleiben auf dem Server liegen. Der Client führt alle Aktionen entfernt durch. Dies eignet sich für Anwender, die von verschiedenen Hosts Zugriff auf ihre E-Mails benötigen. Das Protokoll ist allerdings komplexer als bei POP3. DNS - Domain Name Service Internetadressen sind für Menschen schlecht zu merken, aber Rechner können damit perfekt umgehen. Top Level Domain de Symbolische Name sind für Menschen einfacher zu handhaben, aber Maschinen können leider damit nichts anfangen. rwth-aachen informatik blaubaer.informatik.rwth-aachen.de 9 DNS - Grundlagen 1. DNS handhabt die Abbildung von Rechnernamen auf Adressen 2. DNS ist eine verteilte Datenbank, d.h. die einzelnen Segmente unterliegen einer lokalen Kontrolle 3. Daten jedes lokalen Segments sind mittels einer Client/Server-Architektur im gesamten Netzwerk verfügbar 4. Robustheit und Geschwindigkeit des Systems werden durch Replikation und Zwischenspeicherung (engl. Caching) erreicht 5. Hauptkomponenten: – Name Server: Server, die Informationen über ein Segment der Datenbank verwalten – Resolver: Clients, die Anfragen an die Server stellen Anfrage Resolver Name Server Antwort DNS - Funktionsweise User Request User Program User Response Requests Resolver Responses Remote Name Server References Shared Database Updates References Responses Master Files Name Server Remote Resolver Requests Administrative Requests Administrative Responses Remote Name Server 10 Struktur der Datenbank • Datenbank läßt sich als Baum darstellen • jeder Knoten des Baums ist mit einem Label beschriftet, das ihn relativ zum Vaterknoten identifiziert • jeder (innere) Knoten ist wiederum selber Wurzel eines Teilbaums • jeder dieser Teilbäume repräsentiert eine Domäne • jede Domäne kann wiederum weiter in Subdomänen unterteilt werden ““ com edu gov mil se de Oxford rwth-aachen cs informatik Generic Länder Domänennamen • der Name der Domäne identifiziert die Position der Domäne in der Datenbank • der Name der Domäne besteht aus der Folge von Labeln (getrennt durch „.“) beginnend bei der Wurzel der Domäne und aufsteigend bis zur Wurzel des Gesamtbaums ““ com hp corp winnie winnie.corp.hp.com 11 Verwaltung einer Domäne • • • • jede Domäne kann von einer anderen Organisation verwaltet werden die für eine Domäne verantwortliche Organisation kann diese weiter aufspalten und die Verantwortung für die Subdomänen an andere Organisationen delegieren die übergeordnete Domäne verwaltet Zeiger auf Quellen für die Subdomäne betreffende Daten, um Anfragen an diese weiterleiten zu können der Name der Domäne entspricht dem Domänennamen des Wurzelknotens vom Network Information Center verwaltet ““ edu com gov mil berkeley von der UC Berkeley verwaltete Domäne berkeley.edu Index der Datenbank • die Namen der Domänen dienen als Index der Datenbank • jeder Rechner im Netzwerk hat einen Domänennamen, der auf weitere Informationen bezüglich des Rechners verweist ““ ca nv or ba oakland la rinkon IP-Adresse: 192.2.18.44 die mit einem Domänennamen assoziierten Daten werden in sogenannten Resource Records (RR) gespeichert 12 Zweitnamen • Rechner können einen oder mehrere Zweitnamen (engl. Domain Name Alias) besitzen • Zweitnamen sind Zeiger von einem Domänennamen (Alias) zu einem anderen Domänennamen (kanonischer Domänenname) ““ ca nv or ba oakland la mailhub rinkon IP-Adresse: 192.2.18.44 Namensraum • der umgekehrte Baum repräsentiert den Namensraum (engl. Domain Name Space) • die Tiefe des Baums ist auf 127 Ebenen beschränkt • Domänennamen können bis zu 63 Zeichen lang sein • ein Label der Länge 0 ist für den Wurzelknoten reserviert (" ") • der Fully Qualified Domain Name (FQDN) ist der absolute Domänenname, der mit Bezug auf die Wurzel des Baums angegeben wird Bsp.: informatik.rwth-aachen.de. • Domänennamen, die nicht mit Bezug auf die Wurzel des Baums, sondern mit Bezug auf eine andere Domäne angegeben werden, werden als relative Domänennamen bezeichnet 13 Namenskollisionen • Geschwisterknoten im Baum, d.h. Knoten mit demselben Vaterknoten, müssen unterschiedliche Label haben • hierarchischer Namensraum verhindert das Auftreten von Kollisionen ““ us ca il pa lg mpk hobbes.lg.ca.us hobbes hobbes hobbes hobbes.pa.ca.us hobbes.pa.ca.us verboten Domänen • eine Domäne umfasst alle Rechner, deren Domänenname innerhalb der Domäne liegt • Blätter des Baums repräsentieren einzelne Rechner und verweisen auf Netzwerkadressen, Hardware-Informationen und Mail-Routing-Informationen • innere Knoten des Baums können sowohl einen Rechner als auch eine Domäne beschreiben • Domänen werden oft relativ oder in Bezug auf ihre Ebene (engl. Level) referenziert: – Top-Level Domäne: Kind des Root-Knotens – First-Level Domäne: Kind des Root-Knotens (eine Top-Level Domäne) – Second-Level Domäne: Kind einer First-Level Domäne – usw. 14 Top-Level Domänen • ursprünglich wurde der Namensraum in sieben Top-Level Domänen eingeteilt: 1. com: kommerzielle Organisationen 2. edu: pädagogische Organisationen 3. gov: Regierungsorganisationen 4. mil: militärische Organisationen 5. net: Netzwerkorganisationen 6. org: nicht-kommerzielle Organisationen 7. int: internationale Organisationen • der Namensraum wurde inzwischen um weitere Top-Level Domänen erweitert • innerhalb der einzelnen Top-Level Domänen werden die ursprünglichen Konventionen zur Namensgebung unterschiedlich gehandhabt: – Australien: edu.au, com.au, etc. – UK: co.uk (für kommerzielle Organisationen), ac.uk (für akademische Organisationen), etc. Beispiele für Domänennamen • lithium.cchem.berkeley.edu Rechner • pädagogische Organisation corporate headquaters Hewlett-Packard kommerzielle Organisation fernwood.mpk.ca.us Rechner • U.C. Berkeley winnie.corp.hp.com Rechner • College of Chemistry Menlo Park California U.S. daphne.ch.apollo.hp.com Rechner Chelmsford Apollo Hewlett-Packard kommerzielle Organisation 15 Name-Server und Zonen • Name Server speichern Informationen über den Namensraum • Name Server verwalten in der Regel die kompletten Informationen für einen bestimmten Teil des Namensraums; dieser Teil wird als Zone bezeichnet • die Informationen über eine Zone werden entweder aus einer Datei oder von einem anderen Name Server geladen • der Name Server hat dann die Befugnisse (engl. Authority) für die Zone • Name Server können für mehrere Zonen verantwortlich sein Domänen und Zonen • Domäne und Zone sind unterschiedliche Konzepte: ““ org com edu edu Zone berkeley purdue nwu purdue.edu Zone berkeley.edu Zone edu Domäne Delegation 16 Zonen und Delegation • eine Zone enthält die Domänennamen, die die Domäne mit demselben Domänennamen enthält, abgesehen von Domänennamen in delegierten Subdomänen • Bsp.: – Top-Level Domäne ca (Canada) hat die Subdomänen ab.ca (Alberta), on.ca (Ontario), qc.ca (Quebec) – Verantwortung für die Suddomänen ab.ca, on.ca und qc.ca wird an die Name Server in den Provinzen delegiert – die Domäne ca umfasst dann alle Daten in ca sowie alle Daten in ab.ca, on.ca und qc.ca – die Zone ca enthält nur die Daten in ca, bei denen es sich primär um Zeiger auf die delegierten Subdomänen handelt • Name Server laden Zonen statt Domänen, da eine Domäne mehr Informationen beinhaltet als vom Name Server benötigt werden • Bsp.: – Der Root Name Server, der statt der Root-Zone die Root-Domäne und damit den gesamten Namensraum lädt Typen von Name-Servern • Der Primary Master einer Zone (auch Master genannt) liest die Daten aus einer Datei auf dem für den Name Server genutzten Rechner • Ein Secondary Master einer Zone (auch Slave genannt) erhält die Daten von einem anderen Name Server, der für die Zone maßgebend (engl. authoritative) ist. Dabei handelt es sich sehr oft, aber nicht notwendigerweise um den Primary Master. Ein Secondary Master kann die Daten jedoch auch von einem anderen Secondary Master erhalten. • beim Anlaufen eines Secondary Masters kontaktiert dieser den Master Server und lädt, falls notwendig, die Zonen-Daten neu (Zone-Transfer) • sowohl der Primary Master als auch die Secondary Masters sind maßgebend für die Zone • die Unterscheidung zwischen Primary Master und Secondary Master dient der kontrollierten Replikation der Daten und damit sowohl der Leistungssteigerung als auch der Redundanz 17 Daten-Files • der Primary Master liest die Zone-Daten aus entsprechenden Daten-Files (eng. Zone Data Files) • ein Secondary Master kann seine Zone-Daten ebenfalls aus diesen Dateien lesen • ein Secondary Master sichert die von einem Primary Master erhaltenen Daten in der Regel in entsprechenden Dateien • bei einem Neustart des Secondary Masters liest dieser zunächst die gesicherten Daten in den Dateien, um festzustellen, ob diese aktuell sind • die Sicherungskopien verhindern somit unnötige Datentransfers und dienen gleichzeitig als zusätzliche Quelle für den Fall, daß der Primary Master nicht verfügbar ist • die Daten-Files enthalten Resource Records, die die Zone beschreiben • die Resource Records beschreiben alle Rechner in der Zone und Informationen bezüglich der Delegation von Subdomänen Namensauflösung • generell Abbildung von Namen auf Adressen • der Begriff der Namensauflösung bezeichnet auch den Prozeß, bei dem ein Name Server den Namensraum nach Daten durchsucht, für die er selber nicht zuständig ist • ein Name Server benötigt dazu den Domänennamen und die Adressen der Root Name Server • ein Name Server kann die Root Name Server nach jedem Namen im Namensraum fragen • Root Name Server kennen die verantwortlichen Server für jede Top-Level Domäne • bei einer Anfrage kann der Root Name Server die Namen und Adressen der Name Server zurückgeben, die für die Top-Level Domäne, in der der gesuchte Name liegt, verantwortlich sind • die Top-Level Name Server wiederum stellen eine Liste mit Name Servern zur Verfügung, die für die Second-Level Domäne verantwortlich sind • fehlen zusätzliche Informationen, dann beginnt jede Suche bei den Root Name Servern 18 Namensauflösung Beispiel: Anfrage nach Adresse von girigiri.gbrmpa.gov.au Verweis auf au Name Server Anfrage nach Adresse von girigiri.gbrmpa.gov.au Name Server Antwort Anfrage Verweis auf gov.au Name Server Anfrage nach Adresse von girigiri.gbrmpa.gov.au Resolver Verweis auf gbrmpa.gov.au Name Server Anfrage nach Adresse von girigiri.gbrmpa.gov.au ““ ““ Name Server au Name Server au nz gov.au Name Server gov edu sg gbrmpa.gov.au Name Server Adresse von girigiri.gbrmpa.gov.au sa ips gbrmpa Rekursive Auflösung • Unterscheidung zwischen rekursiven und iterativen Anfragen bzw. rekursiver und iterativer Namensauflösung • im Falle der rekursiven Auflösung sendet ein Resolver eine rekursive Anfrage an einen Name Server • der Name Server muß dann mit der gesuchten Information oder einer Fehlermeldung antworten, d.h. der Name Server darf als Antwort nicht auf einen anderen Name Server verweisen • ist der angesprochene Name Server nicht für die gesuchte Information verantwortlich, muß er andere Name Server kontaktieren • dabei kann der Name Server selber eine rekursive oder iterative Anfrage stellen; in der Regel wird er jedoch eine iterative Anfrage stellen • bei der Anfrage wird versucht, den mit Bezug auf die gesuchte Information geeignetsten Name Server zu befragen, um den Auflösungsprozess zu verkürzen 19 Iterative Auflösung • im Falle der iterativen Namensauflösung gibt der befragte Name Server die ihm bekannte, beste Antwort zurück, ohne selber weitere Anfragen zu stellen Name Server B 3 4 An fr Ve age rw eis Verweis Anfrage 2 A C 5 6 Anfrage Antwort 7 D 1 Anfrage 8 Antwort Resolver Abbildung von Adressen auf Namen • Informationen in der Datenbank sind über Namen indiziert • Abbildung eines Namens auf eine Adresse ist einfach • Abbildung einer Adresse auf einen Namen ist schwieriger zu realisieren (vollständige Suche) • Lösung: – Anlegen eines speziellen Bereichs im Namensraum, der Adressen als Label benutzt; die in-addr.arpa-Domäne – Knoten in dieser Domäne werden gemäß der üblichen Notation für IPAdressen (vier durch Punkte getrennte Oktette) beschriftet – die in-addr.arpa-Domäne kann entsprechend 256 Subdomänen und jede weitere Subdomäne wiederum 256 Subdomänen haben – auf der vierten Ebene sind entsprechende Resource Records mit dem Oktett verbunden, die auf den Domänennamen des Rechners oder des Netzwerks mit der angegebenen Adresse verweisen – die IP-Adresse erscheint dabei rückwärts, da sie beginnend beim Blattknoten gelesen wird (IP-Adresse: 15.16.192.152 => Suddomäne: 152.192.16.15.in-addr.arpa) 20 Abbildung von Adressen auf Namen ““ arpa in-addr 0 255 15 0 16 0 255 255 192 0 255 152 hostname winnie.corp.hp.com Caching & Time To Live • Caching bezeichnet den Prozeß, bei dem ein Name Server die im Rahmen der Namensauflösung gewonnenen Informationen zwischenspeichert und zur Beantwortung weiterer Anfragen nutzt • dazu gehört sowohl die Antwort auf die eigentlich gestellte Anfrage als auch die bei der Auflösung gewonnene Information hinsichtlich der für bestimmte Zonen zuständigen Name Server • die Time to Live (TTL) gibt dabei an, wie lange Daten zwischengespeichert werden dürfen • die TTL stellt sicher, daß keine veralteten Informationen verwendet werden – eine kleine TTL sorgt für eine hohe Konsistenz – eine große TTL sorgt für eine schnellere Namensauflösung 21 Daten-Files & Resource Records • die meisten Einträge in den Daten-Files sind Resource Records • Typen von Resource Records: – SOA zeigt die Authority für diese Zone-Daten an – NS gibt einen Name Server für die Zone an –A Name-to-Address Abbildung – PTR Address-to-Name Abbildung – CNAME Kanonischer Name – MX Mail Exchange SOA-Record • • • • SOA = Start of Authority zeigt an, daß der Name Server für die Zone maßgebend ist es kann nur einen SOA-Record in einer entsprechenden Datei geben Bsp. (Datei db.movie): movie.edu. IN SOA terminator.movie.edu al.robocop.movie.edu( 1 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day IN = Internet (Klasse der Daten) terminator.movie.edu = Primary Master Name Server al.robocop.movie.edu = Email-Adresse einer Kontaktperson(erster . -> @) 22 SOA-Record • Attribute des SOA-Records: – Serial: Seriennummer, die dem Secondary Master zur Erkennung von neuen Versionen dient – Refresh: Zeitintervall, nach dessen Ablauf der Secondary Master die Aktualität seiner Daten prüft – Retry: Zeitintervall; kann der Secondary Master nach Ablauf der RefreshZeit den Primary Master nicht erreichen, so versucht er sich nach Ablauf der durch Retry vorgegebenen Zeitspanne mit diesem in Verbindung zu setzen – Expire: Zeitdauer; wenn der Secondary Master den Primary Master nach der angegebenen Zeitdauer nicht erreichen kann, hört er auf, Anfragen zu beantworten, da er davon ausgehen muß, daß seine Daten veraltet sind. – TTL: Bezieht sich auf alle Resource Records. Dieser Wert wird als Teil der Antwort auf eine Anfrage zurückgegeben, um anderen Servern das Zwischenspeichern der Daten für das angegebene Zeitintervall zu ermöglichen. NS-Record • NS = Name Server • für jeden Name Server der Zone gibt es einen NS-Record • Bsp. (Datei db.movie) : movie.edu. IN NS terminator.movie.edu movie.edu. IN NS wormhole.movie.edu • demnach gibt es im betrachteten Beispiel zwei Name Server, die auf den Rechnern terminator und wormhole angesiedelt sind 23 Address and Alias-Records • • • • A = Address CNAME = Canonical Name Einrichten der Name-to-Address-Abbildung Bsp. (Datei db.movie) : ; Host addresses localhost.movie.edu. robocop.movie.edu. terminator.movie.edu. diehard.movie.edu. misery.movie.edu. shining.movie.edu. carrie.movie.edu. ; ; Multi-homed hosts ; wormhole.movie.edu wormhole.movie.edu ; IN IN IN IN IN IN IN A A A A A A A 127.0.0.1 192.249.249.2 192.249.249.3 192.249.249.4 192.253.253.2 192.253.253.3 192.253.253.4 IN IN A A 192.249.249.1 192.253.253.1 Address and Alias-Records ; ; Aliases ; bigt.movie.edu. dh.movie.edu. wh.movie.edu. wh249.movie.edu. wh253.movie.edu. IN IN IN IN IN CNAME CNAME CNAME A A terminator.movie.edu. diehard.movie.edu. wormhole.movie.edu. 192.249.249.1 192.253.253.1 A = Address CNAME = bildet einen Alias auf seinen kanonischen Namen ab • für den mit beiden Netzen verbundenen Rechner (engl. multihomed) wird für jeden Zweitnamen, der speziell für eine der beiden Adressen ist, ein Address Record eingerichtet • für einen Zweitnamen, der für beide Adressen gilt, wird ein CNAME-Record eingerichtet 24 PTR-Record • PTR = Pointer • Einrichten der Address-to-Name Abbildung • Bsp. (Datei db.192.249.249) : 1.249.249.192.in-addr.arpa. 2.249.249.192.in-addr.arpa. 3.249.249.192.in-addr.arpa. 4.249.249.192.in-addr.arpa. IN IN IN IN PTR PTR PTR PTR wormhole.movie.edu. robocop.movie.edu. terminator.movie.edu. diehard.movie.edu. • Adressen sollten dabei nur auf einen einzigen Namen verweisen, den kanonischen Namen MX-Record • MX = Mail Exchanger • MX-Record dient der Steuerung des Email-Routings • spezifiziert einen Mail Exchanger für einen Domänennamen, der eine Email entweder verarbeitet oder weiterleitet • zusätzlich kann eine Präferenz angegeben werden • Bsp. : peets.mpk.ca.us IN MX 10 relay.hp.com. gibt an, daß relay.hp.com mit der Präferenz 10 der Mail Exchanger für peets.mpk.ca.us ist • im Falle der Präferenz ist nur der relative Wert wichtig; der Mail Exchanger mit dem kleinsten Wert wird zuerst angesprochen 25 nslookup • Tool zum Stellen von DNS-Anfragen • bietet sowohl einen interaktiven als auch einen nicht-interaktiven Modus • interaktiver Modus: [aoxomoxoa:roland] 42> nslookup Default Server: nets1.rz.RWTH-Aachen.DE Address: 137.226.144.3 • nicht-interaktiver Modus: [aoxomoxoa:roland] 43> nslookup kraftwerk Server: nets1.rz.RWTH-Aachen.DE Address: 137.226.144.3 Name: kraftwerk.informatik.rwth-aachen.de Address: 137.226.12.12 • der Default-Name-Server ist nets1.rz.RWTH-Aachen.DE, d.h. jede Anfrage wird an diesen Name Server gesendet Optionen – man kann bei der Benutzung von nslookup Optionen angeben – zwei Arten von Optionen: Boolesche Optionen (on,off) und Wertzuweisung (=) – Optionen werden mittels des set-Kommandos (interaktiver Modus) bzw. durch Voranstellen eines Bindestrichs geändert (nicht-interaktiver Modus) – Bsp.: set domain=classics.movie.edu -domain=classics.movie.edu – Optionen sind z.B. • debug: Debugging ist standardmäßig ausgeschaltet. Wird der Debugging-Modus eingeschaltet, zeigt der Name-Server Timeouts und die Antwortpakete an. • defname: Standardmäßig fügt nslookup den Default-Domänennamen jedem Namen hinzu, der keinen Punkt enthält. • search: Diese Option überschreibt die defname-Option, d.h. defname wird nur angewandt, wenn die search-Option nicht aktiviert ist. Ist die Option aktiviert, fügt nslookup den Namen, die nicht mit einem Punkt enden, die in einer Suchliste (srchlist) angegebenen Domänennamen hinzu. 26 Optionen • vc: Standardmäßig nutzt nslookup UDP-Pakete zur Kommunikation mit dem Server. Beim Setzen dieser Option wird eine TCP-Verbindung (vc = virtual circuit) verwendet. • port=53: Standardmäßig ist der DNS-Service über Port 53 zu erreichen. Mittels dieser Option kann ein Name Server auch auf einem anderen Port angesprochen werden. • querytype=A: Standardmäßig sucht nslookup nach Address (A) Resource Records. Mittels dieser Option kann auf andere Resource Record-Typen umgeschaltet werden. Bei Eingabe einer IP-Adresse wird diese invertiert, mit inaddr.arpa verknüpft und entsprechend nach PTR-Daten gesucht. • root=a.root-server.net.: Stellt den Default-Server auf den angegebenen Name Server um. • domain=fx.movie.edu: Gibt die Default-Domäne an, die bei Verwendung der defname-Option angehängt wird. • srchlist=fx.movie.edu: Ist die search-Option gesetzt, so kann über diese Option die Liste der Domänen angegeben werden, die an Namen, die nicht mit einem Punkt enden, angehängt werden. Die Domänen werden in der Reihenfolge angegeben, in der sie bei der Suche verwendet werden sollen. Sie werden dabei durch ein / getrennt (z.B. fx.movie.edu/movie.edu). Anwendungsbeispiele Suche nach bestimmten Datentypen • Suche nach Adressen % nslookup Default Server: terminator.movie.edu Address: 0.0.0.0 > misery Server: terminator.movie.edu Address: 0.0.0.0 Name: misery.movie.edu Address: 192.253.253.2 • Suche nach Namen > 192.253.253.2 Server: terminator.movie.edu Address: 0.0.0.0 Name: misery.movie.edu Address: 192.253.253.2 27 Anwendungsbeispiele Suche nach bestimmten Datentypen • Suche nach MX-Daten > set q=mx > wormhole Server: terminator.movie.edu Address: 0.0.0.0 wormhole.movie.edu wormhole.movie.edu wormhole.movie.edu preference=10, mail exchanger = wormhole.movie.edu internet address = 192.249.249.1 internet address = 192.253.253.1 • Suche nach beliebigen Informationen > set q=any > diehard Server: terminator.movie.edu Address: 0.0.0.0 diehard.movie.edu diehard.movie.edu diehard.movie.edu internet address = 192.249.249.4 preference=10, mail exchanger = diehard.movie.edu internet address = 192.249.249.4 Zone Transfers Übertragung einer ganzen Zone mittels des ls-Befehls: % nslookup Default Server: terminator.movie.edu Address: 0.0.0.0 > ls movie.edu. @ terminator wormhole 4D IN SOA 4D 4D 4D 4D 4D 4D 4D IN IN IN IN IN IN IN NS A MX NS A A MX terminator root.terminator( 1997080605 ; serial 3H ; refresh 1H ; retry 4w2d ; expiry 1D ) ; minimum terminator 192.249.249.3 10 terminator wormhole 192.249.249.1 192.253.253.1 10 wormhole ... 28 Entwicklung des WWW World Wide Web (WWW) Zugriff auf verknüpfte Dokumente, die über verschiede Rechner im Internet verteilt sind Historie des WWW • Ursprung 1989 im Kernforschungslabor CERN in der Schweiz. • Entwickelt um Daten, Bilder etc. zwischen einer großen Anzahl von geographisch verteilten Projektmitarbeitern via Internet auszutauschen. • Erste textbasierte Version Ende 1990. • Erstes graphisches Interface (Mosaic) Februar 1993, später Netscape, Internet Explorer... • Standardisierung durch WWW-Konsortium (http://www.w3.org). Kommunikation im WWW Verwendet wird das Client-Server-Modell: Client (in Form eines Browsers) • zeigt die aktuell geladene WWW-Seite an • erlaubt das Navigieren im Netz (z.B. durch anklicken eines Hyperlinks) • bietet eine Reihe zusätzlicher Funktionen (z.B. externe Viewer oder Helper Applications). • Ein Browser kann meist auch für andere Dienste genutzt werden (z.B. FTP, Email, News, ...). Server • Prozeß, der WWW-Seiten verwaltet. • wird vom Client aus z.B. durch Angabe eines URL (Uniform Resource Locator = WWW-Adresse) angesprochen. Der Server sendet daraufhin die angeforderte Seite (oder Datei) an den Client zurück. 29 WWW, HTML, URL und HTTP • Das Standardprotokoll zwischen einem Webserver und einem -client ist das Hypertext Transfer Protocol (HTTP). • Die Standardsprache für Webdokumente ist die Hypertext Markup Language (HTML). • Jede Webseite ist über eine einzigartige URL (Uniform Resource Locator) erreichbar (z.B. http : // www-i4.informatik.rwth-aachen.de/education/tcpip). • WWW steht für World Wide Web und meint damit die weltweite Vernetzung der Informationen und Dokumente. WWW, HTTP und Proxies HTTP Client HTTP Proxy HTTP Server Network Intermediate Systems http request chain http response chain • TCP-Verbindung • Kommunikation über HTTP • Benutzung verschiedener Systeme • Optimierung mittels Proxy 30 HTTP HTTP • verwendet den TCP-Port 80 • definiert die zulässigen Anfragen und Antworten • ist ein ASCII-Protokoll • unterstützt persistente und nicht-persistente Übertragung Bei der Anforderung einer Webseite durch den Browser... • fragt dieser den DNS nach der IP-Adresse zum Host • gibt der DNS diese zurück • baut der Browser zur IP-Adresse mit Port 80 eine TCP-Verbindung auf • sendet er den GET-Befehl zu der angegebenen Datei • Der Server sendet diese Datei • Die Verbindung wird getrennt, der Browser zeigt die Datei an • Für jedes eingebettete Objekt wird neue TCP-Verbindung zum entsprechenden Server aufgebaut HTTP - Nachrichtenformat command GET URL http://server.name/path/file.type protocol HTTP server domain name path name file name GET http : // www-i4.informatik.rwth-aachen.de/education/tcpip 31 Surfen im Internet Aufruf von http : // www-i4.informatik.rwth-aachen.de/education/tcpip DNS-Server Bowser PC TCP/IP-Netz WWW-Server Browser fragt DNS nach der IP-Adresse des Servers DNS antwortet Browser öffnet eine TCP-Verbindung zu Port 80 des Rechners Browser sendet das Kommando GET/education/tcpip WWW-Server schickt die Datei tcpip.html zurück Verbindung wird wieder abgebaut. HTTP Request Header Request line: notwendiger Teil, z.B. method sp URL sp version cr header field name : value cr lf header field name : value cr lf : : header field name cr lf GET server.name/path/file.type Header lines: optional, weitere Angaben zum Host/Dokument, z.B. Accept-language: fr : value cr lf lf data Entity Body: optional. Weitere Angaben, falls der Client Daten überträgt (POST-Method) HEAD-Method: der Server antwortet zwar, überträgt aber die erfragten Daten nicht (Debugging) 32 HTTP Response Header version sp status code sp phrase cr header field name : value cr lf header field name : value cr lf : : header field name cr lf Status line: status code und phrase übertragen das Ergebnis einer Anfrage und eine zugehörige Meldung, z.B. 200 OK : value cr lf 400 Bad Request 404 Not Found lf Gruppen von Status-Meldungen: 1xx: Nur zur Information 2xx: Erfolgreiche Anfrage data Entity Body: erfragte Daten 3xx: Umleitung, es müssen weitere erforderliche Aktivitäten durchgeführt werden 4xx: Client-Fehler (Syntax) 5xx: Server-Fehler Proxy Server Ein Proxy ist mehreren Browsern vorgelagert! Nimmt ihnen Aufgaben (Komplexität) ab und macht das Laden von Seiten effizienter! HTTP Browser Proxy Server Internet Server z.B.HTTP Caching von WWW-Seiten • Proxy speichert die zuletzt von den Browsern geladenen Seiten zwischen. Wird eine Seite von einem Browser angefordert, die sich bereits im Cache befindet, so kontrolliert der Proxy (kurze Anfrage), ob sich die Seite seitdem geändert hat. Ja: Lade die Seite ganz normal vom WWW-Server und gib sie an Browser weiter. Nein: Gib die Seite aus dem Cache an den Browser zurück. Unterstützung bei der Verwendung zusätzlicher Protokolle • Ein Browser ermöglicht auch Zugriff auf FTP-, News-, Gopher- oder TELNETServer etc. • Anstatt alle Protokolle im Browser zu implementieren, kann man sie im Proxy realisieren. Der Proxy “spricht“ dann HTTP mit dem Browser und z.B. FTP mit einem FTP-Server. Integration in Firewall • Proxy kann den Zugriff auf bestimmte Web-Seiten sperren (z.B. in Schulen). 33 SNMP - Simple Network Management Protocol Ausgedehnte Netze, viele Hosts und Router... ... Wie diagnostiziert bzw. lokalisiert man Fehler? Systematische Methode zur Überwachung und Verwaltung eines Rechnernetzes: Simple Network Management Protocol (SNMPv2) ManagementStation Host Router A A ManagementProzeß M Drucker A Agent Bridge SNMP-Protokoll A Verwaltete Geräte SNMP - Simple Network Management Protocol Knoten Manager • • • Kommunikation Managed Objects standardisierte Kommunikation zwischen Manager und Agent der Knoten besitzt mehrere “Managed Objects“ (Zustandsvariablen) der Knoten ist eine physikalische, logische oder Applikationsressource 34 SNMP - Simple Network Management Protocol SNMP definiert die Informationen (und deren Format), die jeder Agententyp bereitstellen muß, in ASN.1. Die Sammlung aller möglichen Objekte innerhalb eines Netzes ist eine Datenstruktur: Management Information Base, MIB. Das SNMP-Protokoll definiert die Interaktion der Managementstation mit den Agenten. Proxy-Agenten zur Überwachung von Geräten, die selbst keinen Agenten bereitstellen. Telnet - Entferntes Arbeiten • TCP ermöglicht den transparenten, interaktiven Gebrauch von „entfernten“ Maschinen • verbreitetes Protokoll: TELNET, welches auf einer Client/Server-Kommunikation basiert • Ein „Pseudo-Terminal“ des Servers interpretiert Zeichen, als kämen sie von der eigenen Tastatur • bei Antwort des Servers umgekehrter Weg (Pseudo-Teminal fängt Antwort ab, leitet sie über TCP an den Client weiter, der die Ausgabe am Bildschirm macht • Benutzername und Passwort werden unverschlüsselt übertragen 35 rlogin und rsh als Alternative zu Telnet • rlogin ist eine sehr flexible Alternative zu Telnet. • Vorteile gegenüber TELNET: – Bei rlogin auf einem Trusted Host entfällt die Abfrage des Passworts. – Da ausschließlich unter Unix verwendet, vereinfacht sich die Kommunikation zwischen Client und Server: beide Seiten kennen so etwas wie Standard Input und Output, Standard Error ... – Umgebungsvariablen des Benutzers (z.B. Terminaltyp) werden automatisch übertragen, so daß entfernte Sitzungen große Ähnlichkeit mit lokalen Sitzungen haben. • rsh ist eine Variante von rlogin: – Ziel: Auf einfache Art und Weise einzelne Kommandos auf der Remote Machine auszuführen ( rsh machine command ). – Automatische Authentifizierung erlaubt die Benutzung nicht nur interaktiv, sondern auch aus Programmen heraus (ohne Passwortabfrage). 36