Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

3. Internet Protocol (IP)

Ähnliche Präsentationen


Präsentation zum Thema: "3. Internet Protocol (IP)"—  Präsentation transkript:

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 Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

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. Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

5 destination IP address
IP Paketformat 7 15 31 version hlength prec./TOS total length identification flags fragment offset time to live protocol header checksum source IP address destination IP address options (if any) data Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

6 IP Header Felder I version (4-bits): header length (4 bits):
aktuell IPv4, Nachfolger IPv6 header length (4 bits): Anzahl an 32-bit Worten im Header precendence/type-of-service (8 bits): die erste 3 bits geben eine Priorität (precendence) an die folgenden 4 bits werden für die Wunsch nach spezifischer Behandlung verwendet: minimize-delay, maximize throughput, maximize reliability, minimize monetary costs keine Garantie! weitgehend von Routern ignoriert Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

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 Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

8 IP Header Felder III time-to-live (8 bits): protocol
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 - WS02/03 - Kapitel 3: IP

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 Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

10 (reserved for future use)
IP Header Felder V source/destination IP address (32 bits): Class A: netid 7 bits hostid 24 bits Class B: netid 14 bits hostid 16 bits 1 Class C: 1 netid 21 bits hostid 8 bits Class D: 1 multicast group ID 28 bits Class E: 1 (reserved for future use) 27 bits Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

11 Subnet 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: 1 netid subnetid hostid Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

12 Subnet Adressierung II
subnetid ist ausserhalb eines Netzes nicht sichtbar, wird nur lokal verwendet (z.B. innerhalb der Uni Mannheim) xxx.xxx Uni-Mannheim Router Internet subnetid = 15 weitere subnetids LAN in L15,16 Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

13 Subnet Adressierung III
subnet mask identifiziert das Subnetz einer IP Adresse muss auf jedem System zu jeder IP Adresse vorhanden sein 16 bits 8 bits 8 bits Bsp. für Class B: subnet mask: 0xffffff00= Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

14 Subnet Adressierung Eigene IP Adresse + subnetid erlaubt für ein IP-Datagramm festzustellen wo der Empfänger ist: im selben Subnet im selben Netz aber in anderem Subnet in anderem Netz Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

15 Subnetmask Beispiel Gegeben: Vorgehen:
Eigene IP-Adresse: Subnet-Mask: Ziel A: , Ziel B: Vorgehen: & = & = identisch, daher gleiches Subnetz & = verschieden, daher anderes Subnetz Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

16 Subnetmasks variabler Länge I
Problem: gegeben ist ein Klasse C Netz, dieses soll in 2 Subnet mit 50 und einem Subnet mit 100 Endsystemen unterteilt werden. Das funktioniert nicht mit einer einzigen Subnetmask! In diesem Fall benötigt man Subnetmasks variabler Länge. Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

17 Subnetmasks variabler Länge II
Man untergliedert den Adressraum zunächst anhand der kürzeren Subnetmask (z.B. 1 bit für das Beispiel) Dann untergliedert man eine Hälfte davon weiter mit einer längeren Mask (z.B. mit 2 bits) Als Endergebnis hat man nun Subnets verschiedener Größe Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

18 Subnetmasks variabler Länge III
Ein Beispiel: Netzwerk: x Netmask für Subnet mit ID 0 (100 Rechner): Adressen in diesem Subnet: Netmask für Subnets mit ID 3 und 4 (je 50 Rechner): Adressen für Subnet 3: Adressen für Subnet 4: Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

19 Weiteres Vorgehen Internet Control Message Protocol
IP tools - ping/traceroute IP-Routing IPv6 Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

20 2.1 Internet Control Message Protocol (ICMP)

21 RFCs J. Postel. Internet Control Message Protocol. RFC 792. 1981
S. Deering. ICMP Router Discovery Message. RFC Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

22 Problem Man braucht IP um ICMP Nachrichten zu übertragen.
Man braucht ICMP um IP zu verstehen. Wir gehen im Folgenden davon aus, dass 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 - WS02/03 - Kapitel 3: IP

23 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 - WS02/03 - Kapitel 3: IP

24 ICMP Packetformat 7 15 31 IP header (üblicherweise 20 bytes) type code
7 15 31 IP header (üblicherweise 20 bytes) type code checksum content abhängig von type und code Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

25 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 - WS02/03 - Kapitel 3: IP

26 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 Anschluss an dieses Kapitel!) Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

27 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, welches den ICMP error ausgelöst hat im Folgenden genauer betrachtet Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

28 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 - WS02/03 - Kapitel 3: IP

29 ICMP Port Unreachable Error
Wird von einem System erzeugt, wenn ein UDP Paket für einen Port empfangen wurde, der von keinem Prozess auf diesem System benutzt wird. wird an den Absender des Pakets geschickt - das ist üblich für ICMP Pakete! Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

30 ICMP Port Unreachable Nachricht
7 15 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 - WS02/03 - Kapitel 3: IP

31 Demo tftp - trivial file transfer protocol - Dateiübertragung per UDP
connect <host> <port> - illegalen port verwenden! get <file> tcpdump host <host> and icmp (parallel zu get) Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

32 3.3 ping

33 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 - WS02/03 - Kapitel 3: IP

34 ICMP echo request/reply
7 15 31 IP header (20 bytes) type=0/8 code=0 checksum identifier sequence number data (optional, kann z.B. den Zeitpunkt des Sendens eine Requests beinhalten, wenn dieser nicht vom Sender des Requests gespeichert wird) Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

35 Demo ping <host>
Achtung, ping ist auf verschiedenen Betriebssystemen verschieden implementiert! Insbesondere die Optionen haben immer eine andere Bezeichnung als man denkt. ein Blick in die man pages hilft! Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

36 IP Record Route Option IP (nicht ICMP!) hat eine Option, die dafür sorgt, dass 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 echo reply zum client zurückgeschickt. Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

37 destination IP address
IP Paketformat 7 15 31 version hlength type of service total length identification flags fragment offset time to live protocol header checksum source IP address destination IP address options (if any) data Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

38 IP Record Route Option Paketformat
7 15 31 version hlength type of service total length identification flags fragment offset time to live protocol 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 - WS02/03 - Kapitel 3: IP

39 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 - WS02/03 - Kapitel 3: IP

40 3.4 traceroute

41 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 - WS02/03 - Kapitel 3: IP

42 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 - WS02/03 - Kapitel 3: IP

43 ICMP time exceeded Nachricht
7 15 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 - WS02/03 - Kapitel 3: IP

44 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 - WS02/03 - Kapitel 3: IP

45 Demo traceroute <host>
Achtung! Traceroute berichtet die IP Adresse des Interfaces auf dem das Paket ankommt! Unterschied zu ping -R! Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

46 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 - WS02/03 - Kapitel 3: IP

47 IP Source Routing Option Paketformat
7 15 31 version hlength type of service total length identification flags fragment offset time to live protocol 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 - WS02/03 - Kapitel 3: IP

48 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 - WS02/03 - Kapitel 3: IP

49 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 - WS02/03 - Kapitel 3: IP

50 IP Source Routing Beispiel
thales Mannheim1.BelWue.de Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

51 IP Source Routing Beispiel
7 15 31 version hlength type of service total length identification flags fragment offset time to live protocol header checksum (thales) (Mannheim1.....) code (0x83) option length= 7 pointer=4 data data Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

52 IP Source Routing Beispiel
7 15 31 version hlength type of service total length identification flags fragment offset time to live protocol header checksum (thales) ( code (0x83) option length= 7 pointer=8 (Mannheim1.....) data data Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

53 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 - WS02/03 - Kapitel 3: IP

54 Keine Live-Demo! Source Routing ist nahezu überall abgeschaltet da es ein Sicherheitsrisiko darstellt - IP Spoofing! Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

55 3.5 IP-Routing

56 Begriffe Endsystem: Router oder Gateway:
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 - WS02/03 - Kapitel 3: IP

57 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 Gateway Mask Interface Flags (U: route ist „up“, G: route führt über einen Router, H: route ist zu einem Endsystem) Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

58 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 - WS02/03 - Kapitel 3: IP

59 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 - WS02/03 - Kapitel 3: IP

60 Routing bei gegebener Routing Tabelle
Gehört die Empfängeradresse des IP Paketes zu einem der Subnetze die unter den Destination Adressen in der Routing Tabelle genannt sind? um dies festzustellen: nimm die Empfä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 - WS02/03 - Kapitel 3: IP

61 Beispiel Destination Gateway Mask Flags Interface
* U eth0 * U lo default mannhattan UG eth0 IP Empfängeradresse: Es gibt keine passende vollständige IP Adresse unter Destination! & = d.h. es wird der erste Eintrag der Routing Tabelle benutzt! Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

62 Eintrag gefunden, was nun?
Ist ein Gateway angegeben (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 - WS02/03 - Kapitel 3: IP

63 Live Übung Destination Gateway Mask Flags Interface
UG eth1 UHG eth1 UHG eth1 HG eth1 * U eth0 * UH eth0 * U lo default UG eth3 Routen sie die folgenden IP Adressen: Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

64 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 gw eth0 Endsystem: dynamic default router discovery. Router: Dynamisch mit Hilfe von Routing Protokollen. Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

65 Dynamic Default Router Discovery
ICMP Router Advertisement Messages werden periodisch auf die „all hosts“ multicast Adresse gesendet (üblicherweise alle 7 Minuten). ICMP Router Solicitation Messages werden von Endsystemen auf die „all routers“ multicast adresse geschickt um ICMP Router Advertisment Messages außer der Reihe zu erzeugen. Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

66 ICMP Router Advertisement Nachricht
7 15 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 - WS02/03 - Kapitel 3: IP

67 ICMP Router Solicitation Nachricht
7 15 31 IP header (20 bytes) type (10) code (0) checksum reserved Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

68 Problem Endsystem LAN router default router LAN Internet
Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

69 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ängt ein Endsystem einen ICMP redirect error, so sollte er seine Routingtabelle entsprechen ändern. Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

70 ICMP Redirect Error code 0: redirect packet for the network
7 15 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 3: redirect packet for the Type of Service and host Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP

71 ICMP Redirect Probleme
Sicherheitsrisiko! Man kann damit das routing eines Endsystems beeinflussen. Keine Unterstützung für Subnetze. Meist abgeschaltet! Mauve - Internet Protokolle - WS02/03 - Kapitel 3: IP


Herunterladen ppt "3. Internet Protocol (IP)"

Ähnliche Präsentationen


Google-Anzeigen