|
|
Zeile 426: |
Zeile 426: |
|
| |
|
| die Angegebenen IP Adressen müssen benachbart sein, sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt. | | die Angegebenen IP Adressen müssen benachbart sein, sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt. |
|
| |
| '''Source Routing ist nahezu überall abgeschaltet da es ein Sicherheitsrisiko darstellt - IP Spoofing!'''
| |
|
| |
| = TMP =
| |
|
| |
|
| |
| <div style="text-align:center;color:#000000;">'''IPv4'''</div>
| |
|
| |
| <div style="text-align:center;color:#000000;">Internet Protokoll Version 4</div>
| |
|
| |
| '''IP – Einordnung ins DoD-Modell'''
| |
|
| |
| '''ExkursBezeichnung der Daten im Protokoll-Stapel'''
| |
|
| |
| '''Eigenschaften von IP'''
| |
|
| |
| '''Grundlage des TCP/IP-Stapels (TCP/IP-Stack) '''
| |
|
| |
| '''Teil der Netzwerkschicht des DoD-Modells (Layer 2)'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Setzt auf Data Link Layer auf</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Ethernetypfeld: 08-00</div>
| |
|
| |
| '''Um 1977 entwickelt '''
| |
|
| |
| '''In der Version 4 das Standard-Protokoll im Internet'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Die Weiterentwicklung zur Version 6 ist abgeschlossen, aber noch wenig genutzt</div>
| |
|
| |
| '''Hardwareunabhängig '''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Die Adressierung ist nicht von der Netzwerktechnologie abhängig</div>
| |
|
| |
| '''Paketorientierter verbindungsloser Datagram-Dienst '''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">freie Routenwahl</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">kein Verbindungsauf- oder abbau</div>
| |
|
| |
| '''Keine Fehlerkorrektur'''
| |
|
| |
| '''IP - Aufgaben'''
| |
|
| |
| '''Gewährleistung des Transports von Daten über heterogene Netzwerktopologien'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Abstraktion von Besonderheiten des darunter liegenden Layers 2(z.B. Ethernet, Token Ring oder ATM)</div>
| |
|
| |
| '''Definition eines Adressschemas'''
| |
|
| |
| '''Definition von Datagrammen'''
| |
|
| |
| '''Datagram-Service '''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Unzuverlässig </div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Keine Auslieferungs-Garantie</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Keine Fehlerfreiheits-Garantie</div>
| |
|
| |
| '''Routing zwischen Netzen'''
| |
|
| |
| '''Fragmentierung / Reassemblierung von Datagrammen'''
| |
|
| |
| '''Übermittlung der Daten vom Transport- zu Networklayer'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Definition/ Adressierung höherer Protokolle</div>
| |
|
| |
| '''IP - Wichtige RFCs'''
| |
|
| |
| '''RFC 791IP-Protokoll '''
| |
|
| |
| '''RFC 815IP over X.25 Networks'''
| |
|
| |
| '''RFC 894IP over Ethernet-Networks'''
| |
|
| |
| '''RFC 948IP over 802.3 Networks'''
| |
|
| |
| '''RFC 1051IP over Arcnet-Networks'''
| |
|
| |
| '''RFC 1055IP over Serial Lines („SLIP“)'''
| |
|
| |
| '''RFC 1088IP over Netbios Networks'''
| |
|
| |
| '''RFC 1577IP over ATM Networks („Classical IP“)'''
| |
|
| |
|
| |
| '''Aufbau des IP-Headersdeutsch'''
| |
|
| |
| '''IP-Headerenglisch'''
| |
|
| |
| '''IP-Header im Detail 1Version und Länge'''
| |
|
| |
| '''Version'''
| |
|
| |
| '''Die Version des IP-Protokolls'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Wir behandeln hier Version 4</div>
| |
|
| |
| '''Länge'''
| |
|
| |
| '''Dieses Feld gibt die Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an'''
| |
|
| |
| '''Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist'''
| |
|
| |
| '''Vergrößerung durch Angabe von Optionen'''
| |
|
| |
| '''IP-Header im Detail 2Servicetypen'''
| |
|
| |
| '''Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden'''
| |
|
| |
| '''Bit 3 – 6 haben folgende Bedeutung'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">1000 Minimize-delay</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">0100 Maximize throughput</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">0010 Maximize reliability</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">0001 Minimize monetary costs</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">0000 Normal service</div>
| |
|
| |
| '''Bit 7 ist reserviert (ohne Bedeutung)'''
| |
|
| |
| '''Leider werden die Servicetypen meist von kommerziellen Produkten nicht (vollständig) unterstützt'''
| |
|
| |
| '''IP-Header im Detail 3Paketlänge und Identifikation '''
| |
|
| |
| '''Paket-Länge'''
| |
|
| |
| '''Die Länge des Paketes in Byte inklusive Protokoll-Kopf'''
| |
|
| |
| '''16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)'''
| |
|
| |
| '''Identifikation'''
| |
|
| |
| '''Eine eindeutige Identifikation (Zähler)'''
| |
|
| |
| '''Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen '''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">um nicht mit verspäteten PDU in Konflikt zu kommen</div>
| |
|
| |
| '''Paketübertragung im Internet'''
| |
|
| |
| '''IP-Header im Detail 4Lebenszeit (TTL = Time To Live)'''
| |
|
| |
| '''Dieses Feld gibt an, wie lange das Paket maximal unterwegs sein darf'''
| |
|
| |
| '''Das Problem'''
| |
|
| |
| '''Beim Routen durch vermaschte Netze, können Datagramme/ Fragmente ziellos und unendlich lange kreisen'''
| |
|
| |
| '''Das verbraucht Ressourcen und kann Netzwerke bis zum Stillstand belasten'''
| |
|
| |
| '''Die Lösung'''
| |
|
| |
| '''Jeder Knoten (Router) verringert diesen Wert um mindestens 1'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Hält ein Router ein Paket länger als eine Sekunde, verringert er die TTL um 1 je weitere Sekunde</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Bei Erreichen des Wertes „0“, wird Paket verworfen</div>
| |
|
| |
| '''IP-Header im Detail 5Sender- und Empfänger-Adressen'''
| |
|
| |
| '''32-Bit IP-Adresse (IPv4), 128-Bit IP-Adresse (IPv6)'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">unabhängig von der zugrunde liegenden Netztechnologie</div>
| |
|
| |
| '''Das Internet-Protokoll definiert also eine rein logische Netztopologie'''
| |
|
| |
| '''Die Vergabe der IP-Adressen wird international von der IANA (Internet Assigned Numbers Association) geregelt'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">die IANA verteilt die Organisation auf mehrere Unterorganisationen</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Die in Europa zuständige Organisation ist das RIPE (Réseaux IP Européens) </div>
| |
|
| |
| '''IP-Header im Detail 6DF, MF und Fragmentabstand'''
| |
|
| |
| '''DF (Don‘t Fragment)'''
| |
|
| |
| '''0 = May Fragment'''
| |
|
| |
| '''1 = Don‘t Fragment'''
| |
|
| |
| '''MF (More Fragment)'''
| |
|
| |
| '''0 = Last Fragment'''
| |
|
| |
| '''1 = More Fragment'''
| |
|
| |
| '''Fragmentabstand'''
| |
|
| |
| '''Länge relativ zum Beginn des ursprünglichen Datagram'''
| |
|
| |
| '''IP-Header im Detail 7 Protokoll'''
| |
|
| |
| '''Nummer des Transportprotokolls'''
| |
|
| |
| '''Legt fest, welches Protokoll für die Weiterverarbeitung auf Layer 3 zuständig ist (demultiplexing)'''
| |
|
| |
| '''gemäß RFC 1700 (Assigned Numbers)'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">/etc/protocol</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">%SYSTEMROOT%\system32\drivers\etc\protocol</div>
| |
|
| |
| '''Ausgewählte IP-Protokollnummern'''
| |
|
| |
| '''IP-Header im Detail 7 Weitere Felder'''
| |
|
| |
| '''Prüfsumme '''
| |
|
| |
| '''wird über den gesamten IP Header berechnet'''
| |
|
| |
| '''Berechnung beim Sender:'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">setze das checksum Feld auf 0</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">XOR über alle 16-bit Worte im Header</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">das Ergebnis wird bitweise invertiert und stellt dann den Wert für das checksum Feld dar.</div>
| |
|
| |
| '''Check beim Emfänger:'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">XOR über alle 16-bit Worte im Header (inkl. checksum)</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">OK, wenn im Ergebnis alle bits auf 1 stehen</div>
| |
|
| |
| '''Füllzeichen'''
| |
|
| |
| '''Auffüllen des Headers auf ein Vielfaches von 32-Bit'''
| |
|
| |
| '''Nutzdaten '''
| |
|
| |
| '''Segmente und Datagramme höherer Protokolle '''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Meist TCP oder UDP</div>
| |
|
| |
| '''IP-Header im Detail 8 Optionen'''
| |
|
| |
| '''Flexible Erweiterbarkeit des Headers'''
| |
|
| |
| '''Variable Länge (max. 40 Byte)'''
| |
|
| |
| '''Folgende Optionen sind möglich'''
| |
|
| |
| '''Source Routing'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Liste von Routern, die ein Datagram durchlaufen soll</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Der genommene Weg wird aufgezeichnet (max. 9 Hops)</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">loose: die Angegebenen IP Adressen müssen nicht benachbart sein</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">strict: die Angegebenen IP Adressen müssen benachbart sein</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Source Routing ist nahezu überall abgeschaltet da, es ein Sicherheitsrisiko darstellt - IP Spoofing!</div>
| |
|
| |
| '''Record Route'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Router hängen ihre IP-Adresse an das Optionsfeld an</div>
| |
|
| |
| '''Zeitstempel'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Zusätzlich zur IP-Adresse wird die Uhrzeit des Durchlaufes angehangen</div>
| |
|
| |
| '''Fragmentierung im Internet'''
| |
|
| |
| '''Warum Fragmentierung?'''
| |
|
| |
| '''Anpassung der Datagramgrösse an die MTU der lokalen Netz-Technologie'''
| |
|
| |
| '''Definition des Protokolls / Beschränkung durch Norm'''
| |
|
| |
| '''Paketlänge in verschiedenen Netzen'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Token Ring32768 bit</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Ethernet12144 bit</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">X.25 (Maximum)8192 bit</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">X.25 (Standard)1024 bit</div>
| |
|
| |
| '''IP - Fragmentierung'''
| |
|
| |
| '''Felder: DF, MF, Identifikation, Fragmentabstand'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">kann nur bei DF=0 durchgeführt werden</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">wird von den Routern eigenständig vorgenommen</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">kann bei Bedarf wiederholt angewendet werden</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Zielhost muss die Fragmente zusammensetzen</div>
| |
|
| |
| '''Fragmentierung'''
| |
|
| |
| '''Alle Fragmente haben dieselbe Kennung'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">diese definiert keine Reihenfolge </div>
| |
|
| |
| '''Zu fragmentierende Pakete mit DF-Flag werden verworfen, da sie nicht in das nächste Netzwerk geleitet werden können'''
| |
|
| |
| '''Stationen, die nicht alle Fragmente eines IP-Datagrams innerhalb einer bestimmten Zeitspanne (i.d.R. 30-40s) zum Reassemblieren erhalten, verwerfen alle empfangenen Pakete'''
| |
|
| |
| '''Fragment Offset'''
| |
|
| |
| '''Gibt die Länge relativ in Byte zum Beginn des Datenbereichs im ursprünglichen Datagram an'''
| |
|
| |
| '''Ermöglicht dem Empfänger mehrere Fragmente in der richtigen Reihenfolge zusammenzusetzen'''
| |
|
| |
| '''Bei vollständigem Datagram (keine Fragmentierung) und beim ersten Fragment hat der Fragment Offset immer den Wert 0'''
| |
|
| |
| '''Fragment Offset (Grafik)'''
| |
|
| |
|
| |
| '''IP - Fragmentierung: Beispiel'''
| |
|
| |
| '''Netz1: MTU 1200Byte'''
| |
|
| |
| '''Netz2: MTU 532 Byte'''
| |
|
| |
| '''Netz3: MTU 276 Byte'''
| |
|
| |
|
| |
| '''Paket mit Länge 1044Byte (= 20Byte Header + 1024Byte Daten) und nicht gesetztem DF-Bit soll über die 3 Netze übertragen werden'''
| |
|
| |
| '''Die Reihenfolge der Ankunft beim Zielhost spielt keine Rolle.'''
| |
|
| |
| '''Wenn nach Ablauf eines Timers nicht alle Teilpakete angekommen sind, wird das Paket verworfen.'''
| |
|
| |
|
| |
| '''IP - Fragmentierung: Beispiel Paketlänge 1044 Byte'''
| |
|
| |
| '''Ausblick: IPv6'''
| |
|
| |
| '''Die Internet Engineering Task Force (IETF) hat eine neue IP-Version namens IPv6 entwickelt'''
| |
|
| |
| '''IPv6 hat eine Länge von 128 Bit = 2128 '''
| |
|
| |
| '''über 667 Billiarden IP-Adressen pro mm² Erde'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">510 100 000 km2 Erdoberfläche</div>
| |
|
| |
| '''Verbesserte Sicherheit'''
| |
|
| |
| '''Verbesserte Header, um das Routing zu vereinfachen und zu beschleunigen'''
| |
|
| |
| '''Der Übergang von IPv4 zu IPv6 läuft fließend'''
| |
|
| |
| '''IP Source Routing Option Paketformat'''
| |
|
| |
| '''IP Source Routing Funktionsweise'''
| |
|
| |
| '''Der Sender nimmt die source route Liste von der Anwendung, und hängt die eigentliche Zieladresse an diese Liste an. '''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Die Empfänger Adresse im IP Paket wird auf den ersten Eintrag in der Liste gesetzt</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Der Rest der Liste in die IP Source Routing Option geschrieben (max. 9 Eintäge!)</div>
| |
|
| |
| '''Ein Empfänger eines IP Paketes überprüft, ob die Liste vollständig abgearbeitet wurde.'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Wenn ja, dann ist er endgültiger Empfänger.</div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">Wenn nein, dann wird die IP Adresse auf die das pointer Feld zeigt als neue Empfänger Adresse in das IP Paket eingetragen. </div>
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">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).</div>
| |
|
| |
| '''Der Inhalt des pointer Feldes wird um 4 erhöht.'''
| |
|
| |
| '''IP Source Routing Beispiel'''
| |
|
| |
| '''IP Source Routing Beispiel'''
| |
|
| |
| '''IP Source Routing Beispiel'''
| |
|
| |
| '''IP Source Routing'''
| |
|
| |
| '''loose'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">die Angegebenen IP Adressen müssen nicht benachbart sein</div>
| |
|
| |
| '''strict'''
| |
|
| |
| <div style="margin-left:0.265cm;margin-right:0cm;">die Angegebenen IP Adressen müssen benachbart sein, sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt.</div>
| |
|
| |
|
| '''Source Routing ist nahezu überall abgeschaltet da es ein Sicherheitsrisiko darstellt - IP Spoofing!''' | | '''Source Routing ist nahezu überall abgeschaltet da es ein Sicherheitsrisiko darstellt - IP Spoofing!''' |
topic kurze Beschreibung
Beschreibung
Installation
Syntax
Parameter
Optionen
Konfiguration
Dateien
Anwendungen
Dokumentation
Man-Pages
Info-Pages
Links
Intern
Weblinks
Kontrollfragen
TMP
IPv4
Internet Protokoll Version 4
IP – Einordnung ins DoD-Modell
ExkursBezeichnung der Daten im Protokoll-Stapel
Eigenschaften von IP
Grundlage des TCP/IP-Stapels (TCP/IP-Stack)
Teil der Netzwerkschicht des DoD-Modells (Layer 2)
Setzt auf Data Link Layer auf
Ethernetypfeld: 08-00
Um 1977 entwickelt
In der Version 4 das Standard-Protokoll im Internet
Die Weiterentwicklung zur Version 6 ist abgeschlossen, aber noch wenig genutzt
Hardwareunabhängig
Die Adressierung ist nicht von der Netzwerktechnologie abhängig
Paketorientierter verbindungsloser Datagram-Dienst
freie Routenwahl
kein Verbindungsauf- oder abbau
Keine Fehlerkorrektur
IP - Aufgaben
Gewährleistung des Transports von Daten über heterogene Netzwerktopologien
Abstraktion von Besonderheiten des darunter liegenden Layers 2(z.B. Ethernet, Token Ring oder ATM)
Definition eines Adressschemas
Definition von Datagrammen
Datagram-Service
Unzuverlässig
Keine Auslieferungs-Garantie
Keine Fehlerfreiheits-Garantie
Routing zwischen Netzen
Fragmentierung / Reassemblierung von Datagrammen
Übermittlung der Daten vom Transport- zu Networklayer
Definition/ Adressierung höherer Protokolle
IP - Wichtige RFCs
RFC 791IP-Protokoll
RFC 815IP over X.25 Networks
RFC 894IP over Ethernet-Networks
RFC 948IP over 802.3 Networks
RFC 1051IP over Arcnet-Networks
RFC 1055IP over Serial Lines („SLIP“)
RFC 1088IP over Netbios Networks
RFC 1577IP over ATM Networks („Classical IP“)
Aufbau des IP-Headersdeutsch
IP-Headerenglisch
IP-Header im Detail 1Version und Länge
Version
Die Version des IP-Protokolls
Wir behandeln hier Version 4
Länge
Dieses Feld gibt die Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
Vergrößerung durch Angabe von Optionen
IP-Header im Detail 2Servicetypen
Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden
Bit 3 – 6 haben folgende Bedeutung
1000 Minimize-delay
0100 Maximize throughput
0010 Maximize reliability
0001 Minimize monetary costs
0000 Normal service
Bit 7 ist reserviert (ohne Bedeutung)
Leider werden die Servicetypen meist von kommerziellen Produkten nicht (vollständig) unterstützt
IP-Header im Detail 3Paketlänge und Identifikation
Paket-Länge
Die Länge des Paketes in Byte inklusive Protokoll-Kopf
16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)
Identifikation
Eine eindeutige Identifikation (Zähler)
Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen
um nicht mit verspäteten PDU in Konflikt zu kommen
Paketübertragung im Internet
IP-Header im Detail 4Lebenszeit (TTL = Time To Live)
Dieses Feld gibt an, wie lange das Paket maximal unterwegs sein darf
Das Problem
Beim Routen durch vermaschte Netze, können Datagramme/ Fragmente ziellos und unendlich lange kreisen
Das verbraucht Ressourcen und kann Netzwerke bis zum Stillstand belasten
Die Lösung
Jeder Knoten (Router) verringert diesen Wert um mindestens 1
Hält ein Router ein Paket länger als eine Sekunde, verringert er die TTL um 1 je weitere Sekunde
Bei Erreichen des Wertes „0“, wird Paket verworfen
IP-Header im Detail 5Sender- und Empfänger-Adressen
32-Bit IP-Adresse (IPv4), 128-Bit IP-Adresse (IPv6)
unabhängig von der zugrunde liegenden Netztechnologie
Das Internet-Protokoll definiert also eine rein logische Netztopologie
Die Vergabe der IP-Adressen wird international von der IANA (Internet Assigned Numbers Association) geregelt
die IANA verteilt die Organisation auf mehrere Unterorganisationen
Die in Europa zuständige Organisation ist das RIPE (Réseaux IP Européens)
IP-Header im Detail 6DF, MF und Fragmentabstand
DF (Don‘t Fragment)
0 = May Fragment
1 = Don‘t Fragment
MF (More Fragment)
0 = Last Fragment
1 = More Fragment
Fragmentabstand
Länge relativ zum Beginn des ursprünglichen Datagram
IP-Header im Detail 7 Protokoll
Nummer des Transportprotokolls
Legt fest, welches Protokoll für die Weiterverarbeitung auf Layer 3 zuständig ist (demultiplexing)
gemäß RFC 1700 (Assigned Numbers)
/etc/protocol
%SYSTEMROOT%\system32\drivers\etc\protocol
Ausgewählte IP-Protokollnummern
IP-Header im Detail 7 Weitere Felder
Prüfsumme
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
Füllzeichen
Auffüllen des Headers auf ein Vielfaches von 32-Bit
Nutzdaten
Segmente und Datagramme höherer Protokolle
Meist TCP oder UDP
IP-Header im Detail 8 Optionen
Flexible Erweiterbarkeit des Headers
Variable Länge (max. 40 Byte)
Folgende Optionen sind möglich
Source Routing
Liste von Routern, die ein Datagram durchlaufen soll
Der genommene Weg wird aufgezeichnet (max. 9 Hops)
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
Source Routing ist nahezu überall abgeschaltet da, es ein Sicherheitsrisiko darstellt - IP Spoofing!
Record Route
Router hängen ihre IP-Adresse an das Optionsfeld an
Zeitstempel
Zusätzlich zur IP-Adresse wird die Uhrzeit des Durchlaufes angehangen
Fragmentierung im Internet
Warum Fragmentierung?
Anpassung der Datagramgrösse an die MTU der lokalen Netz-Technologie
Definition des Protokolls / Beschränkung durch Norm
Paketlänge in verschiedenen Netzen
Token Ring32768 bit
Ethernet12144 bit
X.25 (Maximum)8192 bit
X.25 (Standard)1024 bit
IP - Fragmentierung
Felder: DF, MF, Identifikation, Fragmentabstand
kann nur bei DF=0 durchgeführt werden
wird von den Routern eigenständig vorgenommen
kann bei Bedarf wiederholt angewendet werden
Zielhost muss die Fragmente zusammensetzen
Fragmentierung
Alle Fragmente haben dieselbe Kennung
diese definiert keine Reihenfolge
Zu fragmentierende Pakete mit DF-Flag werden verworfen, da sie nicht in das nächste Netzwerk geleitet werden können
Stationen, die nicht alle Fragmente eines IP-Datagrams innerhalb einer bestimmten Zeitspanne (i.d.R. 30-40s) zum Reassemblieren erhalten, verwerfen alle empfangenen Pakete
Fragment Offset
Gibt die Länge relativ in Byte zum Beginn des Datenbereichs im ursprünglichen Datagram an
Ermöglicht dem Empfänger mehrere Fragmente in der richtigen Reihenfolge zusammenzusetzen
Bei vollständigem Datagram (keine Fragmentierung) und beim ersten Fragment hat der Fragment Offset immer den Wert 0
Fragment Offset (Grafik)
IP - Fragmentierung: Beispiel
Netz1: MTU 1200Byte
Netz2: MTU 532 Byte
Netz3: MTU 276 Byte
Paket mit Länge 1044Byte (= 20Byte Header + 1024Byte Daten) und nicht gesetztem DF-Bit soll über die 3 Netze übertragen werden
Die Reihenfolge der Ankunft beim Zielhost spielt keine Rolle.
Wenn nach Ablauf eines Timers nicht alle Teilpakete angekommen sind, wird das Paket verworfen.
IP - Fragmentierung: Beispiel Paketlänge 1044 Byte
Ausblick: IPv6
Die Internet Engineering Task Force (IETF) hat eine neue IP-Version namens IPv6 entwickelt
IPv6 hat eine Länge von 128 Bit = 2128
über 667 Billiarden IP-Adressen pro mm² Erde
510 100 000 km2 Erdoberfläche
Verbesserte Sicherheit
Verbesserte Header, um das Routing zu vereinfachen und zu beschleunigen
Der Übergang von IPv4 zu IPv6 läuft fließend
IP Source Routing Option Paketformat
IP Source Routing Funktionsweise
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
Der Rest der Liste in die IP Source Routing Option geschrieben (max. 9 Eintäge!)
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.
IP Source Routing Beispiel
IP Source Routing Beispiel
IP Source Routing Beispiel
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.
Source Routing ist nahezu überall abgeschaltet da es ein Sicherheitsrisiko darstellt - IP Spoofing!