67
3. Internet Protocol 3. Internet Protocol (IP) (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

Embed Size (px)

Citation preview

Page 1: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

3. Internet Protocol (IP) 3. Internet Protocol (IP)

Lernziele:

– Detailliertes Verständnis von IP

– Praktische Einsetzbarkeit dieses Wissens

Page 2: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

3.1 Paketformat und Grundlagen3.1 Paketformat und Grundlagen

Page 3: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 4: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 5: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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)

Page 6: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 7: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 8: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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)

Page 9: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 10: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 11: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 12: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 13: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 14: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 15: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 16: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

2.1 Internet Control Message 2.1 Internet Control Message Protocol (ICMP)Protocol (ICMP)

Page 17: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 18: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 19: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 20: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 21: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!).

Page 22: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!)

Page 23: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 24: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.)

Page 25: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!

Page 26: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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)

Page 27: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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)

Page 28: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

3.3 ping3.3 ping

Page 29: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 30: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 31: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!

Page 32: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 33: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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)

Page 34: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 35: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!

Page 36: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

3.4 traceroute3.4 traceroute

Page 37: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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).

Page 38: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 39: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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)

Page 40: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!

Page 41: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!

Page 42: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 43: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 44: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!)

Page 45: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 46: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 47: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 48: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 49: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 50: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!

Page 51: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

3.5 IP-Routing3.5 IP-Routing

Page 52: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 53: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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)

Page 54: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 55: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 56: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 57: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!

Page 58: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 59: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 60: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 61: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 62: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 63: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 64: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP 64

ProblemProblem

default router

Internet

Endsystem

router

LAN

LAN

Page 65: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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.

Page 66: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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

Page 67: 3. Internet Protocol (IP) Lernziele: – Detailliertes Verständnis von IP – Praktische Einsetzbarkeit dieses Wissens

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!