IPv6-Header und Extension Headers

IPv6-Header und Payload

Jedes IPv6-Datenpaket besteht aus einem Header (Kopf) und dem Payload, in dem sich die Nutzdaten befinden. Der Header ist den Nutzdaten vorangestellt.
Bei IPv6 ist der Header auf einfache Verarbeitung optimiert. Konkret bedeutet das, dass er aus einem Bereich mit einer festen Länge von 40 Byte besteht, der nur Informationen enthält, die für das IP-Routing wichtig sind. Optionale Informationen sind in einem oder mehreren Extension Headers ausgelagert, die sich zwischen Header und Payload befinden. Allerdings dürften die meisten IPv6-Pakete ohne Extension Headers auskommen.

Aufbau des IPv6-Headers

Aufbau des IPv6-Headers

Um die Verarbeitung der IPv6-Pakete zu vereinfachen wurde die Länge des IPv6-Headers auf 40 Byte fest definiert. Optionale Informationen werden in die Extension-Headers verlagert. Der feste Teil des IPv6-Headers enthält unter anderem die IPv6-Adresse von Sender und Empfänger. Das IPv4-Feld Time-to-live (TTL) ist das Hop Limit. Auf die Prüfsummenberechnung und Fragmentierung wird verzichtet, was den IPv6-Routern das Leben erleichtert.

Bedeutung der Felder im IPv6-Header

Feldinhalt Bit Beschreibung
Version 4 Hier ist die Version des IP-Protokolls abgelegt, nach der das IP-Paket erstellt wurde.
Traffic Class 8 Der Wert des Feldes definiert die Priorität des Paketes.
Flow Label 20 Das Flow Label kennzeichnet Pakete für ein viel schnelleres Routing. Das MPLS macht dieses Verfahren allerdings überflüssig.
Payload Length 16 Hier steht die im IP-Paket transportierten Daten in Byte. Bisher musste der Wert aus dem Feld Paketlänge abzüglich dem Feld IHL ermittelt werden.
Next Header 8 Hier ist das übergeordnete Transportprotokoll angegeben. Bei IPv4 hieß das Feld einfach Protokoll.
Hop Limit 8 Dieses Feld enthält die Anzahl der verbleibenden weiterleitenden Stationen, bevor das IP-Paket verfällt. Es entspricht dem TTL-Feld von IPv4. Jede Station, die ein IP-Paket weiterleitet, muss von diesem Wert 1 abziehen.
Source-Address 128 An dieser Stelle steht die IP-Adresse der Station, die das Paket abgeschickt hat (Quell-IP-Adresse).
Destination-Address 128 An dieser Stelle steht die IP-Adresse der Station, für die das Paket bestimmt ist (Ziel-IP-Adresse).
IPv6-Header-Erweiterungen
jeweils 64 Bit
(8 Byte)
Im IPv6-Header können optional Informationen im separaten Header dem IP-Kopf angehängt werden. Bis auf wenige Ausnahmen werden diese Header-Erweiterungen von IP-Routern nicht beachtet.

Extension Headers bzw. Header Extensions

IPv6 Extension Header bzw. Header Extensions

Optionale Header-Informationen sind in den sogenannten Extension Headers zwischen Header und Payload untergebracht. Das hat den Vorteil, dass es keine Größenbeschränkung für Optionen gibt und neue Optionen eingeführt werden können ohne den Header zu verändern. Die einzige Grenze liegt darin, dass ein Extension Header im Datenpaket Platz finden muss, was unter Umständen den Platz für den Payload reduziert, weil das IPv6-Paket in seiner Gesamtheit nur eine bestimmte Größe haben darf. Das heißt, Extension Headers verkürzen den Platz für die Nutzdaten.

Ein Extension Header wird vom Sender zwischen IPv6-Header und den Nutzdaten (TCP- oder UDP-Datagramm) eingefügt. Die Header können verkettet werden. Es muss aber eine bestimmte Reihenfolge eingehalten werden und jeder Header darf nur einmal vorkommen. Mit einer Ausnahme. Befindet sich ein Routing Header im Paket, darf davor ein weiterer Destination Options Header stehen.
Die Größe einer Header-Erweiterung muss ein Vielfaches von 64 Bit (8 Byte) betragen, um die Verarbeitung zu vereinfachen.

