3.%20Internet%20Protocol%20(IP) - PowerPoint PPT Presentation

About This Presentation
Title:

3.%20Internet%20Protocol%20(IP)

Description:

3. Internet Protocol (IP) Lernziele: Detailliertes Verst ndnis von IP Praktische Einsetzbarkeit dieses Wissens 3.1 Paketformat und Grundlagen RFCs J. Postel. – PowerPoint PPT presentation

Number of Views:110
Avg rating:3.0/5.0
Slides: 68
Provided by: unim48
Category:

less

Transcript and Presenter's Notes

Title: 3.%20Internet%20Protocol%20(IP)


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

2
3.1 Paketformat und Grundlagen
3
RFCs
  • J. Postel. Internet Protocol. RFC 791. 1981.
  • J. Mogul and J. Postel. Internet Standard
    Subnetting Procedure. RFC 950. 1985.

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

5
IP Paketformat
version
total length
type of service
hlength
identification
flags
fragment offset
time to live
header checksum
protocol
source IP address
destination IP address
options (if any)
data
6
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

7
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

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

9
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

10
IP Header Felder V
  • source/destination IP address (32 bits)

11
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
  • Aufteilung der bits subnetid, hostid ? lokal und
    verschieden für jede netid

14 bits
8 bits
8 bits
Class B
0
netid
hostid
1
subnetid
12
Subnetz Adressierung II
  • subnetid ist ausserhalb eines Netzes nicht
    sichtbar, wird nur lokal verwendet (z.B.
    innerhalb der Uni Mannheim)

134.155.xxx.xxx
Uni-MannheimRouter
Internet
subnetid 15
weitere subnetids
LAN in L15,16
13
Subnet Adressierung III
  • subnet mask
  • identifiziert das subnet einer IP Adresse
  • muß auf jedem System zu jeder IP Adresse
    vorhanden sein

16 bits
8 bits
8 bits
Bsp. für Class B
00000000
11111111
1111111111111111
subnet mask 0xffffff00255.255.255.0
14
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

15
Weiteres Vorgehen
  • Internet Control Message Protocol
  • IP tools - ping/traceroute
  • IP-Routing
  • IPv6
  • Wireless IP

16
2.1 Internet Control Message Protocol (ICMP)
17
RFCs
  • J. Postel. Internet Control Message Protocol. RFC
    792. 1981

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

19
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

20
ICMP Packetformat
IP header (20 bytes)
type
checksum
code
content abhängig von type und code
21
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.
    type3 code0 für network unreachable.
  • checksum wie für IP berechnet, bezieht sich
    jedoch auf die vollständige ICMP Nachricht (nicht
    den IP header!).

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

23
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

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

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

26
ICMP Port Unreachable Nachricht
IP header (20 bytes)
type (3)
checksum
code (3)
unused (0)
IP header (incl. options) first 8 bytes of
original IP packet data
27
Demo
  • tfpt - trivial file transfer protocol -
    Dateiübertragung per UDP
  • tftp
  • connect lthostgt ltportgt - illegalen port verwenden!
  • get ltfilegt
  • tcpdump host lthostgt and icmp(parallel zu get)

28
3.3 ping
29
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

30
ICMP echo request/reply
IP header (20 bytes)
type0/8
checksum
code0
identifier
sequence number
timestamp
data (optional)
31
Demo
  • ping lthostgt
  • Achtung, ping ist auf verschiedenen
    Betriebssystemen verschieden implementiert!
    Insbesondere die Optionen heissen immer anders
    als man denkt.
  • ein Blick in die man pages hilft!

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

33
IP Paketformat
version
total length
type of service
hlength
identification
flags
fragment offset
time to live
header checksum
protocol
source IP address
destination IP address
options (if any)
data
34
IP Record Route Option Paketformat
version
total length
type of service
hlength
identification
flags
fragment offset
time to live
header checksum
protocol
source IP address
destination IP address
option length
code (7)
pointer
IP address 1
IP address 1
IP address 2
IP address 9
data
data
35
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!

