3. internet protocol (ip) lernziele: – detailliertes verständnis von ip – praktische...
TRANSCRIPT
3. Internet Protocol (IP) 3. Internet Protocol (IP)
Lernziele:
– Detailliertes Verständnis von IP
– Praktische Einsetzbarkeit dieses Wissens
3.1 Paketformat und Grundlagen3.1 Paketformat und Grundlagen
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 3
RFCsRFCs
J. Postel. Internet Protocol. RFC 791. 1981.J. Postel. Internet Protocol. RFC 791. 1981. J. Mogul and J. Postel. Internet Standard J. Mogul and J. Postel. Internet Standard
Subnetting Procedure. RFC 950. 1985.Subnetting Procedure. RFC 950. 1985.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 4
Hauptaufgabe von IPHauptaufgabe von IP
Übermittlung von Daten von einem SystemÜbermittlung von Daten von einem System
im Internet zu einem beliebigen anderenim Internet zu einem beliebigen anderen
System im Internet. System im Internet.
IP bietet diese Funktionalität als einenIP bietet diese Funktionalität als einen
verbindungslosen und unzuverlässigenverbindungslosen und unzuverlässigen
Datagramm Dienst an.Datagramm Dienst an.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 5
IP PaketformatIP Paketformat
identification
time to live
source IP address
version total lengthtype of service
destination IP address
header checksum
data
hlength
0 7 15 31
flags fragment offset
protocol
options (if any)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 6
IP Header Felder IIP Header Felder I version (4-bits):version (4-bits):
– aktuell IPv4, Nachfolger IPv6aktuell IPv4, Nachfolger IPv6 header length (4 bits): header length (4 bits):
– Anzahl an 32-bit Worten im HeaderAnzahl an 32-bit Worten im Header type-of-service (8 bits):type-of-service (8 bits):
– nur 4 bits werden tatsächlich verwendet:nur 4 bits werden tatsächlich verwendet:• minimize-delay, maximize throughput, maximize minimize-delay, maximize throughput, maximize
reliability, minimize monetary costsreliability, minimize monetary costs– signalisiert den Wunsch des Senders nach einer signalisiert den Wunsch des Senders nach einer
bestimmten Handhabung des Datagrammesbestimmten Handhabung des Datagrammes– keine Garantie!keine Garantie!– weitgehend von Routern ignoriertweitgehend von Routern ignoriert
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 7
IP Header Felder IIIP Header Felder II
total length (16 bits):total length (16 bits):– Gesamtgröße des Datagramms in byteGesamtgröße des Datagramms in byte
identification (16 bits), flags (3 bits), identification (16 bits), flags (3 bits), fragment offset (13 bit):fragment offset (13 bit):– dienen zur Identifizierung der im Datagramm dienen zur Identifizierung der im Datagramm
enthaltenen Datenenthaltenen Daten– werden später bei der Fragmentierung werden später bei der Fragmentierung
behandeltbehandelt
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 8
IP Header Felder IIIIP Header Felder III time-to-live (8 bits):time-to-live (8 bits):
– begrenzt die Anzahl der Router, die durchlaufen begrenzt die Anzahl der Router, die durchlaufen werden dürfen, schützt vor zirkulierenden werden dürfen, schützt vor zirkulierenden DatagrammenDatagrammen
– wird in jedem Router dekrementiertwird in jedem Router dekrementiert– wenn =0 wenn =0 Datagramm wird verworfen Datagramm wird verworfen
protocolprotocol– identifiziert das Protokoll welches das IP identifiziert das Protokoll welches das IP
Datagramm erzeugte (z.B. TCP, UDP)Datagramm erzeugte (z.B. TCP, UDP)– Empfänger kann anhand dieses Feldes das Empfänger kann anhand dieses Feldes das
Datagramm an die richtige Protokollinstanz Datagramm an die richtige Protokollinstanz weiterleiten (demultiplexen)weiterleiten (demultiplexen)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 9
IP Header Felder IVIP Header Felder IV
checksum (16 bits):checksum (16 bits):– wird über den gesamten IP Header berechnetwird über den gesamten IP Header berechnet– Berechnung beim Sender:Berechnung beim Sender:
• setze das checksum Feld auf 0setze das checksum Feld auf 0• XOR über alle 16-bit Worte im HeaderXOR über alle 16-bit Worte im Header• das Ergebnis wird bitweise invertiert und stellt dann das Ergebnis wird bitweise invertiert und stellt dann
den Wert für das checksum Feld dar.den Wert für das checksum Feld dar.
– Check beim Emfänger:Check beim Emfänger:• XOR über alle 16-bit Worte im Header (inkl. XOR über alle 16-bit Worte im Header (inkl.
checksum)checksum)• OK, wenn im Ergebnis alle bits auf 1 stehenOK, wenn im Ergebnis alle bits auf 1 stehen
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 10
IP Header Felder VIP Header Felder V source/destination IP address (32 bits):source/destination IP address (32 bits):
Class A: 0 netid
7 bits
hostid
24 bits
0.0.0.0 - 127.255.255.255
Class B: 0 netid
14 bits
hostid
16 bits
128.0.0.0 - 191.255.255.2551
Class C: 1 netid
21 bits
hostid
8 bits
192.0.0.0 - 223.255.255.25501
Class D: 1 multicast group ID
28 bits
224.0.0.0 - 239.255.255.2551 01
Class E: 1 (reserved for future use)
27 bits
240.0.0.0 - 247.255.255.2551 1 01
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 11
Subnetz Adressierung ISubnetz Adressierung I Class A und Class B Adressen Class A und Class B Adressen mehr Bits mehr Bits
für hostid als nötig (2für hostid als nötig (22222 bzw. 2 bzw. 21616 Hosts) für Hosts) für ein Netzwerkein Netzwerk
Weitere Strukturierung der Adresse:Weitere Strukturierung der Adresse:
Aufteilung der bits subnetid, hostid Aufteilung der bits subnetid, hostid lokal lokal und verschieden für jede netid und verschieden für jede netid
Class B: 0 netid
14 bits
hostid
8 bits
1 subnetid
8 bits
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 12
Subnetz Adressierung IISubnetz Adressierung II subnetid ist ausserhalb eines Netzes nicht subnetid ist ausserhalb eines Netzes nicht
sichtbar, wird nur lokal verwendet (z.B. sichtbar, wird nur lokal verwendet (z.B. innerhalb der Uni Mannheim)innerhalb der Uni Mannheim)
InternetUni-Mannheim
Router134.155.xxx.xxx
subnetid = 15
LAN in L15,16
weitere subnetids
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 13
Subnet Adressierung IIISubnet Adressierung III
subnet masksubnet mask
– identifiziert das subnet einer IP Adresseidentifiziert das subnet einer IP Adresse– muß auf jedem System zu jeder IP Adresse muß auf jedem System zu jeder IP Adresse
vorhanden seinvorhanden sein
Bsp. für Class B:
16 bits
00000000
8 bits
11111111
8 bits
1111111111111111
subnet mask: 0xffffff00=255.255.255.0
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 14
Subnet AdressierungSubnet Adressierung
Eigene IP Adresse + subnetid erlaubt für ein Eigene IP Adresse + subnetid erlaubt für ein IP-Datagramm festzustellen wo der IP-Datagramm festzustellen wo der Empfänger ist:Empfänger ist:– im selben Subnetzim selben Subnetz– im selben Netz aber in anderem Subnetzim selben Netz aber in anderem Subnetz– in anderem Netzin anderem Netz
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 15
Weiteres VorgehenWeiteres Vorgehen
Internet Control Message ProtocolInternet Control Message Protocol IP tools - ping/tracerouteIP tools - ping/traceroute IP-RoutingIP-Routing IPv6IPv6 Wireless IPWireless IP
2.1 Internet Control Message 2.1 Internet Control Message Protocol (ICMP)Protocol (ICMP)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 17
RFCsRFCs
J. Postel. Internet Control Message J. Postel. Internet Control Message Protocol. RFC 792. 1981Protocol. RFC 792. 1981
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 18
ProblemProblem
Man braucht IP um ICMP Nachrichten zu Man braucht IP um ICMP Nachrichten zu übertragen.übertragen.
Man braucht ICMP um IP zu verstehen.Man braucht ICMP um IP zu verstehen. Wir gehen im folgenden davon aus das IP Wir gehen im folgenden davon aus das IP
auf eine später zu beschreibende Art Pakete auf eine später zu beschreibende Art Pakete von einem System zu einem beliebigen von einem System zu einem beliebigen anderen System weiterleiten kann und anderen System weiterleiten kann und erkunden zunächst ICMP. erkunden zunächst ICMP.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 19
ICMP AufgabeICMP Aufgabe
Übertragung von Fehlernachrichten und Übertragung von Fehlernachrichten und Netzwerkspezifischen InformationenNetzwerkspezifischen Informationen– echo request (8)echo request (8)– echo reply (0)echo reply (0)– destination unreachable (3)destination unreachable (3)– timestamp request (13)timestamp request (13)– timestamp reply (14)timestamp reply (14)
ICMP ist Bestandteil jeder IP ImplementierungICMP ist Bestandteil jeder IP Implementierung
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 20
ICMP PacketformatICMP Packetformat
IP header (20 bytes)
0 7 15 31
type checksumcode
content abhängig von type und code
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 21
ICMP Header FelderICMP Header Felder
type: um welche ICMP Nachrichtentyp type: um welche ICMP Nachrichtentyp handelt es sich? Z.B. 3 für destination handelt es sich? Z.B. 3 für destination unreachable.unreachable.
code: um welche Unterklasse handelt es sich? code: um welche Unterklasse handelt es sich? Z.B. type=3 code=0 für network unreachable.Z.B. type=3 code=0 für network unreachable.
checksum: wie für IP berechnet, bezieht sich checksum: wie für IP berechnet, bezieht sich jedoch auf die vollständige ICMP Nachricht jedoch auf die vollständige ICMP Nachricht (nicht den IP header!). (nicht den IP header!).
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 22
Zwei Klassen von ICMP NachrichtenZwei Klassen von ICMP Nachrichten
query: query: – bestehen jeweils aus 2 Typen, einen für request bestehen jeweils aus 2 Typen, einen für request
und einen für replyund einen für reply– wird aktiv benutzt um Informationen von einem wird aktiv benutzt um Informationen von einem
System zu bekommen System zu bekommen – ein Beispiel ist echo request/reply, wird u.A. ein Beispiel ist echo request/reply, wird u.A.
für das ping Tool verwendet (behandeln wir für das ping Tool verwendet (behandeln wir ausführlich im Anschluß an dieses Kapitel!)ausführlich im Anschluß an dieses Kapitel!)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 23
Zwei Klassen von ICMP NachrichtenZwei Klassen von ICMP Nachrichten
errorerror– wird ausgelöst durch ein IP Paket, i.d.R. weil wird ausgelöst durch ein IP Paket, i.d.R. weil
ein Fehler aufgetreten istein Fehler aufgetreten ist– enthält im Paket Rumpf immer den IP Header enthält im Paket Rumpf immer den IP Header
und die ersten 8 Bytes des Paketes das den und die ersten 8 Bytes des Paketes das den ICMP error ausgelöst hatICMP error ausgelöst hat
– im Folgenden genauer betrachtetim Folgenden genauer betrachtet
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 24
ICMP ErrorICMP Error werden nicht generiert als Reaktion auf:werden nicht generiert als Reaktion auf:
– ICMP error NachrichtICMP error Nachricht– IP Paket an einen broadcast oder multicast IP Paket an einen broadcast oder multicast
AdresseAdresse– ein IP Paket das als link layer broadcast ein IP Paket das als link layer broadcast
verschickt wurdeverschickt wurde– ein Fragment welches nicht das erste eines IP ein Fragment welches nicht das erste eines IP
Paketes istPaketes ist– ein IP Paket dessen Absender keine einzelnes ein IP Paket dessen Absender keine einzelnes
System ist (multicast/broadcast/etc.)System ist (multicast/broadcast/etc.)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 25
ICMP Port Unreachable ErrorICMP Port Unreachable Error
Wird von einem System erzeugt, wenn ein Wird von einem System erzeugt, wenn ein UDP Paket empfangen wurde für einen Port UDP Paket empfangen wurde für einen Port der von keinem Prozeß auf diesem System der von keinem Prozeß auf diesem System benutzt wird.benutzt wird.
wird an den Absender des Pakets geschickt wird an den Absender des Pakets geschickt - das ist üblich für ICMP Pakete!- das ist üblich für ICMP Pakete!
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 26
ICMP Port Unreachable NachrichtICMP Port Unreachable Nachricht
IP header (20 bytes)
0 7 15 31
type (3) checksumcode (3)
IP header (incl. options) + first 8 bytes of original IP packet data
unused (0)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 27
DemoDemo
tfpt - trivial file transfer protocol - tfpt - trivial file transfer protocol - Dateiübertragung per UDPDateiübertragung per UDP
$ tftptftp$ connect <host> <port> - connect <host> <port> - illegalen port verwenden!illegalen port verwenden!
$ get <file>get <file># tcpdump host <host> and icmptcpdump host <host> and icmp(parallel zu get)(parallel zu get)
3.3 ping3.3 ping
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 29
pingping
wird benutzt um festzustellen, ob zwei Systeme wird benutzt um festzustellen, ob zwei Systeme über IP miteinander kommunizieren könnenüber IP miteinander kommunizieren können
ping-client sendet einen ICMP echo request ping-client sendet einen ICMP echo request ping-server antwortet mit einem ICMP echo ping-server antwortet mit einem ICMP echo
replyreply ping client/server ist Bestandteil der meisten ping client/server ist Bestandteil der meisten
BetriebssystemeBetriebssysteme
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 30
ICMP echo request/replyICMP echo request/reply
IP header (20 bytes)
0 7 15 31
type=0/8 checksumcode=0
data (optional)
timestamp
identifier sequence number
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 31
DemoDemo
$ ping <host>ping <host> Achtung, ping ist auf verschiedenen Achtung, ping ist auf verschiedenen
Betriebssystemen verschieden Betriebssystemen verschieden implementiert! Insbesondere die Optionen implementiert! Insbesondere die Optionen heissen immer anders als man denkt.heissen immer anders als man denkt.
ein Blick in die man pages hilft!ein Blick in die man pages hilft!
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 32
IP Record Route OptionIP Record Route Option IP (nicht ICMP!) hat eine Option, die dafür sorgt, daß IP (nicht ICMP!) hat eine Option, die dafür sorgt, daß
jeder Router seine IP Adresse in den IP header einträgt.jeder Router seine IP Adresse in den IP header einträgt. Dies ist die IP Adresse des Interfaces auf welches das Dies ist die IP Adresse des Interfaces auf welches das
Paket weitergeleitet wird.Paket weitergeleitet wird. Diese Option kann von ping „eingeschaltet“ werden um Diese Option kann von ping „eingeschaltet“ werden um
den Weg zu bestimmen, den ein IP Paket zurücklegt.den Weg zu bestimmen, den ein IP Paket zurücklegt. Diese Informationen werden vom ping-server im Diese Informationen werden vom ping-server im
Datenteil des echo reply zum client zurückgeschickt.Datenteil des echo reply zum client zurückgeschickt.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 33
IP PaketformatIP Paketformat
identification
time to live
source IP address
version total lengthtype of service
destination IP address
header checksum
data
hlength
0 7 15 31
flags fragment offset
protocol
options (if any)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 34
IP Record Route Option PaketformatIP Record Route Option Paketformat
identification
time to live
source IP address
version total lengthtype of service
destination IP address
header checksum
data
hlength
0 7 15 31
flags fragment offset
protocol
option lengthcode (7) pointer
IP address 9
IP address 1
IP address 1
IP address 2
data
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 35
DemoDemo
record route kann bei ping üblicherweise record route kann bei ping üblicherweise mit -R eingestellt werdenmit -R eingestellt werden
funktioniert nicht auf allen Systemen/mit funktioniert nicht auf allen Systemen/mit allen routernallen routern
maximal 9! router haben Platz im headermaximal 9! router haben Platz im header traceroute ist besser geeignet für diese traceroute ist besser geeignet für diese
Aufgabe!Aufgabe!
3.4 traceroute3.4 traceroute
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 37
traceroute - Aufgabetraceroute - Aufgabe
traceroute gibt Informationen über alle traceroute gibt Informationen über alle Router, die auf dem Weg zu einer IP Router, die auf dem Weg zu einer IP Adresse liegen.Adresse liegen.
Dabei wird auch die round-trip Zeit zu Dabei wird auch die round-trip Zeit zu jedem router bestimmt.jedem router bestimmt.
Es gibt keine Beschränkung über die Es gibt keine Beschränkung über die Anzahl der Router (wie etwa bei ping). Anzahl der Router (wie etwa bei ping).
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 38
traceroute - Funktionsweise Itraceroute - Funktionsweise I
traceroute schickt ein UDP Paket an die traceroute schickt ein UDP Paket an die Adresse, für die der Weg untersucht werden Adresse, für die der Weg untersucht werden soll; ttl im IP header wird auf 1 gesetztsoll; ttl im IP header wird auf 1 gesetzt
der erste Router verwirft das IP Paket der erste Router verwirft das IP Paket (ttl=1!) und schickt ein ICMP time (ttl=1!) und schickt ein ICMP time exceeded error an den Absenderexceeded error an den Absender
traceroute wiederholt dies mit ttl=2, etc. traceroute wiederholt dies mit ttl=2, etc.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 39
ICMP time exceeded NachrichtICMP time exceeded Nachricht
IP header (20 bytes)
0 7 15 31
type (11) checksumcode (0)
IP header (incl. options) + first 8 bytes of original IP packet data
unused (0)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 40
traceroute - Funktionsweise IItraceroute - Funktionsweise II
Wie erkennt man ob das Paket schließlich Wie erkennt man ob das Paket schließlich beim Empfänger angekommen ist?beim Empfänger angekommen ist?
traceroute sendet UDP an einen Port der traceroute sendet UDP an einen Port der wahrscheinlichwahrscheinlich nicht verwendet wird und nicht verwendet wird und erwartet eine ICMP port unreachable erwartet eine ICMP port unreachable Nachricht vom Empfänger!Nachricht vom Empfänger!
traceroute ist ein „hack“, besser wäre ein traceroute ist ein „hack“, besser wäre ein geeignetes Protokoll Design!geeignetes Protokoll Design!
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 41
Demo Demo
$ traceroute <host>traceroute <host>
Achtung! Traceroute berichtet die IP Achtung! Traceroute berichtet die IP Adresse des Interfaces auf dem das Paket Adresse des Interfaces auf dem das Paket ankommt! Unterschied zu ping -R!ankommt! Unterschied zu ping -R!
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 42
traceroute & source routingtraceroute & source routing es gibt eine IP Option für source routing die von es gibt eine IP Option für source routing die von
manchen traceroute Implementierungen verwendet manchen traceroute Implementierungen verwendet werden kann (-g Parameter)werden kann (-g Parameter)
source routing:source routing:– erlaubt es dem Absender eine Liste von IP Adressen erlaubt es dem Absender eine Liste von IP Adressen
(i.d.R. von Routern) im IP header anzugeben, die (i.d.R. von Routern) im IP header anzugeben, die nacheinander durchlaufen werden, bevor das Paket dem nacheinander durchlaufen werden, bevor das Paket dem Empfänger zugestellt wirdEmpfänger zugestellt wird
– ermöglicht es als Absender den Weg eines Paketes zum ermöglicht es als Absender den Weg eines Paketes zum großen Teil zu bestimmengroßen Teil zu bestimmen
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 43
IP Source Routing Option PaketformatIP Source Routing Option Paketformat
identification
time to live
source IP address
version total lengthtype of service
destination IP address (erste angegebene IP Adresse)
header checksum
data
hlength
0 7 15 31
flags fragment offset
protocol
option lengthcode (0x83/0x87) pointer
IP address 9 (eigentliche Zieladresse)
IP address 1 (zweite angegebene IP Adresse)
IP address 1
IP address 2
data
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 44
IP Source Routing Funktionsweise IIP Source Routing Funktionsweise I
der Sender nimmt die source route Liste der Sender nimmt die source route Liste von der Anwendung, und hängt die von der Anwendung, und hängt die eigentliche Zieladresse an diese Liste an. eigentliche Zieladresse an diese Liste an. Die Empfänger Adresse im IP Paket wird Die Empfänger Adresse im IP Paket wird auf den ersten Eintrag in der Liste gesetzt auf den ersten Eintrag in der Liste gesetzt und der Rest der Liste in die IP Source und der Rest der Liste in die IP Source Routing Option geschrieben (max. 9 Routing Option geschrieben (max. 9 Eintäge!)Eintäge!)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 45
IP Source Routing Funktionsweise II IP Source Routing Funktionsweise II Ein Empfänger eines IP Paketes überprüft, ob die Ein Empfänger eines IP Paketes überprüft, ob die
Liste vollständig abgearbeitet wurde.Liste vollständig abgearbeitet wurde.– Wenn ja, dann ist er endgültiger Empfänger.Wenn ja, dann ist er endgültiger Empfänger.– Wenn nein, dann wird die IP Adresse auf die das pointer Wenn nein, dann wird die IP Adresse auf die das pointer
Feld zeigt als neue Empfänger Adresse in das IP Paket Feld zeigt als neue Empfänger Adresse in das IP Paket eingetragen. Die IP Adresse des Interfaces auf welches eingetragen. Die IP Adresse des Interfaces auf welches das IP Paket weitergeleitet wird wird in das Feld das IP Paket weitergeleitet wird wird in das Feld geschrieben (auf die Position auf die das pointer Feld geschrieben (auf die Position auf die das pointer Feld zeigt).zeigt).
Der Inhalt des pointer Feldes wird um 4 erhöht.Der Inhalt des pointer Feldes wird um 4 erhöht.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 46
IP Source Routing BeispielIP Source Routing Beispiel
134.155.48.97
129.143.61.5
129.143.1.161
194.163.254.162
thales
Mannheim1.BelWue.de
www.spiegel.de
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 47
IP Source Routing BeispielIP Source Routing Beispiel
identification
time to live
134.155.48.97 (thales)
version total lengthtype of service
129.143.61.5 (Mannheim1.....)
header checksum
data
hlength
0 7 15 31
flags fragment offset
protocol
option length= 7code (0x83) pointer=4
194.163.254.162 www.spiegel.de
194.163.254.162
data
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 48
IP Source Routing BeispielIP Source Routing Beispiel
identification
time to live
134.155.48.97 (thales)
version total lengthtype of service
194.163.254.162 (www.spiegel.de)
header checksum
data
hlength
0 7 15 31
flags fragment offset
protocol
option length= 7code (0x83) pointer=8
129.143.1.161 (Mannheim1.....)
129.143.1.161
data
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 49
IP Source RoutingIP Source Routing
loose: die Angegebenen IP Adressen loose: die Angegebenen IP Adressen müssen nicht benachbart seinmüssen nicht benachbart sein
strict: die Angegebenen IP Adressen strict: die Angegebenen IP Adressen müssen benachbart sein, sonst wird das müssen benachbart sein, sonst wird das Paket verworfen und eine ICMP source Paket verworfen und eine ICMP source route failed Nachricht an den Sender route failed Nachricht an den Sender geschickt.geschickt.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 50
Keine Live-Demo!Keine Live-Demo!
Source Routing ist nahezu überall Source Routing ist nahezu überall abgeschaltet da es ein Sicherheitsrisiko abgeschaltet da es ein Sicherheitsrisiko darstellt - IP Spoofing!darstellt - IP Spoofing!
3.5 IP-Routing3.5 IP-Routing
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 52
BegriffeBegriffe Endsystem:Endsystem:
– mindestens ein Netzwerkinterface/eine IP Adressemindestens ein Netzwerkinterface/eine IP Adresse– kann IP Pakete empfangen und sendenkann IP Pakete empfangen und senden– leitet keine Pakete weiterleitet keine Pakete weiter
Router oder Gateway:Router oder Gateway:– mindestens zwei Netzwerkinterfaces/zwei IP mindestens zwei Netzwerkinterfaces/zwei IP
AdressenAdressen– kann IP Pakete empfangen, senden und weiterleitenkann IP Pakete empfangen, senden und weiterleiten
System = Endsystem oder RouterSystem = Endsystem oder Router
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 53
Routing TabelleRouting Tabelle Gibt es in jedem System!Gibt es in jedem System! Einträge haben die folgenden Felder:Einträge haben die folgenden Felder:
– DestinationDestination• vollständige IP Adresse odervollständige IP Adresse oder• netz/subnetz Bezeichnungnetz/subnetz Bezeichnung• „„künstliche“ Adresse z.B. local host 127.0.0.1künstliche“ Adresse z.B. local host 127.0.0.1
– GatewayGateway– MaskMask– InterfaceInterface– Flags (U: route ist „up“, G: route führt über Flags (U: route ist „up“, G: route führt über
einen Router, H: route ist zu einem Endsystem)einen Router, H: route ist zu einem Endsystem)
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 54
DemoDemo
ifconfig wird zur Einrichtung von ifconfig wird zur Einrichtung von Netzwerkschnittstellen verwendetNetzwerkschnittstellen verwendet
$ ifconfig -a ifconfig -a gibt uns detaillierte Infos über die Schnittstellengibt uns detaillierte Infos über die Schnittstellen
netstat gibt uns Netzwerkinfos über eine Systemnetstat gibt uns Netzwerkinfos über eine System$ netstat -r netstat -r RoutingtabelleRoutingtabelle $ netstat -i netstat -i InterfaceinfosInterfaceinfos
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 55
Routing bei gegebener Routing TabelleRouting bei gegebener Routing Tabelle
Ist die Empfägeradresse des IP Paketes Ist die Empfägeradresse des IP Paketes identisch mit einer vollständigen destination identisch mit einer vollständigen destination Adresse in der Routing Tabelle erkennbar Adresse in der Routing Tabelle erkennbar an flag H?an flag H?– ja: wähle diesen Eintrag und handele ja: wähle diesen Eintrag und handele
entsprechend!entsprechend!– nein: weiter.nein: weiter.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 56
Routing bei gegebener Routing TabelleRouting bei gegebener Routing Tabelle Gehört die Empfägeradresse des IP Paketes zu Gehört die Empfägeradresse des IP Paketes zu
einem der Subnetze die unter den Destination einem der Subnetze die unter den Destination Adressen in der Routing Tabelle genannt sind?Adressen in der Routing Tabelle genannt sind?– um dies festzustellen: nimm die Emfängeradresse des IP um dies festzustellen: nimm die Emfängeradresse des IP
Pakete, führe eine logische UND Verknüpfung mit der Pakete, führe eine logische UND Verknüpfung mit der (subnet) Mask durch und schaue, ob das Ergebnis mit (subnet) Mask durch und schaue, ob das Ergebnis mit dem Eintrag unter Destination übereinstimmt.dem Eintrag unter Destination übereinstimmt.
– Wenn ja: wähle diesen Entrag und handele entsprechendWenn ja: wähle diesen Entrag und handele entsprechend– Wenn nein: wähle den default Eintrag und handele Wenn nein: wähle den default Eintrag und handele
entsprechendentsprechend
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 57
BeispielBeispielDestinationDestination Gateway MaskGateway Mask Flags Flags
InterfaceInterface
134.155.48.0134.155.48.0 ** 255.255.240.0 255.255.240.0 U Ueth0eth0
127.0.0.0127.0.0.0** 255.0.0.0 U 255.0.0.0 U lolo
defaultdefault mannhattan 0.0.0.0 UGmannhattan 0.0.0.0 UG eth0 eth0
IP Empfängeradresse:IP Empfängeradresse:
134.155.48.10 134.155.48.10
Es gibt keine passende vollständige IP Adresse unterEs gibt keine passende vollständige IP Adresse unter
Destination!Destination!
134.155.48.10 & 255.255.240.0 = 134.155.48.0134.155.48.10 & 255.255.240.0 = 134.155.48.0
d.h. es wird der erste Eintrag der Routing Tabelle benutzt!d.h. es wird der erste Eintrag der Routing Tabelle benutzt!
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 58
Eintrag gefunden, was nun?Eintrag gefunden, was nun? Ist ein Gateway angegenben (flag G gesetzt)?Ist ein Gateway angegenben (flag G gesetzt)?
– ja: leite das Paket an das Gateway (Router) weiter. ja: leite das Paket an das Gateway (Router) weiter. Benutze dazu das in der Tabelle angegebene Schicht Benutze dazu das in der Tabelle angegebene Schicht 2 Interface. Schicht 2 Adresse = Adresse des 2 Interface. Schicht 2 Adresse = Adresse des Routers.Routers.
– nein: Empfänger ist in einem Netzt an das wir direkt nein: Empfänger ist in einem Netzt an das wir direkt angrenzen. Das Paket kann direkt an den Empfänger angrenzen. Das Paket kann direkt an den Empfänger weitergeleitet werden. Eventuell wird dazu ARP weitergeleitet werden. Eventuell wird dazu ARP benötigt! Schicht 2 Adresse = Adresse des benötigt! Schicht 2 Adresse = Adresse des Empfängers.Empfängers.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 59
Live ÜbungLive ÜbungDestination Gateway MaskDestination Gateway Mask Flags Flags InterfaceInterface
134.155.0.0 132.15.50.200 255.255.0.0 UG eth1134.155.0.0 132.15.50.200 255.255.0.0 UG eth1
134.155.48.10 132.15.50.100 255.255.255.255 UHG eth1134.155.48.10 132.15.50.100 255.255.255.255 UHG eth1
134.155.48.11 132.15.50.100 255.255.255.255 UHG eth1 134.155.48.11 132.15.50.100 255.255.255.255 UHG eth1
134.155.48.20 132.15.50.100 255.255.255.255 HG eth1134.155.48.20 132.15.50.100 255.255.255.255 HG eth1
134.156.110.0 * 255.255.240.0 U eth0134.156.110.0 * 255.255.240.0 U eth0
134.156.110.2 * 255.255.255.255 UH eth0 134.156.110.2 * 255.255.255.255 UH eth0
127.0.0.0 * 255.0.0.0 U lo127.0.0.0 * 255.0.0.0 U lo
default 138.154.20.100 0.0.0.0 UG eth3default 138.154.20.100 0.0.0.0 UG eth3
Routen sie die folgenden IP Adressen:Routen sie die folgenden IP Adressen:
134.155.48.30 134.155.48.20 134.155.48.11 110.40.4.4 134.155.48.30 134.155.48.20 134.155.48.11 110.40.4.4
134.156.111.1 134.156.200.1 134.156.110.2 134.155.59.50134.156.111.1 134.156.200.1 134.156.110.2 134.155.59.50
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 60
Wie kommen die Einträge in die Wie kommen die Einträge in die Routing Tabelle?Routing Tabelle?
Wenn das System gestartet wird, werden vom Wenn das System gestartet wird, werden vom Systemverwalter konfigurierte Einträge geladen.Systemverwalter konfigurierte Einträge geladen.
Zur Laufzeit kann man Einträge mit dem Zur Laufzeit kann man Einträge mit dem route route Befehl hinzufügen/löschenBefehl hinzufügen/löschen– Beispiel:Beispiel:route add -host 134.155.48.10 route add -host 134.155.48.10 -gw 134.155.50.200 eth0-gw 134.155.50.200 eth0
Endsystem: dynamic default router discovery.Endsystem: dynamic default router discovery. Router: Dynamisch mit Hilfe von Routing Router: Dynamisch mit Hilfe von Routing
ProtokollenProtokollen
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 61
Dynamic Default Router DiscoveryDynamic Default Router Discovery ICMP Router Advertisement Messages ICMP Router Advertisement Messages
werden periodisch auf die „all hosts“ werden periodisch auf die „all hosts“ multicast Adresse 224.0.0.1 gesendet multicast Adresse 224.0.0.1 gesendet (üblicherweise alle 7 Minuten).(üblicherweise alle 7 Minuten).
ICMP Router Solicitation Messages werden ICMP Router Solicitation Messages werden von Endsystemen auf die „all routers“ von Endsystemen auf die „all routers“ multicast adresse 224.0.0.2 geschickt um multicast adresse 224.0.0.2 geschickt um ICMP Router Advertisment Messages ICMP Router Advertisment Messages ausser der Reihe zu erzeugen.ausser der Reihe zu erzeugen.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 62
ICMP Router Advertisement NachrichtICMP Router Advertisement Nachricht
IP header (20 bytes)
0 7 15 31
type (9) checksumcode (0)
Router Address 1
num addr. addr. size lifetime
preference 1
Router Address 2
preference 2
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 63
ICMP Router Solicitation NachrichtICMP Router Solicitation Nachricht
IP header (20 bytes)
0 7 15 31
type (10) checksumcode (0)
reserved
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 64
ProblemProblem
default router
Internet
Endsystem
router
LAN
LAN
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 65
Lösung(sversuch)Lösung(sversuch)
Wenn ein Router ein Paket auf das selbe Wenn ein Router ein Paket auf das selbe Interface zurückschickt von dem er es Interface zurückschickt von dem er es bekommen hat, kann er einen ICMP bekommen hat, kann er einen ICMP redirect error an den Absender des Paketes redirect error an den Absender des Paketes verschicken.verschicken.
Empfäng ein Endsystem einen ICMP Empfäng ein Endsystem einen ICMP redirect error, so sollte er seine redirect error, so sollte er seine Routingtabelle entsprechen ändern.Routingtabelle entsprechen ändern.
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 66
ICMP Redirect ErrorICMP Redirect Error
IP header (20 bytes)
0 7 15 31
type (5) checksumcode (0-3)
IP header (incl. options) + first 8 bytes of original IP packet data
IP Adresse des alternativen Routers der besser geeignet ist
code 0: redirect packet for the network
code 1: redirect packet for the host
code 2: redirect packet for the Type of Service and network
code 1: redirect packet for the Type of Service and host
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 67
ICMP Redirect ProblemeICMP Redirect Probleme
Sicherheitsrisiko! Man kann damit das Sicherheitsrisiko! Man kann damit das routing eines Endsystems beeinflussen.routing eines Endsystems beeinflussen.
Keine Unterstützung für subnets.Keine Unterstützung für subnets.
Meist abgeschaltet!Meist abgeschaltet!