2.3.6 IPv6 (IPnG)
Schon seit geraumer Zeit ist klar, dass das in 2.3.1 beschriebene IP-Protokoll aufgrund des raschen Wachstums des Internet schon bald unzureichend werden würde. Das liegt einerseits an einer weltweiten Verknappung der IP-Adressen und anderseits an den, aufgrund der restriktiven Adressvergabe, immer umfangreicher werdenden Routingtabellen. Ab dem Jahr 1993 wurde unter dem Titel IPnG (Internet Protokoll next Generation) ein neues Protokoll entwickelt, das die Bezeichnung IPv6 erhielt und in den RFC 1883 [Internet Protocol, Version 6 (IPv6) Specification, Dec. 1995] bzw. RFC 2460 [Internet Protocol, Version 6 (IPv6) Specification, Dec. 1998] spezifiziert ist.
Wir beschreiben im Folgenden die wesentlichen Merkmale von IPv6:
Adressen:
Die Länge der Adresse beträgt 128 Bit statt 32 Bit bei IPv4. Es gibt also künftig 2128=3.4 1038 IP-Adressen, was in Worten der Zahl 340 Sextillionen entspricht. Die Darstellung der 128 Bit langen Binärzahl erfolgt in 8 Blöcken zu je 16 Bit, die hexadezimal angegeben werden. Zur besseren Lesbarkeit wird als Trennzeichen ein Doppelpunkt nach je 16 Bit gesetzt.
3FA5:0200:0350:0000:0000:0000:0000:0001
Weiters dürfen Gruppen von Nullen einmal weggelassen werden. Ebenso werden führende Nullen nicht angeschrieben. Damit wird unser Beispiel zu:
3FA5:200:350::1
Darüber hinaus sollen die bisherigen IPv4-Adressen weiter verwendet werden können. Für embedded IPv4-Adressen, die sich wie IPv6-Adressen verhalten, ist die gemischte Darstellung
::0000:193.170.8.138
erlaubt, jedoch mittlerweile als veraltet gekennzeichnet. Kennzeichen sind die führenden Nullen. In der IPv6-Schreibweise entspricht dem
::0000:C1AA:88A
was man einfach aus
HEX(193*28+170) und HEX(8*28+138)
errechnet. Für routbare IPv4-Adressen, die aber ansonsten die Eigenschaften von IPv6 nicht unterstützen ist die gemischte Schreibweise
::FFFF:193.170.8.138
festgelegt, Kennzeihen ist das Präfix ::FFFF. Schließlich bedeutet bei IPv4-Subneting die Darstellung
::0000:C1AA:88A/96
wie gewohnt, dass die führenden 96 Bit auf die Netzwerkadresse und 128-96=32 Bit auf die Hostadresse entfallen.
Datagrammheader
Das Headerkonzept wurde bei IPv6 völlig neu gestaltet. Jedes Datagramm enthält einen IPv6-Basisheader und optional IPv6-Erweiterungsheader für speziellere Informationen.
optional | ||||||
Base Header | Extension Header | ... | Extension Header | Daten |
Der Base-Header von IPv6 ist doppelt so lang wie der IPv4-Header, was an der Länge von Source- und Destinationadress liegt, hat aber dafür nur mehr 8 Felder (statt 12). Im Base Header befinden sich außer einem Feld Version ein Class-Feld, in dem dem Datagramm eine bestimmte Priorität zugeordnet werden kann oder ein Flow Label-Feld, in dem Router veranlasst werden können, das Paket in besonderer Weise (z.B.: real time) zu behandeln. Payload Length gibt die Nutzdatenlänge des Datagramms an, Next Header bestimmt den Typ des ersten Erweiterungsheaders und Hop Limit entspricht dem TTL-Feld, das von jedem Router dekrementiert und beim Wert 0 verworfen wird.
4 Bit | 4 Bit | 4 Bit | 4 Bit | 4 Bit | 4 Bit | 4 Bit | 4 Bit |
Version | Class | Flow Label | |||||
Payload Length | Next Header | Hop Limit | |||||
Source Adress | |||||||
Destination Adress |
Die fehlenden Felder fehlen entweder gänzlich, wie etwa Checksum, oder die entsprechenden Informationen werden in einen der optionalen Erweiterungsheader gepackt. Es fehlen auch alle Informationen zur Datagrammfragmentierung, weil diese unter IPv6 quasi abgeschafft ist. IPv6 erwartet vom sendenden Host, dass die Pakete eine Größe von 1280 Byte nicht übersteigen, und die werden von IPv6-Routern ohne zu fragmentieren weitergeleitet. Damit sollen die Router wesentlich entlastet werden.
Zur Aufnahme weiterer Informationen dienen Erweiterungsheader:
Header | Beschreibung |
---|---|
IPv6-Basis-Header | Erforderlich |
Hop-by-Hop Options Header | Optionen für für Router auf den Teilstrecken |
Destination Options Header | Informationen für das Ziel |
Routing Header | Definition einer vollständigen oder teilweisen Route |
Fragment Header | Verwaltung von Datengrammfragmenten |
Authentication Header | Echtheitsüberprüfung des Senders |
Encapsulating Security Payload Header | Informationen über den verschlüsselten Inhalt |
Upper Layer Header | Header der höheren Protokollschichten (TCP, UDP, ...) |
Eigenschaften von IPv6
http://[3FA5:0200:350:0:0:0:0:1]:80
fe80:0000:0000:0000:3456:bb45:78a0:affe oder kürzer fe80::3456:bb45:78a0:affe
Adresstypen
Der Adressraum des IPv6 Protokolls wird nicht wie bei IPv4 in Netzklassen geteilt. Die Aufteilung des Adressraums erfolgt aufgabenorientiert durch Präfix, deren Länge in Bit nach einem Schrägstrich an die Adresse angehängt wird. Wir geben einige spezielle Adressen oder Adressbereiche an:
Adresse | Verwendung |
---|---|
::/128 | undefinierte Adresse wie 0.0.0.0 |
::1/128 | eigener Standort (localhost, loopback) |
0:0:0:0:0:FFFF::/96 | in IPv6 abgebildete IPv4-Adressen, die IPv4-Adresse steht in den letzten 32 Bit |
Unicastadressen sind Adressen der Interfaces, wobei jedes Interface mehrere Unicastadressen haben kann. Der grundsätzliche Aufbau ist:
3 bit 13 bit 8 bit 24 bit 16 bit 64 bit Prefix TopLevel-ID Reserved Next-Level-ID Site-Level-ID Interface-IDProtokoll ProviderID vom Provider vergeben vom Sitebetreiber vergeben Hinsichtlich der Präfixe gibt es:
Präfix Verwendung 2001 weltweit geroutet, Bitfolge 001... FE80 Link-lokal, Nachbarschaftserkennung, Peer to Peer FEC0 Site-lokal, zum Routen in Subnetzen, erhalten eine SubnetzID
Sie ersetzen die aus IPv4 bekannten Broadcasts, ihr Präfix beginnt mit FF. Sie gestatten ein breites Spektrum an Optionen, die in den folgenden Bits eingestellt werden können. Vorab definiert sind zum Beispiel:
- ff02::1 ip6-allnodes
- ff02::2 ip6-allrouters
- ff02::3 ip6-allhosts
- FF02:0:0:0:0:1:FF00::/104 solicited-nodes (für Knoten die Angesucht haben
Der Adressbereich von Anycastadressen liegt in dem der Unicastadressen. Anycastadressen sind von Unicastadressen daher auch formal nicht zu unterscheiden. Anycastadressen adressieren eine Gruppe von Knoten, wobei grundsätzlich jener Knoten konkret adressiert wird, zu dem die kürzeste Route führt. Das Verfahren ist mit einem Callcenter vergleichbar, bei dem bekanntermaßen jener Apparat die Verbindung herstellt, der am raschesten reagieren kann. Anycastadressen werden derzeit nur Routern zugewiesen und sollen die Netzauslastung optimieren helfen.
DNS
Probleme bereitet derzeit die Umsetzung der IPv6 Adressen in das DNS-System. Die automatische Suche nach Nameservern ist nämlich bei der Autokonfiguration von IPv6 derzeit nicht implementiert. Abhilfe schafft hier in der Praxis DHCPv6, das eigentlich mit IPv6 überflüssig sein sollte. Zudem ist auch die Darstellung der IPv6-Records auf Nameservern nicht letztgültig standardisiert.