Zum Inhalt springen

IPv6/Header

Aus Foxwiki

IPv6/Header

Beschreibung

  • Definiert im RFC 2460
  • fix 40 Bytes
  • davon je 16 Bytes für Absender- und Empfängeradresse
Vereinfachung des Headers

Enthält nur grundlegende Forwarding-Information
  • Zusätzliche Informationen in variablen zusätzlichen Erweiterungs-Headern, welche durch das „Next Header“ Feld identifiziert werden
  • Damit trotz vierfacher IPv6-Adresslänge (16 Byte) nur doppelte Headerlänge

IPv6 (Felder)

Byte/Bin 00–03 04–07 08–11 12–15 16-19 20–23 24–27 28–31
01 Version Traffic Class Flow Label H
e
a
d
e
r
02 Payload Length Next Header Hop Limit
03 - 06 Quell-IP-Adresse
07 - 10 Ziel-IP-Adresse
11+ Payload

IPv4 Header Felder

Option Beschreibung
Version always 4
TOS (type of service) precedence (3 bits) and “minimize delay”, “maximize throughput”, “maximize reliability”, “minimize cost” bits
Identifier identifier, different for each packet
TTL time to live field; initialized to 64; decremented at each router; drop if TTL = 0
Protocol next header proto (TCP 6, UDP 17)
Header checksum add together 16-bit words using one’s complement: software optimized

Entfallene Felder

Option Beschreibung
HL weil der IPv6Header eine feste Länge hat
Protocol wurde herausgenommen, weil das Feld Next-Header angibt welches Protokoll auf der Transportschicht verwendet wird.
Alle Felder in Bezug auf Fragmentierung wurden weggelassen, weil IPv6 Fragmentierung anders handhabt
  • IPv6-Router fragmentieren keine Pakete, sondern schicken der Quelle eine Nachricht kleinere Pakete zu schicken.
Checksum entfernt, weil die Berechnung der Prüfsumme bei jedem Hop sich negativ auf die Performance auswirkt
  • auf den Schichten über und unter der Vermittlungsschicht werden bereits Prüfsummen berechnet.
Padding

Header-Format

Feste Länge
  • Bei IPv6 eine feste Länge von 40 Byte (320 Bit)
  • Im Gegensatz zu IPv4
Extension Headers
  • Optionale, seltener benutzte Informationen werden in Erweiterungs-Kopfdaten (engl.: Extension Headers) eingebettet
  • zwischen IPv6-Kopfdatenbereich und der eigentlichen Nutzlast (Payload)

Kopfdaten

Kopfdaten laut RFC 2460
Feld Länge Inhalt
Version 4 Bit IP-Versionsnummer (6)
Traffic Class 8 Bit Für Quality of Service (QoS) verwendeter Wert. Eine Art Prioritätsvergabe.
Flow Label 20 Bit Ebenfalls für QoS oder Echtzeitanwendungen verwendeter Wert. Pakete, die dasselbe Flow Label tragen, werden gleich behandelt.
Payload Length 16 Bit Länge des IPv6-Paketinhaltes (ohne Kopfdatenbereich, aber inklusive der Erweiterungs-Kopfdaten) in Byte
Next Header 8 Bit Identifiziert den Typ des nächsten Kopfdatenbereiches, dieser kann entweder einen Erweiterungs-Kopfdatenbereich (siehe nächste Tabelle) oder ein Protokoll höherer Schicht (engl.: Upper Layer Protocol) bezeichnen, wie z. B. TCP (Typ 6) oder UDP (Typ 17).
Hop Limit 8 Bit Maximale Anzahl an Zwischenschritten über Router, die ein Paket zurücklegen darf; wird beim Durchlaufen eines Routers („Hops“) um eins verringert. Pakete mit null als Hop Limit werden verworfen. Es entspricht dem Feld Time to Live (TTL) bei IPv4.
Source Address 128 Bit Adresse des Senders
Destination Address 128 Bit Adresse des Empfängers

IPv6 Header in einem Trace File

IPv4 und IPv6 Header im Vergleich


IPv6-Erweiterungsheader

IPv6/Header/Erweiterungsheader

Maximum Transmission Unit (MTU)

Maximum Transmission Unit


Der IPv6 Header

