Folien

Werbung
Einführung:
Grundlegende Design-Prinzipien des
Internet
Ursprüngliche Entwurfsentscheidungen
• Paketvermittlung
– damals eine neue Technik, im ARPANET erforscht
• Hohe Verfügbarkeit des Netzes
– Datengrammtechnik (vs. virtual circuit)
– wenig Zustandsinformation im Netz
– verteilte Verwaltung
• Soll viele verschiedene Dienste unterstützen können
– Internet Protocol (IP) als Netzwerkprotokoll
– Transmission Control Protocol (TCP), User Datagram Protocol
(UDP) als Transportprotokolle (-> Bezeichnung TCP/IP)
– Anwendungen direkt auf Transportprotokolle aufgesetzt
• Netzverbund mit heterogenen Teilnetzen
– Minimale Anforderungen an die Subnetze (bez.
Zuverlässigkeit, Durchsatz, etc.), Fragmentierungsfunktion in
IP
• „Offenes System“
– Spezifikation offen gelegt und unter öffentlicher Kontrolle
Schichtenarchitektur von TCP/IP
Dienstschnittstellen
E-mail
File
Transfer
Transmission Control
Protocol (TCP)
World
Wide
Web
Verteilte
Spiele
GebäudeSteuerung
User Datagram Protocol
(UDP)
Internet Protocol (IP)
Physikalische Subnetze (Hardware, Firmware)
Dienstschnittstellen
• zur Anwendung: nicht standardisiert,
anwendungsabhängig
• zu den Transportprotokollen: De-facto Standard
(socket-Schnittstelle)
– Dienst von UDP: Verbindungslos, unzuverlässig
– Dienst von TCP: Verbindungsorientiert, zuverlässig
• zu IP: Eingschränkt auf Super-User /
Systemprogramme, via raw socket
– Verbindungslos, unzuverlässig
• zu den phys. Subnetzen: Netz- und implementationsabhängig, oft jedoch IEEE 802.x
Geschichte des Internet (I)
• Baut auf Forschung im
Bereich Paketvermittlung auf
(Arpanet, ca. ab 1967)
• 1973: Bob Kahn postuliert
eine neue Architektur,
basierend auf Konzept
Netzverbund
• 1973/74: Implementation des
Konzepts in der Gruppe von
Vint Cerf in Stanford; erstes
Internet mit 3 Netzen
• 1977: Einbindung des Arpanet
• Ab ca. 1980: Arpanet ist
wichtiger Backbone des
wachsenden Internet
• 1983: TCP/IP als Standard
für das US-DoD verankert
• DARPA-finanzierte
Implementation von TCP/IP
(entwickelt von BBN) und
deren Integration in Berkeley
UNIX (BSD); socketSchnittstelle.
Geschichte des Internet II
• 1986: NSFNET in USA als
Rückgratnetz von neuen
regionalen Netzen
• Ab 1987: Aufbau von TCP/IPNetzen in Europa und
Australien - weltweites
Internet
• ca. 1988/89: Aufbau und
Anschluss des
Schweizerischen akad.
Forschungsnetzes (SWITCH)
an das Internet.
Rückgratnetz mit 2 Mbit/s!
• 1990: Übergang von 56 kbit/s
auf 1.544 Mbit/s (T1) für
Leitungen des NSFNET
• 1990: Mehr als 3000 Netze
und 200‘000 Hosts
• 1992: Übergang auf 45
Mbit/s im Backbone im
NSFNET; Start der Entw. von
IP next generation
• 1994/95: Explosion des
Internet nach der
„Erfindung“ des WWW
• Seither: Triebfeder der
Informationsgesellschaft
Standardisierungsprozess: Dokumentation
• Request for Comment (RFC): Reihe von elektronisch
zugänglichen Publikationen, welche das Internet
beschreiben.
• Frühere Reihe von Publikationen: Internet Engineering
Notes (IEN). Nicht mehr weitergeführt
• Internet Drafts (ID): Diskussions- und
Entwurfsdokumente für die Standardisierung, zeitlich
beschränkge Gültigkeit.
• Dokumentation ist vollständig im Internet verfügbar.
Adressierung
Address Resolution Protocol
Das IP Protokoll
Konzept und Architekturmodell des Internet
"The TCP/IP internet protocols treat all networks
equally. A local area network like an Ethernet, a wide area
network like the NSFNET backbone, or a point-to-point
link between two machines each count as one network."
(D. Comer)
Internet
Internet
Physikalisches
Netz
Router
Rechner
Rechner
Konzept und Architekturmodell des Internet IV
• Das Internet beruht auf dem Zusammenschluss von
teilautonomen Subnetzen mittels Verbindungsrechnern
(Routern).
• Router leiten den Datenverkehr gemäss einer
Netzwerkadresse, nicht einer Endsystemadresse.
• Diese Form der Datenweiterleitung ist transparent für
Benutzer.
Netzwerk 1
R1
Netzwerk 2
R2
Netzwerk 3
Adressierung im Internet: Adresstypen
01234
Klasse A
0
Klasse B
10
Klasse C
110
Klasse D
1110
Klasse E
11110
8
16
NetzID
24
31
RechnerID
NetzID
RechnerID
NetzID
Multicast Adresse
Reserviert für spätere Verwendung
RechnerID
Adressierung im Internet: Darstellung
• Darstellung als 4 Oktette in Dezimalnotation,
getrennt durch einen Punkt, z.B. 129.132.66.1
• Klasse A
zwischen 1 und 126
• Klasse B
zwischen 128.1 und 191.254
• Klasse C
zwischen 192.1.1 und 223.254.254
• Um ein Netz zu adressieren, wird der Rechnerteil
einer Adresse auf Null gesetzt, z.B. B-Netz der ETH:
129.132.0.0
• Um alle Rechner in einem Netz zu erreichen
(Broadcast), wird der Rechnerteil auf 1 gesetzt, z.B.
129.132.255.255
Adressierung im Internet: Spezielle Adressen
• Eine Null in einem Teil der Adresse bezeichnet per
Konvention den lokalen Rechner bzw. das lokale Netz.
• Die Adresse 127.0.0.0 (oft auch 127.0.0.1) ist der
"lokale loopback" eines Rechners.
Lokaler Rechner
Alles Null
Alles Null
Rechner
Alles Eins
Rechner auf lokalem Netz
Beschränkter Broadcast (auf lokalem Netz)
Netz
Alles Eins
Gerichteter Broadcast für "Netz"
127
Beliebig
Lokaler Loopback
Adressierung im Internet: Namensautorität und Subnetze
•
Die Adressautorität im Internet wird durch die zentrale Vergabe von
Netzadressen durch das NIC in den USA ausgeübt.
•
Um die Freiheit der lokalen Konfiguration zu erhöhen, und die Anzahl
vergebener Netzadressen zu minimieren, ist die Verwendung lokaler
Subnetz-Masken zur internen Unterteilung des Rechner-Teils der
Adresse möglich.
01234
8
16
Klasse B
10
NetzID
Subnetz
10
NetzID
16 Bits
24
31
RechnerID
Subnetz
n Bits
RechnerID
16-n Bits
Subnetz-Maske
Beispiel: Netz 129.132.0.0, Maske 255.255.255.192 = 10 Bit Subnetz
Adressierung im Internet: Schwachpunkte
•
Wenn ein Rechner an ein anderes Netz angehängt wird, muss seine
Adresse geändert werden.
•
Die Reihenfolge der Adressbytes ist im Standard festgelegt.
•
Wenn z.B. ein C-Netz auf mehr als 255 Rechner wächst, müssen alle
Rechner auf ein B-Netz migriert werden.
•
Ein Rechner mit mehreren Anschlüssen an das Internet braucht
mehrere Adressen, die auch verschiedene Routen implizieren.
I1
Router
I3
Rechner A
I2
I4
Rechner B
I5
Netz 2
Problem der Adressabbildung
Internet
Physikalisches
Netz
Router
Rechner
Abbildung von IP-Adressen auf
physikalische Adressen
• Gegeben 2 Rechner, die am selben physikalischen Subnetz
angeschlossen sind.
• Beide Rechner haben je eine IP-Adresse, und je eine
physikalische Adresse bezüglich ihres gemeinsamen
Netzes (z.B. eine Ethernet-Adresse).
• Will Rechner A Daten an Rechner B senden, so muss er
anhand der IP-Adresse von Rechner B die EthernetAdresse von Rechner B herausfinden, um die Daten über
das gemeinsame Netz zu senden.
Wege zur Abbildung von IP-Adressen auf
physikalische Adressen
• Direkte Abbildung durch Berechnung aus der IP-Adresse:
dies ist nur in bestimmten Netzen möglich, und auch nur,
solange das Adressierschema in beiden Adressräumen
eingehalten wird.
• Suche der physikalischen Adresse in einem
Verzeichnisdienst anhand der IP-Adresse.
• Dynamische Bindung durch Nachfragen auf dem lokalen
Netz mittels des "Address Resolution Protocol": Rechner
A sendet ein spezielles Broadcast-Paket auf das lokale
Netz, in dem die IP-Adresse von Rechner B angegeben
ist, und in dem nach der physikalischen Adresse von
Rechner B gefragt wird. Rechner B füllt die gesuchte
Adresse ein und sendet das Paket zurück.
Aufbau eines ARP-Paketes
ARP Paket
Frame Kopf
01234
Frame Datenteil
8
16
Hardware Typ
HLEN
PLEN
24
Protokoll Typ
Operationstyp
Sender HA (Bytes 0 bis 3)
Sender HA (Bytes 4 bis 5)
Sender IP (Bytes 0 bis 1)
Sender IP (Bytes 2 bis 3)
Ziel HA (Bytes 0 bis 1)
Ziel HA (Bytes 2 bis 5)
Ziel IP (Bytes 0 bis 3)
31
Aufbau eines IP-Paketes
01234
8
Vers HLEN
16
Diensttyp
Identifikation
Lebenszeit
19
24
Gesamtlänge
Flags
Protokoll
Fragment-Offset
Kopf-Prüfsumme
IP-Adresse des Senders
IP-Adresse des Empfängers
IP-Optionen (falls vorhanden)
Daten
…
"Padding"
31
Länge und Diensttypangabe in einem IP-Paket
• Das Feld HLEN gibt die Länge des IP-Kopfes an. Das
einzige variabel lange Feld sind die IP-Optionen, die
mittels des "Padding-Feldes" wieder auf ein Vielfaches
von 32 gebracht werden.
• Typische Grösse (ohne Optionen) ist 20 Byte (HLEN = 5).
• Diensttyp:
0
1
2
Priorität (0 bis 7)
3
D
4
T
5
R
6
7
nicht benutzt
hohe Verlässlichkeit
hoher Durchsatz
niedrige Verzögerung
Weitere Felder in einem IP-Paket: Fragmentierung
• Die Felder Identifikation, Flags und Fragment-Offset
kontrollieren die Zerlegung zu langer Datenpakete in
mehrere kleinere Pakete.
• Ethernet-Frames können maximal 1500 Bytes lang sein.
Diese Maximalwerte werden als MTU (maximum transfer
unit) bezeichnet.
• Ist ein IP-Paket grösser als die vorhandene MTU, muss
das IP- Paket fragmentiert (zerlegt) werden.
Fragmentierung von IP-Paketen
Rechner A
Netzwerk 1
MTU = 1500
Datagram-Kopf
Rechner B
Netzwerk 2
MTU = 620
R1
R2
Netzwerk 3
MTU = 1500
1400 Bytes Daten
Datagram-Kopf
600 Bytes Daten
600 Bytes Daten 200 Bytes Daten
Fragment-1-Kopf
600 Bytes Daten
Flag "weitere Fragmente" gesetzt
Fragment-2-Kopf
600 Bytes Daten
Flag "weitere Fragmente" gesetzt
Fragment-3-Kopf
200 Bytes Daten
Weitere Felder in einem IP-Paket:
Identifikation, Offset, Flags
• Das Feld "Identifikation" enthält eine eindeutige Nummer
des ursprünglichen IP-Pakets.
• Der Fragment-Offset spezifiziert die Stelle im
ursprünglichen IP- Paket, an dem das aktuelle Fragment
eingesetzt werden muss.
• Mittels des Felds "Flags" kann Fragmentierung verboten
werden, es wird auch zum Signalisieren weiterer
Fragmente benutzt.
• Das Feld "Gesamtlänge" in einem Fragment bezieht sich
auf die Länge des Fragmentes, nicht auf die Länge des
IP-Pakets.
• Einmal fragmentierte Pakete werden erst beim
Empfänger wieder zusammengesetzt (Nachteile:
Zusatzlast und Gefahr von Verlust).
Weitere Felder in einem IP-Paket: Lebenszeit
• Das Feld "Lebenszeit" gibt an, wie lange (in Sekunden) ein
Paket im Internet unterwegs sein darf, bevor es gelöscht
wird. Beim Erstellen des Paketes wird eine Maximalzeit
angegeben, die bei jeder Weiterleitung des Pakets
dekrementiert wird.
• Wird ein Paket in einem Router verzögert, wird ein
entsprechend höherer Wert abgezogen.
• Wird ein Paket wegen "Lebenszeit = 0" vor seiner
Ankunft beim Empfänger gelöscht, muss das löschende
System eine Fehler- meldung an den Urheber des Pakets
zurücksenden.
Weitere Felder in einem IP-Paket: Protokoll,
Prüfsumme, Adressen
• Das Feld "Protokoll" gibt an, welches hierarchisch über IP
liegende Protokoll das Paket erzeugt hat, d.h. in welchem
Format sich die Daten befinden.
• Das Feld Kopf-Prüfsumme dient der Datensicherung, bei
der Bildung der Prüfsumme wird dieses Feld als "0"
angenommen.
• Die Felder mit den IP-Adressen von Sender und
Emfänger haben End-zu-End-Signifikanz, d.h sie werden
nicht verändert, während das Paket durch das Internet
transportiert wird.
Weitere Felder in einem IP-Paket: IP-Optionen
• IP-Optionen
0
1
Kopie
2
Opt. Klasse
3
4
5
6
7
Optionsnummer
•
Das Flag "Kopie" gibt an, ob bei Fragmentierung die Optionen nur im
ersten Fragment, oder in allen Fragmenten gesetzt werden.
•
Optionsklasse
0
1
2
3
Normales Datengramm oder Netzwerk-Kontrolle
reserviert für zukünftige Benutzung
Fehlersuche und Messungen
reserviert für zukünftige Benutzung
Weitere Felder in einem IP-Paket:
Optionale Elemente
• Optionen für Leitweglenkung und Zeitstempel
• Die Option "Wegaufzeichnung" ermöglicht die
Protokollierung des Weges des Pakets durch das Netz im
Optionsfeld des IP-Pakets.
• Die Option für die Wahl des Leitweges ermöglicht es dem
Sender eines IP-Pakets, den Weg zum Empfänger zu
diktieren. Diese Option wird meist zu Testzwecken
benötigt.
• Die Zeitstempel-Option arbeitet ähnlich zur Option
"Wegaufzeich- nung", es wird jedoch ein zusätzlicher
Zeitstempel angegeben. Weitere Flags steuern die
Details der Angabe von Zeitstempeln.
Internet Control Message Protocol
(ICMP)
Einführung in ICMP
• Zur Steuerung und Verwaltung des Internet ist ein
gesondertes Protokoll nötig, welches "normalen"
Benutzern nicht zugänglich ist.
• Typische Aufgaben des Internet-Kontrollprotokolls sind:
• Koordination zwischen Routern und Endsystemen
• Fehlererkennung und -korrektur
• Überwachung und Messung des Verkehrsaufkommens
• ICMP stellt eine Kommunikationsmöglichkeit zwischen der
IP-Software auf Internet-Rechnern zur Verfügung.
• ICMP benutzt den IP-Dienst, gehört logisch aber auf die
selbe Protokollschicht, wie das IP-Protokoll.
ICMP-Meldungstypen
•
•
•
•
•
•
•
•
•
•
•
•
•
0
3
4
5
8
11
12
13
14
15
16
17
18
Echo-Antwort
Destination unerreichbar
"Source Quench"
Änderung einer Route
Echo-Anforderung
Datagram-Lebenszeit überschritten
Parameter-Problem im Datengramm
Zeitstempel-Anforderung
Zeitstempel-Antwort
Informations-Anforderung (nicht mehr benötigt)
Informations-Antwort (nicht mehr benötigt)
Adressmasken-Anforderung
Adressmasken-Antwort
Meldungen über nicht erreichbare Destinationen
• Wenn ein IP-Paket nicht weitergeleitet werden kann, wird
eine entsprechende Fehlermeldung erzeugt.
0
1
2
3
4
5
6
Netz nicht erreichbar
Rechner nicht erreichbar
Protokoll nicht erreichbar
Port nicht erreichbar
unerwünscht
Fragmentierung benötigt
unerreichbar
Falsche Quell-Route
unerreichbar
Zielnetz unbekannt
0
8
Typ (3)
7
8
9
10
Zielrechner unbekannt
Zielrechner isoliert
Netzkommunikation unerwünscht
Rechnerkommunikation
11 Netz für diesen Dienst
12 Rechner für diesen Dienst
16
Code (0-12)
24
Prüfsumme
Unbenutzt, muss Null sein
Internet-Kopf und erste 64 Bit des Datengramms
31
Automatische Konfiguration mit dem
Dynamic Host Configuration Protocol
(DHCP)
Wozu DHCP?
• Automatische Konfiguration von Hosts
• Zu konfigurierende Parameter:
–
–
–
–
–
–
IP-Adresse
Gateway- (Router-) Adressen
IP-Maske (Subnetting)
Adressen der DNS-Server
Link MTU, default time-to-live
… und sehr viel mehr, s. Appendix A von RFC 2131
• Ohne DHCP: Einstellung von Hand (NetzwerkKontrollfeld in Windows, Registry, oder nicht
einstellbar
• Unangenehm: Bei einer Konfigurationsänderung von
Hand muss Windows (95, 98) neu gestartet werden
Aufbau einer DHCP-Nachricht
op-Operation
htype
hlen
xid-Transaction ID
hops
secs-Sekunden seit Beginn
Flags
ciaddr-Client-Adresse (falls schon zugewiesen)
yiaddr-Neu zugewiesene Client-Adresse
siaddr-Adresse des Bootstrap-Server
giaddr-Adresse des Relay-Agent
chaddr-Hardware-Adresse des Client (16)
sname-Hostname des Servers (optional) (64)
file-Bootstrap-Filename (128)
Optionen (variabel lang)
Typischer Ablauf des DHCP-Protokolls
Server (nicht gewählt)
Client
Bestimmt
Konfiguration
Bestimmt
Konfiguration
Wählt aus
Client ist konfiguriert
t
Server (gewählt)
Die Transportprotokolle:
Transmission Control Protocol (TCP) User
Datagram Protocol (UDP)
Die Socket-Schnittstelle
Einführung in TCP
• TCP implementiert ein verbindungsorientiertes,
zuverlässiges Transport- Protokoll, aufbauend auf dem
IP-Dienst.
Dienstschnittstellen
E-mail
File
Transfer
Transmission Control
Protocol (TCP)
World
Wide
Web
Verteilte
Spiele
GebäudeSteuerung
User Datagram Protocol
(UDP)
Internet Protocol (IP)
Physikalische Subnetze (Hardware, Firmware)
Adressierung von Anwendungsprozessen:
Beispiel TCP/IP - Portnummern
AP1
37
AP2
AP3
Port56
1245
Nummern
Internet
4
Physikalisches
Netz
UDP
Proto=17
3
IP
Router
Rechner
Koordination der global zugeordneten Ports
• Internet Assigned Numbers Authority (IANA):
Zuständig für Vergabe von Konstanten in TCP/ IPProtokollen (port numbers, protocol numbers, ...) – neu
unter der Verantwortung von ICANN
• Bereich 0.. 1023: Für globale "well known" ports,
kontrolliert von der IANA
• Bereich 1024 .. 65535: Frei für dynamische Allozierung
durch Prozesse oder für statische Allozierung mit
lokaler Bedeutung
– Registrierung durch IANA ist optional
• Aktuelle globale / statische Zuordnungen:
http://www.iana.org/assignments/port-numbers
Well-known port numbers:
/etc/services (Auszug)
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, “Assigned Numbers”
echo
echo
discard
discard
ftp-data
ftp
telnet
smtp
time
time
nameserver
whois
domain
domain
7/tcp
7/udp
9/tcp
9/udp
20/tcp
21/tcp
23/tcp
25/tcp
37/tcp
37/udp
42/tcp
43/tcp
53/tcp
53/udp
sink null
sink null
mail
timserver
timserver
name
nicname
nameserver
nameserver
# IEN 116
# name-domain server
Eigenschaften des
Transmission Control Protocol (TCP)
• verbindungsorientiert
• Vollduplex-Verbindung
• stellt eine “byte pipe” zur Verfügung unstrukturierter Datenstrom
• Sliding Window-Protokoll
• Folgenummern sind Bytenummern
• Maximale Fenstergrösse 216 Bytes
• Variable Grösse des Sendefensters bestimmt
durch das Maximum von:
– Angabe des Empfängers (receiver window size)
– Congestion window size, abhängig von einer
lokalen Schätzung der Netzbelastung -> “Slow
Start” Algorithmus
TCP-Segmentformat
0
4
10
16
Port des Senders
24
Port des Empfängers
Sequenznummer im Bytestrom des Senders
Bestätigungsnummer (ACK in Gegenrichtung)
HLEN Reserviert Code Bits
Grösse des Emfängerfensters
Prüfnummer (auch über Daten)
Optionen (falls vorhanden)
Dringlichkeitszeiger
"Padding"
Daten
…
• Code Bits: URG, ACK, PSH, RST, SYN, FIN
• Dringlichkeitszeiger: zeigt auf das Ende der
dringenden Daten im TCP-Datenfeld.
31
Verbindungsaufbau
• Aktives Öffnen einer Verbindung (SYN)
• Passive Seite nimmt eine Verbindung auf einer
bestimmten Port-Nummer entgegen
• Die initialen Sequenznummern werden auf jeder
Seite zufällig gewählt und bestätigt.
• 3-fach-Handshake (nötig wegen des
unzuverlässigen Dienstes von IP):
Sende
SYN seq=x
Empf. SYN
Sende SYN
seq=y, ACK x+1
Empf. SYN + ACK
Sende ACK y+1
Empf. ACK
Verbindungsaufbau, zwei Fehlerszenarien
altes Duplikat
altes Duplikat
altes Duplikat
wird
verworfen
Abbau einer TCP-Verbindung
• Aktive Seite (links) schliesst Verbindung mit FIN-Flag
• Neue Daten werden nicht mehr übertragen, von rechts
ankommende Daten werden jedoch noch bestätigt.
• 4-fach-Handshake; jede Seite wird separat beendet (TCP
half close)
Sende
FIN seq=x
Empf. FIN
Sende ACK x+1
Empf. ACK
Applikation informieren
Sende FIN, ACK x+1
Empf. FIN + ACK
Sende ACK y+1
Empf. ACK
Segmente, Datenströme und Sequenznummern
•
TCP betrachtet einen Datenstrom als Sequenz von Bytes, die für die
Übertragung in TCP-Segmente eingeteilt werden. Jedes Segment
wird dann in der Regel auf ein IP-Paket abgebildet. (Grösse eines
Segmentes bei lokaler Übertragung gemäss physikalischem Netz,
sonst 536 Bytes)
•
TCP verwendet ein "sliding window" Protokoll, um möglichst effizient
Daten zu übertragen, und Flusskontrolle zu ermöglichen. Bei einer
Vollduplex-Verbindung müssen insgesamt 4 Fenster verwaltet
werden.
1
2
3
4
5
6
7
8
9
10
11
Variable Fenstergrössen
• Die Fenstergrösse im TCP "sliding window" Protokoll kann
variiert, d.h. an den "Füllstand" des Netzes bzw. des
Empfängers angepasst, werden.
• Flusssteuerung
– Jedes Bestätigungspaket enthält einen "window
advertisement" Wert, in dem der Empfänger angibt, für
wieviele weitere Pakete er noch freie Kapazität hat (das
Fenster kann also grösser oder kleiner werden).
• Verkehrssteuerung
– Jacobsen's "slow start" Algorithmus variiert die Grösse
des Sendefensters, um die Senderate an die
Netzbelastung anzupassen (s. Folie 18).
Slow Start Algorithmus
Linear ansteigende
Fenstergrössse
congestion window size
(in Segmenten)
timeout
20
15
ssthresh
10
5
0
0
Exponentiell
ansteigende
Fenstergrösse
5
10
15
Anzahl round trip times
20
Verbindungen und
Verbindungsendpunkte
Eine TCP-Verbindung wird durch ein Paar von Adressen
und Port-Nummern identifiziert
(Verbindungsendpunkte):
• IP-Adresse und Port-Nummer Host A
• IP-Adresse und Port-Nummer Host B
Jede Verbindung wird durch ein Paar von
Verbindungsendpunkten eindeutig identifiziert ->
mehrere Verbindung zwischen den gleichen Hosts sind
dadurch gleichzeitig möglich.
Identifikation von Verbindungen
Host A
(Client-Maschine)
Host B
(Server-Maschine)
Daemon
(tcp, *, 23)
Client 1
(tcp, A, 1055, B, 23)
(tcp, A, 1055)
Client 2
(tcp, A, 1056)
Server 1
(tcp, B, 23) fork
(tcp, A, 1056, B, 23)
Server 2
(tcp, B, 23)
Routing
Distanzvektor Routing
• Jeder Router sendet einen Vektor mit den kürzesten Distanzen
zu allen erreichbaren Netzadressen an seine Nachbarn.
• Ein Router führt seine Tabellen nach, falls er von einem Nachbarn
erfährt, dass eine Netzadresse auf kürzerem Weg erreicht
werden kann.
• Der Distanzvektor wird periodisch gesendet oder immer, wenn die
Tabellen nachgeführt werden müssen.
Distanzvektor Routing Beispiel
1
C
3
B
4
4
A
3
2
E
D
3
Knoten A
Destination Distanz Nächster Knoten
B
4
B
C
3
C
E
2
E
D
8
B
5
E
Routing Updates:
B->A: [(D,4) (E,3) (C,1) (A,4)]
E->A: [(D,3)(B,3)(A,2)]
Implementation: RIP-2
– IETF RFC-2453
– RIP verteilt erreichbare Netzadressen mit zugehöriger
Distanz (Anzahl Hops) an Nachbarn.
– Sendet Information alle 30 Sekunden oder immer, wenn die
Forwardingtabelle geändert werden musste.
– Maximaler Netzdurchmesser beträgt 15 Router (Hops), um die
Konvergenzzeit zu begrenzen (count to infinity Problem).
– RIP-2 verwendet UDP mit Port 520.
– Nur ein einzelner Pfad pro Zieladresse ist gespeichert. Kein
Lastausgleich möglich.
– Die meisten UNIX Systeme haben RIP eingebaut (routed).
Subnetting
• Die Adressautorität im Internet wird durch die zentrale
Vergabe von Netzadressen durch das NIC in den USA
ausgeübt.
• Um die Freiheit der lokalen Konfiguration zu erhöhen, und
die Anzahl vergebener Netzadressen zu minimieren, ist
die Verwendung lokaler Subnetz-Masken zur internen
Unterteilung des Rechner-Teils der Adresse möglich.
01234
8
16
Klasse B
10
NetzID
Subnetz
10
NetzID
16 Bits
24
31
RechnerID
Subnetz
n Bits
RechnerID
16-n Bits
Subnetz-Maske
Beispiel: Netz 129.132.0.0, Maske 255.255.255.192 = 10 Bit Subnetz
Network Address Translation (NAT)
Prof. B. Plattner
Voraussetzungen für die Umsetzung
• Internet-Adressraum muss einen Teil mit global
eindeutigen und einen Teil mit wiederverwendbaren,
lokalen Adresssen aufgeteilt werden
• Wiederverwendbar, nur lokal geroutet:
– Klasse A: Netz 10.0.0.0 (10/8)
– Klasse B: Netze 172.16.0.0 bis 172.31.0.0 (172.16/12)
– Klasse C: Netze 192.168.0.0 bis 192.168.255.0
(192.168/16)
• Lokale Adressen werden nach aussen nicht bekannt
gemacht, nur die zugehörigen globalen Adressen
• Routing-Protokoll innerhalb des Intranet arbeitet mit
den lokalen Adressen
Beispiel: Basic NAT
Internet
(via ISP)
Edge Router
mit NAT
NAT
Zugangsrouter
des ISP
212.34.87.4
212.34.87.18
212.34.87.25
192.168.1.4
192.168.1.2
192.168.1.3
Intranet
Mehrere private Hosts, eine externe Adresse
• Eine einzige IP-Adresse wird mehreren Hosts
zugeordnet
• Neben den IP-Adressen müssen auch Port-Nummern
übersetzt werden
212.145.45.23
192.168.0.5:1234
205.244.37.56:80
Web-Server
Host
205.244.37.56
192.168.0.5
NAT
!
212.145.45.23:1234
205.244.37.56:80
Host
192.168.0.6
192.168.0.6:1234
205.244.37.56:80
Network Address and Port Translation
212.145.45.23:5566
205.244.37.56:80
212.145.45.23
192.168.0.5:1234
205.244.37.56:80
Web-Server
205.244.37.56
Host
192.168.0.5
NAT
!
212.145.45.23:5567
205.244.37.56:80
Host
192.168.0.6
192.168.0.6:1234
205.244.37.56:80
NAT ordnet neue Port-Nummern zu
Domain Name System (DNS)
Motivation: E-mail-Infrastruktur des
Internet
Absender
Empfänger
DNS
server
SMTP
server
Internet
E-mail
client
Mail-exchangeabfrage
E-mail
client
POP
SMTP
SMTP
server
DNS
server
SMTP: Simple Mail Transfer Protocol
POP: Post Office Protocol
Adressabfrage
POP
server
Benennbare Objekte, Syntax und Abbildung
auf Adressen
• DNS-Namen können auf verschiedenartige Objekte abgebildet
werden, z.B Rechneradressen, e-Mail-Adressen usw.
• Ein Eintrag "dn1.ethz.ch" kann also einen einzelnen Rechner
bezeichnen, und ”inf.ethz.ch" ein e-Mail-Domain. Dem Namen sieht
man diesen Unterschied nicht an.
• Verschiedene DNS-Namen können
auf das gleiche Objekt abgebildet
root
werden (alias).
tik.ee.ethz.ch
top level domain
second
level domain
subdomains
.edu
.com
.gov
ucb
dec
nsf
...
.ch
ethz
Administration des Namensraums und
Betrieb des DNS
• Zone: Unterbaum des Namensraums, der als Einheit verwaltet
wird, z.B. ein second-level domain wie ethz.ch.
• Zonen können in untergeordnete Zonen aufgeteilt werden.
• Ein primary name server ist für eine oder mehrere Zonen
zuständig (authoritative name server). Primary name servers
werden aus einer Datenbank (Textfile) geladen.
• Einer oder mehrere redundante secondary name servers erhöhen
die Verfügbarkeit . Secondary name servers werden vom primary
geladen (zone transfer).
• Secondary name servers sind für Betreiber von Zonen
obligatorisch
• root server binden die oberste Ebene des DNS zusammen. Jeder
name server muss die IP-Adressen der root server kennen.
Liste der root servers
/netinfo/root-servers.txt
Sep 97
The following hosts are functioning as root domain name
servers for the Internet:
HOSTNAME
NET ADDRESSES
SERVER PROGRAM
A.ROOT-SERVERS.NET
B.ROOT-SERVERS.NET
C.ROOT-SERVERS.NET
D.ROOT-SERVERS.NET
E.ROOT-SERVERS.NET
F.ROOT-SERVERS.NET
G.ROOT-SERVERS.NET
H.ROOT-SERVERS.NET
I.ROOT-SERVERS.NET
J.ROOT-SERVERS.NET
K.ROOT-SERVERS.NET
L.ROOT-SERVERS.NET
M.ROOT-SERVERS.NET
198.41.0.4
128.9.0.107
192.33.4.12
128.8.10.90
192.203.230.10
192.5.5.241
192.112.36.4
128.63.2.53
192.36.148.17
198.41.0.10
193.0.14.129
198.32.64.12
202.12.27.33
BIND
BIND
BIND
BIND
BIND
BIND
BIND
BIND
BIND
BIND
BIND
BIND
BIND
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
(UNIX)
Namensauflösung
• Die Namensauflösung wird logisch immer an der Wurzel des Baums
gestartet, und arbeitet dann "abwärts”.
• Die Namensauflösung wird durch einen DNS Client (DNS resolver),
der in die Applikation eingebunden ist, initiiert.
• Abfragen
– gezielt an einzelne name server
– rekursiv an das ganze DNS
• Erhält ein Namens-Server eine Anfrage, prüft er, ob der Name in
seinem eigenen Unterbaum liegt. Wenn ja, kann er die Anfrage
beantworten, sonst kann er die Abfrage an den nächsthöheren
Server oder einen root server weiterleiten.
• Ein Abfrage-Klient (resolver) muss also nur die Adresse eines
(bzw. "seines") Namens-Servers kennen (/etc/resolv.conf).
Namensraum für inverse Abfragen
root
arpa
edu
com
ch
net
in-addr
35
129
second level
192
...
...
...
132
66
top level
42
42.66.132.129.in-addr.arpa
Objekttypen in DNS
Typ
Bezeichnung
Inhalt
A
Hostadresse
32-Bit IP-Adresse
CNAME
Kanonischer Name
Domainname für ein Alias
HINFO
CPU und Betriebssystem
Informationen über den Host
MINFO
E-Mail Information
Informationen über Mailbox
MX
E-Mail Exchanger
diese
16-Bit Präferenz und Name des Host, der für
Domain als Mail-Server fungiert
N
Namens-Server
Domain
Name des verbindlichen Servers für diese
PTR
"Pointer"
Domainname
SOA
Namensautorität
der
Mehrere Felder, die angeben, für welche Teile
Namenshierarchie der Server zuständig ist
TXT
Beliebiger Text
Nicht interpretierte ASCII-Zusatzinformation
Simple Mail Transfer Protocol (SMTP)
SMTP - Simple Mail Transfer Protocol
R: 220 BBN-UNIX.ARPA Simple
Mail Transfer Service Ready
S: HELO USC-ISIF.ARPA
R: 250 BBN-UNIX.ARPA
S: MAIL FROM:
<[email protected]>
R: 250 OK
S: RCPT TO:
<[email protected]>
R: 250 OK
S: RCPT TO:
<[email protected]>
R: 550 No such user here
S: RCPT TO:
<[email protected]>
R: 250 OK
S: DATA
R: 354 Start mail input; end with
<CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK
S: QUIT
R: 221 BBN-UNIX.ARPA Service
closing transmission channel
RFC 822 Mail Header
Return-Path: <[email protected]>
Received: from mx9.bluewin.ch (172.21.1.119) by mssbzhh-int.msg.bluewin.ch (Bluewin AG 7.0.020)
id 3F710B1C021302F6 for [email protected]; Wed, 22 Oct 2003 21:05:22 +0000
Received: from tik6.ethz.ch (129.132.119.136) by mx9.bluewin.ch (Bluewin AG 7.0.020)
id 3F94F1B00008ACED for [email protected]; Wed, 22 Oct 2003 21:05:22 +0000
Received: from localhost (localhost [127.0.0.1])
by tik6.ethz.ch (Postfix) with ESMTP id E475B6AE2E
for <[email protected]>; Wed, 22 Oct 2003 23:05:21 +0200 (MEST)
Received: from komtpcbp (vpn-global-dhcp3-036.ethz.ch [129.132.210.36])
by tik6.ethz.ch (Postfix) with ESMTP id 6F99C6AE14
for <[email protected]>; Wed, 22 Oct 2003 23:05:21 +0200 (MEST)
From: "Bernhard Plattner" <[email protected]>
To: <[email protected]>
Subject: test
Date: Wed, 22 Oct 2003 23:05:21 +0200
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.2627
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Importance: Normal
X-Virus-Scanned: by AMaViS new-20020517
Firewalls
Firewalls: Zwei Varianten
Internet
Firewall 1
Protecte
d
internal
network
Firewall 2
DD
NN public
SS servers
Variant 1
(DMZ – „de-militarized zone“)
Firewall
Ruleset 1
Ruleset 2
Internet
DD
NN public
SS servers
(DMZ – „de-militarized zone“)
Protected
internal
network
Variant 2
How packets traverse the kernel
Destinatio
n NAT PreRouting
Routing
Forward
Chain
Destinatio
n NAT
PostRouting
Drop
Input
Chain
Drop
Local
Process
Output
Chain
Drop
Herunterladen