...
🧠 De blog is gewijd aan het onderwerp VPN en beveiliging, gegevensprivacy op internet. We praten over actuele trends en nieuws met betrekking tot bescherming.

IP-Fragmentierung: Vollständig erklärt

236

Jedes auf IP-Paketen basierende Netzwerk hat eine MTU-Größe (Maximum Transmission Unit). Die MTU ist, wie der Begriff schon sagt, die maximale Größe des Pakets, das im Netzwerk übertragen werden kann.

IP-Pakete, die größer als die MTU-Größe sind, müssen in kleinere Fragmente oder Pakete aufgeteilt werden, damit sie über das Netzwerk übertragen werden können.

Immer noch verwirrt? Mach dir keine Sorgen. 

In diesem Leitfaden erklären wir alles über IP-Fragmentierung – was es ist, was es tut, wie es verwendet wird und seine Nachteile, in Laiensprache zum Verständnis. Wir werden außerdem einige spezifische Fragen von Benutzern zu diesem Thema beantworten. Also, ohne weitere Umschweife, fangen wir an!

Was ist IP-Fragmentierung?

Jedes lokale Netzwerk unterstützt eine maximale Größe von IP-Paketen. Wenn also ein Host das Netzwerk verwendet, um ein IP-Paket zu übertragen, sollte es nicht größer als die Größe der maximalen Übertragungseinheit (MTU) sein. Andernfalls wird es in kleine Teile geteilt – ein Prozess, der als IP-Fragmentierung bezeichnet wird.

Diese Größe wird in der Regel durch die MTUs und die oft gleiche Datenverbindung des Netzes bestimmt. Ein modernes Arbeitsplatz-, Rechenzentrums- oder Campusnetzwerk, das über Ethernet angeboten wird, hat MTUs im Wert von 1500 Bytes.

IP-Pakete, die zuerst über ein Netzwerk übertragen werden, das eine einzelne MCU unterstützt, erfordern jedoch möglicherweise ein Routing über VPN-Tunnel, WANs oder über andere Netzwerke mit kleineren maximalen Übertragungseinheiten. Falls die Größe des Pakets die kleinere MTU überschreitet, müssten die Daten in diesem Paket fragmentiert werden.

Die Daten würden in mehrere Teile zerlegt und in neuen Fragmenten (Paketen) transportiert, die kleiner oder gleich groß sind wie die untere MCU. Diese fragmentierten Daten werden dann wieder zusammengesetzt, wenn sie ihr Ziel erreichen.


IPv4

Die verwendeten IPv4-Header-Felder

Der Fragmentierungs- und der Wiederzusammensetzungsprozess haben verschiedene beteiligte IP-Header-Felder, die in Stücke/Fragmente gesetzt werden.

(Bildnachweis: packetpushers.net)

Die Operation der Fragmentierung beruht auf drei IP-Header-Feldern (insgesamt 32 Bit). Alle diese Fragmente haben deutlich andere Werte als das ursprüngliche IP-Paket:

Das Identifikationsfeld (16 Bit) enthält eine eindeutige ID-Nummer, die eine Mischung aus Quell- und Ziel-IP-Adressen ist. Das Protokollfeld mit dem Wert des ursprünglichen Pakets ermöglicht es dem Ziel, zwischen den verschiedenen Paketfragmenten zu unterscheiden, die von derselben Quelle stammen.

Dies bedeutet einfach, dass dieselbe ID verwendet werden kann, selbst wenn die Quelle, das Protokoll und das Ziel der fragmentierten Pakete nicht identisch sind.

Genau wie beim ursprünglichen IP-Paket werden das erste reservierte Bit des Flags -Felds (insgesamt 3 Bits) und das zweite, das Don't Fragment (DF)  -Bit, beide nicht gesetzt (0).

Beim letzten Fragment wird jedoch das dritte Bit des Felds, dh More Fragments (MF), auf 1 gesetzt. Alle Bits in diesem Feld des letzten IP-Pakets werden auf 0 gesetzt, genau wie das ursprüngliche IP-Paket (sofern es sich nicht um ein Fragment handelt).

