Schicht 7 Anwendungsprotokolle des Internets
Transcript of Schicht 7 Anwendungsprotokolle des Internets
Schicht 7
Anwendungsprotokolle des Internets
Ethernet TokenRing Token Bus Wireless Lan
Internet-protokolle
Schicht 1/2
FTP Telnet SMTP DNS SNMP TFTPHTTP
UDPTCP ICMPIGMP
IPRARP ARP
Anwendungsprotokolle im TCP/IP-Referenzmodell
Webseiten
Dateitransfer
Virtuelles Terminal
Namensdienst
Netzwerkmanagement
Dateitransfer
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
Anwendungsprotokolle im TCP/IP-Referenzmodell
• 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
FTP - File Transfer Protocol
A BFTP Client FTP ServerConnection Setup TCP (Port 21)FTP Connect to the Server
Login
Login OKPassword
Password OKUser 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 - Bestätigter File-Transfer
Kommando Wirkungopendisconnectusercdlcdpwdget/mgetput/mputbinaryascii
Verbinden zum FTP-ServerBeende die FTP-SitzungSende Benutzerinformationen nach dem Verbindenchange directory auf dem entfernten Rechnerchange directory auf dem eigenen RechnerDrucke das Arbeitsverzeichnis des entfernten RechnersDer Client empfängt ein (bzw. mehrere) DokumentDer Client sendet ein (bzw. mehrere) DokumentSetze den Übertragungmodus auf binarySetze den Übertragungsmodus auf ASCII
dir/ls Liste den Inhalt des entfernten Verzeichnisses aufhelp Hilfedelete
Beende die FTP-Sitzung, AbbruchbyeLösche eine entfernte Datei
FTP - Befehle
1yz Vorläufige positive Antwort: die Aktion wurde gestartet, aber der Clientmuß 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.
2yz
3yz
4yz
5yz
Syntax ErrorInformationDie Meldung bezieht sich auf die Verbindung.Antworten auf login-BefehleNicht festgelegtStatus des Dateisystems
Reply Wirkung
x0zx1zx2zx3zx4zx5z
FTP - Antworten
• 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
TFTP - Trivial File Transfer Protocol
A B
UDP HeaderIP Header
UDP HeaderIP Header
UDP HeaderIP Header
UDP HeaderIP Header
UDP HeaderIP Header
UDP HeaderIP Header Get Path/File Name
Data (512 Bytes)
Data (512 Bytes)
Data (512 Bytes)
UDP HeaderIP Header Ack
UDP HeaderIP Header Ack
Ack
Data (350 Bytes)
TFTP Client TFTP Server
Timeout
TFTP - Ablauf
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).
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
E-Mail über POP3 und SMTP
• Senden von E-Mails mit Hilfe von SMTP• Mailanfragen über POP3• Gateways zu anderen Mailprotokollen
SMTP
Mail Server und Gateway
POP3Proprietary
Mail Protocol
X.400Mail Clients
E-Mail über POP3 und SMTP
• 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
SMTP - Befehlsabfolge
Kommunikation zwischen Partnern (von abc.com nach beta.edu) in Textformder Art:
C: HELO <abc.com> /* Abk. für „Hello“ /*S: 250 <beta.edu> OK /* Server meldet sich */
C: MAIL FROM:<[email protected]> /* Sender der Mail */S: 250 OK
/* Empfänger der Mail */C: RCPT TO:<[email protected]>S: 250 OK
C: DATA /* Jetzt kommen die Daten */
S: 354 Start mail input; end with “<crlf>.<crlf>“ on a line by itselfC: From: Krogull @ ..... <crlf>.<crlf> /* ab hier normales
Nachrichtenformat */
SMTP - Beispiel
S: 220 <beta.edu> Service Ready
S: 250 OKC: QUIT
S: 221 <beta.edu> Server Closing/* Beenden der Verbindung */
ReplyCode Bedeutung
211 System status
214 Human information about how to use SMTP
220 <domain> service ready
221 <domain> service closing channel
250 Requested mail action okay, completed
251 User not local, forwarded to forward path
354 Start mail input, end with <CRLF>.<CRLF>
421 <domain> Service not available
450 Requested action aborted; mailbox unavailable
451 Requested action aborted; error in processing
452 Requested action aborted; insufficient storage
504 Command parameter not implemented
ReplyCode Bedeutung
500 Syntax error, command unrecognised
501 Syntax error, in parameters or arguments
550 Requested action not taken; mailbox unavailable
551 Requested action not taken; error in processing
552 User not local; please try <forward path>
553 Action not taken; mailbox name not allowed
503 Bad sequence number
502 Command not implemented
554 Transaction failed
SMTP - Antwortcodes
PC
Client(Agent-Terminal)
POP3-Server
TCP/IP-Netz
Commands
Replies
TCP Verbindung Port 110
Greeting
POP3-ProzeßAbholen der E-Mails vom Server mittels POP3: • Authorisierungsstatus:
USER name PASS string
• TransaktionsstatusSTATLIST [msg]RETR msgDELE msgNOOPRSETQUIT
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.
Top LevelDomain de
rwth-aachen
informatik
blaubaer.informatik.rwth-aachen.de
Internetadressen sind für Menschen schlecht zu merken, aber Rechner können damit perfekt umgehen.
Symbolische Name sind für Menschen einfacher zu handhaben, aber Maschinen können leider damit nichts anfangen.
DNS - Domain Name Service
1. DNS handhabt die Abbildung von Rechnernamen auf Adressen2. DNS ist eine verteilte Datenbank, d.h. die einzelnen Segmente unterliegen
einer lokalen Kontrolle3. Daten jedes lokalen Segments sind mittels einer Client/Server-Architektur im
gesamten Netzwerk verfügbar4. Robustheit und Geschwindigkeit des Systems werden durch Replikation und
Zwischenspeicherung (engl. Caching) erreicht5. Hauptkomponenten:
– Name Server: Server, die Informationen über ein Segment der Datenbank verwalten
– Resolver: Clients, die Anfragen an die Server stellen
NameServerResolver
Anfrage
Antwort
DNS - Grundlagen
User Request
ResolverUserResponse
SharedDatabase
UserProgram
References
Requests
Responses
Requests
Responses
AdministrativeRequests
Administrative Responses
RemoteName Server
RemoteResolver
RemoteName Server
NameServer
MasterFiles
ReferencesUpdates
DNS - Funktionsweise
• 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
Generic Länder
Oxford
cs
se de
rwth-aachen
informatik
Struktur der Datenbank
• 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
Domänennamen
• 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
“ “
comedu gov mil
berkeley
vom Network InformationCenter verwaltet
von der UC Berkeleyverwaltete Domäne berkeley.edu
Verwaltung einer Domäne
• 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
“ “
caor
nv
ba la
oakland rinkon
IP-Adresse: 192.2.18.44
Index der Datenbank
die mit einem Domänennamen assoziierten Daten werden in sogenannten Resource Records (RR) gespeichert
• Rechner können einen oder mehrere Zweitnamen (engl. Domain Name Alias) besitzen
• Zweitnamen sind Zeiger von einem Domänennamen (Alias) zu einem anderenDomänennamen (kanonischer Domänenname)
“ “
caor
nv
ba la
oakland rinkon
IP-Adresse: 192.2.18.44
mailhub
Zweitnamen
• 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
Namensraum
• Geschwisterknoten im Baum, d.h. Knoten mit demselben Vaterknoten, müssen unterschiedliche Label haben
• hierarchischer Namensraum verhindert das Auftreten von Kollisionen
“ “
cail
pa lg
hobbes hobbes
hobbes.pa.ca.us
us
mpk
hobbes
hobbes.pa.ca.usverboten
hobbes.lg.ca.us
Namenskollisionen
• 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.
Domänen
• ursprünglich wurde der Namensraum in sieben Top-Level Domänen eingeteilt:1. com: kommerzielle Organisationen2. edu: pädagogische Organisationen3. gov: Regierungsorganisationen4. mil: militärische Organisationen5. net: Netzwerkorganisationen6. org: nicht-kommerzielle Organisationen7. 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.
Top-Level Domänen
• lithium.cchem.berkeley.edu
Rechner College of Chemistry U.C. Berkeley pädagogische Organisation
• winnie.corp.hp.com
Rechner corporate headquaters Hewlett-Packard kommerzielle Organisation
• fernwood.mpk.ca.us
Rechner Menlo Park California U.S.
Beispiele für Domänennamen
• daphne.ch.apollo.hp.com
Rechner Chelmsford Apollo Hewlett-Packard kommerzielle Organisation
• 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
Name-Server und Zonen
edu
com org
berkeley
• Domäne und Zone sind unterschiedliche Konzepte:
nwu
purdue
Delegationedu Domäne
berkeley.edu Zone purdue.edu Zone
edu Zone
“ “
Domänen und Zonen
• 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
Zonen und Delegation
• 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
Typen von Name-Servern
• 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
Daten-Files
• 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-LevelDomä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
Namensauflösung
Beispiel: “ “
au
gov
sa
sgnz
edu
ips gbrmpa
gbrmpa.gov.auName Server
gov.auName Server
auName Server
“ “Name Server
NameServer
Resolver
Anfrage nach Adresse vongirigiri.gbrmpa.gov.au
Anfrage nach Adresse vongirigiri.gbrmpa.gov.au
Anfrage nach Adresse vongirigiri.gbrmpa.gov.au
Anfrage nach Adresse vongirigiri.gbrmpa.gov.au
Verweis auf auName Server
Verweis auf gov.auName Server
Verweis auf gbrmpa.gov.auName Server
Adresse vongirigiri.gbrmpa.gov.au
Anfra
ge
Antwort
Namensauflö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
Rekursive 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
Resolver
A
BC
D
Name Server
Anfrage
Antwort
Anfra
ge
Anfrag
e
Anfrage
Antwort
Verweis
Verweis
1
23
4
5
6
7
8
Iterative Auflösung
• 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 IP-Adressen (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)
Abbildung von Adressen auf Namen
in-addr
arpa
15
“ “
16
192
152
0 255
0 255
0 255
0 255
hostname winnie.corp.hp.com
Abbildung von Adressen auf Namen
• 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
Caching & Time To Live
• 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
Daten-Files & Resource Records
• 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 . -> @)
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 Refresh-
Zeit 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.
SOA-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
NS-Record
• A = Address• CNAME = Canonical Name• Einrichten der Name-to-Address-Abbildung• Bsp. (Datei db.movie) :
; Host addresses
localhost.movie.edu. IN A 127.0.0.1
robocop.movie.edu. IN A 192.249.249.2
terminator.movie.edu. IN A 192.249.249.3
diehard.movie.edu. IN A 192.249.249.4
misery.movie.edu. IN A 192.253.253.2
shining.movie.edu. IN A 192.253.253.3
carrie.movie.edu. IN A 192.253.253.4
;
; Multi-homed hosts
;
wormhole.movie.edu IN A 192.249.249.1
wormhole.movie.edu IN A 192.253.253.1
;
Address and Alias-Records
;
; Aliases
;
bigt.movie.edu. IN CNAME terminator.movie.edu.
dh.movie.edu. IN CNAME diehard.movie.edu.
wh.movie.edu. IN CNAME wormhole.movie.edu.
wh249.movie.edu. IN A 192.249.249.1
wh253.movie.edu. IN A 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-Recordeingerichtet
Address and Alias-Records
• PTR = Pointer• Einrichten der Address-to-Name Abbildung• Bsp. (Datei db.192.249.249) :
1.249.249.192.in-addr.arpa. IN PTR wormhole.movie.edu.
2.249.249.192.in-addr.arpa. IN PTR robocop.movie.edu.
3.249.249.192.in-addr.arpa. IN PTR terminator.movie.edu.
4.249.249.192.in-addr.arpa. IN PTR diehard.movie.edu.
• Adressen sollten dabei nur auf einen einzigen Namen verweisen, den kanonischen Namen
PTR-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
MX-Record
• 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
nslookup
• der Default-Name-Server ist nets1.rz.RWTH-Aachen.DE, d.h. jede Anfrage wird an diesen Name Server gesendet
– 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ügtnslookup den Namen, die nicht mit einem Punkt enden, die in einer Suchliste (srchlist) angegebenen Domänennamen hinzu.
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) ResourceRecords. Mittels dieser Option kann auf andere Resource Record-Typen umgeschaltet werden. Bei Eingabe einer IP-Adresse wird diese invertiert, mit in-addr.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 derdefname-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).
Optionen
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
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 preference=10, mail exchanger = wormhole.movie.edu
wormhole.movie.edu internet address = 192.249.249.1
wormhole.movie.edu 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 internet address = 192.249.249.4
diehard.movie.edu preference=10, mail exchanger = diehard.movie.edu
diehard.movie.edu internet address = 192.249.249.4
Anwendungsbeispiele
Übertragung einer ganzen Zone mittels des ls-Befehls:% nslookup
Default Server: terminator.movie.edu
Address: 0.0.0.0
> ls movie.edu.@ 4D IN SOA terminator root.terminator(
1997080605 ; serial
3H ; refresh
1H ; retry
4w2d ; expiry
1D ) ; minimum
4D IN NS terminator
terminator 4D IN A 192.249.249.3
4D IN MX 10 terminator
4D IN NS wormhole
wormhole 4D IN A 192.249.249.1
4D IN A 192.253.253.1
4D IN MX 10 wormhole
...
Zone Transfers
World Wide Web (WWW)Zugriff auf verknüpfte Dokumente, die über verschiede Rechner im Internet verteiltsind
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).
Entwicklung des 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.
Kommunikation im WWW
• 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, HTML, URL und HTTP
Network
Intermediate Systems
http request chainhttp response chain
• TCP-Verbindung• Kommunikation über HTTP• Benutzung verschiedener Systeme• Optimierung mittels Proxy
HTTP Client
HTTP Proxy HTTP Server
WWW, HTTP und Proxies
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
GET http://server.name/path/file.type
command URL
protocol
HTTP server domain name
path namefile name
GET http : // www-i4.informatik.rwth-aachen.de/education/tcpip
HTTP - Nachrichtenformat
Aufruf von http : // www-i4.informatik.rwth-aachen.de/education/tcpip
PCBowserTCP/IP-Netz
DNS antwortet
Browser fragt DNS nach der IP-Adresse des Servers
Browser sendet das Kommando GET/education/tcpip
Browser öffnet eine TCP-Verbindung zu Port 80 des Rechners
WWW-Server schickt die Datei tcpip.html zurück
Verbindung wird wieder abgebaut.
DNS-Server
WWW-Server
Surfen im Internet
HTTP Request Header
method URL versionsp sp cr lfheader field name : value cr lfheader field name : value cr lf
header field name : value cr lf
::
cr lf
data
Request line: notwendiger Teil, z.B.
GET server.name/path/file.type
Header lines: optional, weitere Angaben zum Host/Dokument, z.B.
Accept-language: fr
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)
HTTP Response Header
version status code phrasesp sp cr lfheader field name : value cr lfheader field name : value cr lf
header field name : value cr lf
::
cr lf
data
Status line: status code und phraseübertragen das Ergebnis einer Anfrage und eine zugehörige Meldung, z.B.
200 OK400 Bad Request404 Not Found
Gruppen von Status-Meldungen:1xx: Nur zur Information2xx: Erfolgreiche Anfrage
3xx: Umleitung, es müssen weitere erforderliche Aktivitäten durchgeführt werden4xx: Client-Fehler (Syntax)5xx: Server-Fehler
Entity Body: erfragte Daten
Serverz.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 TELNET-
Server 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).
HTTPBrowser
ProxyServer Internet
Ein Proxy ist mehreren Browsern vorgelagert!Nimmt ihnen Aufgaben (Komplexität) ab und macht das Laden von Seiten effizienter!
Proxy Server
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)
Management-Station Host Router Drucker
SNMP-Protokoll
Verwaltete Geräte
Bridge
A
A
A AAgentM
Management-Prozeß
• standardisierte Kommunikation zwischen Manager und Agent• der Knoten besitzt mehrere “Managed Objects“ (Zustandsvariablen)• der Knoten ist eine physikalische, logische oder Applikationsressource
Manager ManagedObjects
Knoten
Kommunikation
SNMP - Simple Network Management Protocol
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.
• 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
Telnet - Entferntes Arbeiten
• 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 soetwas 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).
rlogin und rsh als Alternative zu Telnet