Die Felder im IPv6 Header

Feldname Länge Inhalt des Feldes
Die Felder im IPv6 Header
Version 4 bits 6 (0110, 0x6)
Traffic Class 1 Byte Priorisierung (s. RFC 2474)
Flow Label 20 bits für gleichartige Pakete -> effizientes Routing
Payload Length 2 Bytes Länge der Daten nach dem IPv6 Header
Next Header 1 Byte Protokoll Nummer oder Extension-Header
Hop Limit 1 Byte Anzahl der Routerhops
Quelladresse 16 Bytes
Zieladresse 16 Bytes endgültiger Empfänger bzw. Adresse des nächsten Hops (z.B. wenn ein Routing Header vorhanden ist)
Summe der Bytes 40

Die aktuelle Liste aller Protokoll- und Headerwerte findet man bei der IANA.

Wert Beschreibung
Next Header Werte
0 (0, 0x0) in IPv4 reserviert und nicht benutzt

in IPv6 Hop-by-Hop Option Header

1 (0001, 0x1) ICMP IPv4
2 (0010, 0x2) IGMP IPv4
4 (0100, 0x4) IP in IP encapsulation
6 (0110, 0x6) TCP
8 (1000, 0x8) EGP
9 (1001, 0x9) IGP (Cisco IGRP)
17 (0001 0001, 0x11) UDP
41 (0010 1001, 0x29) IPv6
43 (0010 1011, 0x2B) Routing Header
44 (0010 1100, 0x2C) Fragmentation Header
45 (0010 1101, 0x2D) IDRP
46 (0010 1110, 0x2E) RSVP
47 (0010 1111, 0x2F) GRE
50 (0011 0010, 0x32) Encryted Security Payload Header
51 (0011 0011, 0x33) Authentication Header
58 (0011 1010, 0x3A) ICMPv6
59 (0011 1011, 0x3B) No Next Header für IPv6
60 (0011 1100, 0x3C) Destination Options Header
88 (0101 1000, 0x58) EIGRPv4 und EIGRPv6
89 (0101 1001, 0x59) OSPF
108 (0110 1100, 0x6C) IP Payload Compression Protocol
115 (0111 0011, 0x73) L2TP
132 (1000 0100, 0x84) SCTP
135 (1000 0111, 0x87) Mobility Header (Draft)
136-252 nicht zugewiesen
253-254 für Experimente und Testzwecke
255 (1111 1111, 0xFF) Reserviert

Extension Header

Extension Header sind zusätzliche Header, die Infos für die Netzwerkschicht (IP-Layer) beinhalten. Diese Header werden nur bei Bedarf eingefügt und liegen außerhalb des IP-Headers. Extension Header müssen ein Vielfaches von 8 Bytes lang sein.

Es sind 6 Basis Extension Header definiert, die immer implementiert sein müssen:

  • Hop-by-Hop Options Header (RFC 2460)
  • Routing Header (RFC 2460)
  • Fragment Header (RFC 2460)
  • Destination Options Header (RFC 2460)
  • Authentication Header (RFC 4302)
  • Encapsulating Security Payload Header (RFC 4303)

Extension Header dürfen höchstens einmal vorkommen, Destination Options Header dürfen höchstens zweimal vorkommen. Die Header müssen in einer definierten Reihenfolge auftreten:

  1. IPv6 Header
  2. Hop-by-Hop Options Header
  3. Destination Options Header (Optionen für Router)
  4. Routing Header
  5. Fragment Header
  6. Authentication Header
  7. Encapsulation Security Payload Header
  8. Destination Options Header (Optionen für den endgültigen Empfänger)
  9. Upper-Layer Header

Hop-by-Hop Options Header

Feldname Länge Inhalt des Feldes
Felder des Hop-by-Hop Options Header
Next Header 1 Byte Typ des folgenden Headers
Header Extension Length 1 Byte Länge des Hop-by-Hop Extension Headers in 8 Byte Einheiten ohne die ersten 8 Byte
Options variabel Besteht aus Option Type, Option Data Length und dem Datenteil

Die ersten zwei Bits des Option-Feldes geben die Art der Verarbeitung bei Nichterkennen der Option an. Das nächste Bit zeigt an, ob die Information in der Option geändert werden kann (1) oder nicht (0):