Wenn im ursprünglichen Paket das Don't Fragment-Flag gesetzt ist, dann würde dies eine Fragmentierung verhindern und dazu führen, dass Pakete verworfen werden müssen. In diesem Fall sollten Fehler an den Absender gesendet werden, z. B. Typ 3 ICMP-Fehler: „Destination Unreachable”, Code 4: „Fragmentation required, and DF set”.

Das Feld Fragment Offset  (insgesamt 13 Bits) wird verwendet, um die anfängliche Datenposition in dem Fragment in Bezug auf die Startdaten des ursprünglichen IP-Pakets anzuzeigen. Dies wird dann verwendet, um die Daten aus allen Fragmenten (angekommen oder nicht) wieder zusammenzusetzen.

Der Offset im ersten Fragment ist 0, da die Daten in diesem fragmentierten Paket und dem Original an derselben Stelle beginnen. In den folgenden Fragmenten ist der Wert der Offset der fragmentierten Daten vom Beginn der Daten im Anfangsfragment (Offset 0) in 8-Byte-Blöcken (auch bekannt als Oktaworte).

Wenn ein IP-Paket mit Daten im Wert von 800 Byte in zwei gleiche Teile/Fragmente mit jeweils 400 Byte aufgeteilt wird, dann ist der Fragment-Offset des 1 Fragments 0, während das andere 50 (400/8) ist.

Der Offset-Wert muss die Anzahl der 8-Byte-Datenblöcke sein. Das bedeutet, dass das vorherige Fragment ein Vielfaches von 8 Bytes sein muss. Das letzte Fragment darf Daten enthalten, die kein Vielfaches von 8 Bytes sind, da es keine weiteren Fragmente gibt.


IPv6

Obwohl die meisten Header-Felder gleich bleiben, funktioniert die IP-Fragmentierung in IPv6 etwas anders als in IPv4. Bei IPv6 können Daten nur auf dem Quellhost fragmentiert werden. Dies bedeutet, dass die Fragmentierung nicht in anderen Netzwerken als der Quelle durchgeführt werden kann.

Es ist kein Don't Fragment-Flag verfügbar, sodass Sie lediglich keine Fragmente erstellen müssen.

IP-Fragmentierung kann nicht durchgeführt werden, wenn PMTUD nicht verwendet wird. Knoten können keine MTU größer als 1280 Bytes verwenden, was das Minimum von IPv6 ist, wenn sie Path MTU Discovery (PMUTD) nicht implementieren.

Während die Pfad-MTU-Erkennung auf die gleiche Weise wie IPv4 funktioniert, ist die Meldung des ICMP-Fehlers anders:

(Bildnachweis: packetpushers.net)

Wenn das IP-Paket größer als die MCU ist, muss der IPv6-Router es verwerfen und einen Typ-2-ICMPv6-Fehler „Packet Too Big” – Code 0 – an den Absender senden.

Bitte beachten Sie, dass das Verlassen auf einen Rückkanal und die ICMP-Übertragung an den Ursprungshost mehrere Mängel aufweist – ein wichtiger ist, dass ICMP-Nachrichten aufgrund von Sicherheitsvorteilen häufig an verschiedenen Stellen in einem Netzwerk blockiert werden .

Auf diese Weise erhält der Ursprungshost die Packet Too Big-Nachrichten nicht und überträgt die IP-Pakete, die mehrmals verworfen wurden, erneut, die sicherlich nicht ankommen. Schließlich würde die Verbindung als instabil und geschlossen betrachtet werden. Selbst wenn ein neues eingerichtet würde, würde sich das Problem wiederholen.

Die Header-Felder, die sich auf die Fragmentierung beziehen, werden in einem Erweiterungs-Header platziert, der als Fragment-Header bezeichnet wird. Dies wird mit einem Next-Header -Feld (Wert 44) in einem standardmäßigen IPv6- oder einem beliebigen vorherigen Erweiterungs-Header angegeben.

Wie alle Erweiterungsheader ist dieser 8 Byte/64 Bit lang, zusammen mit einem Standardheader, was zu einer IPv6-Fragmentierung mit einem höheren Overhead als IPv4 führt.

Die verwendeten IPv6-Header-Felder

Überprüfen Sie die Felder im Erweiterungsheader des IPv6-Fragments:

(Bildnachweis: packetpushers.net)

