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 - WS00/01 - 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 - WS00/01 - Kapitel 3: IP

5 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 - WS00/01 - 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 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

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 - WS00/01 - 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 - WS00/01 - 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 - WS00/01 - 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 - WS00/01 - Kapitel 3: IP

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: 1 netid subnetid hostid Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

12 Subnetz 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 - WS00/01 - Kapitel 3: IP

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: subnet mask: 0xffffff00= Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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

15 Weiteres Vorgehen Internet Control Message Protocol
IP tools - ping/traceroute IP-Routing IPv6 Wireless IP Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

16 2.1 Internet Control Message Protocol (ICMP)

17 RFCs J. Postel. Internet Control Message Protocol. RFC 792. 1981
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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

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

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

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

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!) Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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

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.) Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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! Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

26 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 - WS00/01 - Kapitel 3: IP

27 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

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

30 ICMP echo request/reply
7 15 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

31 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

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

33 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 - WS00/01 - Kapitel 3: IP

34 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 - WS00/01 - Kapitel 3: IP

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! Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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). Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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 (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

39 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 - WS00/01 - Kapitel 3: IP

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! Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

41 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

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

43 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 - WS00/01 - Kapitel 3: IP

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!) Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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

46 IP Source Routing Beispiel
thales Mannheim1.BelWue.de Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

47 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 - WS00/01 - Kapitel 3: IP

48 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 - WS00/01 - Kapitel 3: IP

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

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

51 3.5 IP-Routing

52 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 - WS00/01 - Kapitel 3: IP

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

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

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

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

57 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 - WS00/01 - Kapitel 3: IP

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

59 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 - WS00/01 - Kapitel 3: IP

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 Beispiel: route add -host gw eth0 Endsystem: dynamic default router discovery. Router: Dynamisch mit Hilfe von Routing Protokollen Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

61 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 ausser der Reihe zu erzeugen. Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

62 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 - WS00/01 - Kapitel 3: IP

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

64 Problem Endsystem LAN router default router LAN Internet
Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

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

66 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 1: redirect packet for the Type of Service and host Mauve - Internet Protokolle - WS00/01 - Kapitel 3: IP

67 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


Herunterladen ppt "3. Internet Protocol (IP)"

Ähnliche Präsentationen


Google-Anzeigen