36
3.4 traceroute
37
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).

38
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 (ttl1!)
    und schickt ein ICMP time exceeded error an den
    Absender
  • traceroute wiederholt dies mit ttl2, etc.

39
ICMP time exceeded Nachricht
IP header (20 bytes)
type (11)
checksum
code (0)
unused (0)
IP header (incl. options) first 8 bytes of
original IP packet data
40
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!

41
Demo
  • traceroute lthostgt
  • Achtung! Traceroute berichtet die IP Adresse des
    Interfaces auf dem das Paket ankommt! Unterschied
    zu ping -R!

42
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

43
IP Source Routing Option Paketformat
version
total length
type of service
hlength
identification
flags
fragment offset
time to live
header checksum
protocol
source IP address
destination IP address (erste angegebene IP
Adresse)
option length
code (0x83/0x87)
pointer
IP address 1
IP address 1 (zweite angegebene IP Adresse)
IP address 2
IP address 9 (eigentliche Zieladresse)
data
data
44
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!)

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

46
IP Source Routing Beispiel
134.155.48.97
thales
129.143.61.5
Mannheim1.BelWue.de
129.143.1.161
194.163.254.162
www.spiegel.de
47
IP Source Routing Beispiel
version
total length
type of service
hlength
identification
flags
fragment offset
time to live
header checksum
protocol
134.155.48.97 (thales)
129.143.61.5 (Mannheim1.....)
option length 7
code (0x83)
pointer4
194.163.254.162
194.163.254.162 www.spiegel.de
data
data
48
IP Source Routing Beispiel
version
total length
type of service
hlength
identification
flags
fragment offset
time to live
header checksum
protocol
134.155.48.97 (thales)
194.163.254.162 (www.spiegel.de)
option length 7
code (0x83)
pointer8
129.143.1.161
129.143.1.161 (Mannheim1.....)
data
data
49
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.

50
Keine Live-Demo!
  • Source Routing ist nahezu überall abgeschaltet da
    es ein Sicherheitsrisiko darstellt - IP Spoofing!

51
3.5 IP-Routing
52
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

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

54
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

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

56
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

57
Beispiel
  • Destination Gateway Mask Flags Interface
  • 134.155.48.0 255.255.240.0 U eth0
  • 127.0.0.0 255.0.0.0 U lo
  • default mannhattan 0.0.0.0 UG
    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!

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

59
Live Ãœbung
  • Destination Gateway Mask
    Flags Interface
  • 134.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 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 eth1
  • 134.156.110.0 255.255.240.0 U
    eth0
  • 134.156.110.2 255.255.255.255
    UH eth0
  • 127.0.0.0 255.0.0.0 U
    lo
  • default 138.154.20.100 0.0.0.0
    UG eth3
  • Routen sie die folgenden IP Adressen
  • 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.50

60
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
  • Beispielroute add -host 134.155.48.10 -gw
    134.155.50.200 eth0
  • Endsystem dynamic default router discovery.
  • Router Dynamisch mit Hilfe von Routing
    Protokollen

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

62
ICMP Router Advertisement Nachricht
IP header (20 bytes)
type (9)
checksum
code (0)
num addr.
addr. size
lifetime
Router Address 1
preference 1
Router Address 2
preference 2
63
ICMP Router Solicitation Nachricht
IP header (20 bytes)
type (10)
checksum
code (0)
reserved
64
Problem
Endsystem
LAN
default router
router
Internet
LAN
65
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.

66
ICMP Redirect Error
IP header (20 bytes)
type (5)
checksum
code (0-3)
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
67
ICMP Redirect Probleme
  • Sicherheitsrisiko! Man kann damit das routing
    eines Endsystems beeinflussen.
  • Keine Unterstützung für subnets.
  • Meist abgeschaltet!
Write a Comment
User Comments (0)
About PowerShow.com