Wert der ersten beiden Bits Bedeutung
Anweisung bei Nichterkennen von Optionen
00 übergehen und Verarbeitung fortführen
01 Paket verwerfen
10 Paket verwerfen und ICMPv6 Parameter Problem an den Absender retour schicken
11 Paket verwerfen und ICMPv6 Parameter Problem an den Absender retour schicken, falls Empfänger keine Multicast- Adresse ist
Option Jumbogramm (RFC 2675)

Mit der Option Jumbogramm kann die maximale Paketgröße von 65535 Bytes (216-1 … das Payload-Feld im IPv6 Header ist 2 Bytes/16 bits lang) auf 4.294.967.295 Bytes (232-1 … das Jumbo Payload Length Field ist 32 bits groß) vergrößert werden.

Wird die Option Jumbogramm benutzt muß das Payload Length Feld auf 0 gesetzt sein und das Next Header Feld ebenfalls 0 (der Next Header ist ein Hop-by-Hop Option Header). Der Option Type Wert für Jumbogramme ist 194. UDP und TCP müssen ebenfalls entsprechende Erweiterungen für Jumbogramme besitzen.

Option Alert Header (RFC 2711)

Damit wird Routern angezeigt, dass in nicht für sie adressierten Paketen wichtige Informationen enthalten sind, die ausgewertet werden müssen. Solche Informationen werden derzeit von MLD und RSVP eingesetzt.

Die ersten 3 Bit des Option Type sind 0 gesetzt (ist einem Router die Option nicht bekannt, einfach weiterleiten). In den verbleibenden 5 bits ist der Typ 5 definiert. Das Data Length Feld beinhaltet 2, d.h. das nachfolgende Value Feld ist 2 Bytes lang:

Inhalt Value Feld Bedeutung
Werte im Value Feld
0 Paket enthält eine MLD-Nachricht
1 Paket enthält eine RSVP-Nachricht
2 Paket enthält eine Active Networks Nachricht
3 - 35 Paket enthält einen Aggregated Reservation Nesting Level (RFC 3175, RSVP)
36 - 65535 reserviert von IANA

Weiter Werte findet man in der aktuellen Liste der Router Alert Werte.

Routing Header

Der Routing Header wird im vorangegangenen Header mit dem Wert 43 angezeigt.

Im Routing Header wird eine Liste von Routern angegeben, über die das Paket weitergeleitet werden muß. Der Router muß von allen Routern in der Liste verarbeitet werden.

Feldname Länge Inhalt des Feldes
Format des Routing Headers
Next Header 1 Byte Beschreibt den Typ des folgenden Headers
Header Extension Length 1 Byte Länge des Routing Headers in 8 Byte Einheiten, ohne die ersten 8 Byte
Routing Type 1 Byte Typ des Routing Headers
Segments Left 1 Byte Anzahl der Nodes bis zum Erreichen des Ziels
Type Specific Data variabel vom Routing Type abhängig

Der Routing Type 2 wird bei Mobile IPv6 definiert.

Kann ein Router den Routing Type nicht identifizieren und steht das Segments Left Feld auf 0, muß er mit dem nächsten Header fortfahren. Ist das Segments Left Feld ungleich 0, dann wird das Paket verworfen und eine ICMPv6 'Parameter Problem' Nachricht an den Absender versandt.

Fragment Header

Der Fragment Header wird im vorhergegangenen Header mit dem Wert 44 angezeigt.

Feldname Länge Inhalt des Feldes
Format des Fragment Headers
Next Header 1 Byte Erster Header Type des fragmentierbaren Teils des ursprünglichen Pakets
Reserved 1 Byte auf 0 gesetzt
Fragement Offset 13 bits Offset der Daten in 8 Byte Einheiten
Reserved 2 bits auf 0 gesetzt
M-Flag 1 bit 0 -> letztes Paket, 1 -> weitere Pakete
Identification 4 Bytes kennzeichnet den Fragment Set

Die Fragmentierung erfolgt ausschließlich beim sendenden Host, der vorher mittels Path MTU Discovery die größtmögliche Paketgröße ermittelt hat.

Anhang

Siehe auch

Dokumentation

Links

Projekt
Weblinks