Extension Headers werden, von einer Ausnahme abgesehen, vom Ziel verarbeitet, was wesentlich effizienter ist. Der Hop-by-Hop Options Header muss von jedem Router auf dem Pfad zum Ziel ausgewertet werden. Wenn er vorhanden ist, muss er direkt als erstes auf den IPv6-Header folgen.

IPv6-Header-Extensions

Header-Erweiterungen tragen eine definierte Nummer, die sich in das bestehende System der Protokollnummern einfügt.

Nummer Extension Header
0 Hop-by-Hop Options
43 Routing
44 Fragment
51 Authentication Header (AH)
50 Encapsulation Security Payload (ESP)
60 Destination Options
135 Mobility
139 Host Identity Protocol
140 Shim6 Protocol
59 No Next Header (Ende eines Header-Stapels)

Die Reihenfolge bei einer Verkettung entspricht die der Tabelle mit Ausnahme des Destination Options Header, der ein zweites mal vorkommen darf.
Alle Extension Header enthalten ein Next-Header-Feld, in dem der nächste Extension Header oder das darüberliegende Protokoll gekennzeichnet ist.

IPv6-Paket-Fragmentierung und MTU-Discovery

Die Fragmentierung (Aufteilung) von IPv6-Paketen ist immer dann notwendig, wenn dessen Größe für ein Übertragungssystem auf dem Weg vom Sender zum Empfänger zu groß ist. Dann muss es aufgeteilt (fragmentiert) werden. Dazu muss der Sender die maximale Paketgröße, die MTU (Maximum Transmission Unit) genannt wird, ermitteln. Man bezeichnet das als MTU Discovery und ist Teil von ICMPv6.

In der Vergangenheit hatten Netzwerk-Administratoren die Angewohnheit in ihren Firewalls ICMP-Pakete für IPv4 zu sperren. In der Regel wegen eines seltsamen Sicherheitsverständnisses oder einfach aus Gewohnheit.
Ja, es ist richtig, Hacker können mittels Tools, die das Protokoll ICMP verwenden, fremde Netze ausspionieren und Sicherheitslücken entdecken. Das Sperren von ICMP macht auf den ersten Blick also Sinn. Doch damit hält man höchstens ein paar Skript-Kiddies auf. Ein guter Hacker findet auch die Sicherheitslücken, die durch das Sperren von ICMP verdeckt werden. Ein Administrator, der sein Netz versucht durch Sperren von ICMP zu schützen, hat unter Umständen richtige Sicherheitsprobleme und er versucht sie auf diese Art und Weise zu verschleinern.
Das Sperren von ICMPv6 hat bei IPv6 zur Folge, dass dann MTU Discovery nicht mehr funktioniert. Doch bei IPv6 ist MTU Discovery Pflicht, weil die Fragmentierung bei IPv6 nicht mehr durch die Router, sondern durch den Client erfolgt. Und der Client kann nur dann von der Notwendigkeit der IP-Paket-Fragmentierung erfahren, wenn er Rückmeldung per ICMPv6 bekommt.

Wenn ein IPv6-Router Datenpakete zerschneiden muss, dann verwirft er sie und schickt eine Mitteilung per ICMP an den Absender zurück. Mit der Fehlermeldung, dass das Paket zu groß ist und wie groß das Paket maximal sein darf. Der Client schickt dann wieder ein Paket in der entsprechenden Größe, in der Hoffnung, dass es jetzt durchgeht. Wenn auf dem Weg zum Empfänger ein IPv6-Router ein noch kleineres Paket möchte, dann schickt auch der eine ICMP-Meldung zurück und der Client muss das Paket erneut verkleinern. So lange, bis das Paket erfolgreich beim Empfänger ankommt.

MTU Path Discovery muss bei IPv6 eingeschaltet sein. Schaltet man MTU Path Discovery ab, dann funktioniert IPv6 in der Regel in öffentlichen Netzen nicht mehr. Wenn die IPv6-Paket zu groß sind, dann kommen sie einfach nicht an.

Übersicht: IPv6

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Artikel-Sammlungen zum Thema Netzwerktechnik

Collection: IPv6

Was du über IPv6 wissen solltest.

eBook kaufen

Collection: Netzwerk-Grundlagen

Was du über Netzwerk-Grundlagen wissen solltest.

eBook herunterladen

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!