Kein Folientitel

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