Schicht 7 Anwendungsprotokolle des Internets

Transcription

Schicht 7 Anwendungsprotokolle des Internets
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 my@mailadresse.domän
•
RCPT (an den Empfänger)
RCPT TO: you@deinemailadresse.domä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:<Krogull@abc.com>
/* Sender der Mail */
S: 250 OK
/* Empfänger der Mail */
C: RCPT TO:<Bolke@beta.edu>
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