Das Feld Next Header (8 Bits) gibt den Header-Typ an, beispielsweise einen Upper-Layer-Protocol-Header oder einen IPv6-Erweiterungs-Header. Die nächsten 8 Bits sind dann reserviert.

Das 13-Bit-Feld Fragment Offset wird ähnlich wie IPv4 verwendet. Danach werden die nächsten 2 Bits reserviert.

Das Feld- M – Flag wird auf 1 gesetzt, und das letzte Fragment wird wie das More Fragments (MF)  -Feld von IPv4 gesetzt.

Das 32-Bit- Identifikationsfeld ist dasselbe wie das IPv4-Feld mit 16 Bits, das eine eindeutige ID-Nummer für die Kombination von Quelladressen und Zieladressen enthält. Das Feld Protokoll ist in IPv6 nicht verfügbar.


Die Nachteile der IP-Fragmentierung

Es wird davon ausgegangen, dass der Stack des IP-Protokolls einen unzuverlässigen Mechanismus hat, aufgrund dessen die Endhosts die maximale Größe der Nutzlast nicht ermitteln können, wenn sie über einen IPv4- und IPv6-Host kommunizieren.

Obwohl das Fehlen eines MTU-Mechanismus im gesamten Netzwerk verständlich ist, da die IP-Pakete unterschiedliche Routen nehmen, kann das Fehlen von End-to-End-Informationen dazu führen, dass zwischengeschaltete Router übergroße Pakete empfangen und diese nicht weiterleiten können.

Die IPv4-Router können IP-Pakete während der Übertragung in Fragmente aufteilen, aber die gleiche Funktion ist in IPv6-Routern nicht verfügbar – wo der Absender die Fragmentierung durchführen muss.

Fragmentierung führt zu einer Spitze im Overhead von Layer-3. Wenn also zum Beispiel der Endhost glaubt, dass er IP-Pakete von 1500 Byte verwenden kann, aber auf seinem Pfad einen Hop mit der MTU-Größe 1472 hat, dann würde das IP-Paket in zwei Pakete geteilt, was zu einem hinzugefügten IPv6-Header von 40 Bytes und IPv4-Header von 20 Bytes.

IP-Fragmente stellen eine zusätzliche Belastung für das empfangende System dar, da es die Fragmente wieder zusammensetzen muss, um sie an höhere Protokollschichten zu liefern. Diese Aktivität wird verstärkt, wenn der Router den IP-Verkehr beendet.

Wenn ein Router versucht, die fragmentierten Pakete zusammenzusetzen, können die Pakete in der Hardware nicht wieder zusammengesetzt werden und die Leistung der Plattform drastisch verringern.


Häufig gestellte Fragen

Die IP-Fragmentierung ist für die Datenübertragung von entscheidender Bedeutung, da jedes Netzwerk eine andere Größenbeschränkung für die Verarbeitung von Daten hat. Diese Grenze wird auch als MTU (maximale Übertragungseinheit) bezeichnet.

Nein, Router können IP-Pakete fragmentieren, aber nicht wieder zusammensetzen. Es ist die Aufgabe des Zielgeräts, diese Pakete für den Benutzer wieder zusammenzusetzen.

Gehen einzelne oder mehrere Fragmente eines Datagramms verloren, wird das komplette Datagramm nach Ablauf der Timeout-Periode verworfen.


Fazit

Damit endet unsere ausführliche Anleitung zur IP-Fragmentierung.

Um Ihnen einen schnellen Überblick zu geben: Wenn die über ein Netzwerk gesendeten Daten größer als die Größe der maximalen Übertragungseinheit (MTU) sind, werden die Daten in mehrere Fragmente aufgeteilt und an den Empfänger gesendet.

Sobald die IP-Fragmente ihr Ziel erreichen, werden sie in der richtigen Reihenfolge wieder zusammengesetzt, damit die Daten für die Benutzer nützlich sind. Der Mechanismus der Fragmentierung unterscheidet sich sowohl zwischen IPv4- als auch IPv6-Netzwerken, deren Einzelheiten oben erwähnt wurden.

Falls Sie Fragen zu IP-Adressen und Fragmentierungen haben, wenden Sie sich bitte in den Kommentaren an uns.

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen