IPv6 (IP Next Generation, IPnG)
Der vorrangige Grund für eine Änderung des
IP-Protokolls ist auf den begrenzten Adreßraum und das Anwachsen der
Routing-Tabellen zurückzuführen. CIDR schafft hier zwar wieder etwas
Luft, dennoch ist klar absehbar, daß auch diese Maßnahme nicht
ausreicht, um die Verknappung der Adressen für eine längere Zeit in
den Griff zu bekommen. Weitere Gründe für eine Änderung des
IP-Protokolls sind die neuen Anforderungen an das Internet, denen
IPv4 nicht gewachsen ist. Streaming-Verfahren wie Real-Audio oder
Video-on-Demand erfordern das Festlegen eines Mindestdurchsatzes,
der nicht unterschritten werden darf. Bei
IPv4 kann so ein "Quality
of Service" jedoch nicht definiert - und damit auch nicht
sichergestellt - werden. Die IETF (Internet Engineering Task Force)
begann deshalb 1990 mit der Arbeit an einer neuen Version von
IP.
Die wesentlichen Ziele des Projekts sind:
-
Unterstützung von Milliarden von Hosts, auch
bei ineffizienter Nutzung des Adreßraums
-
Reduzierung des Umfangs der Routing-Tabellen
-
Vereinfachung des Protokolls, damit die
Router Pakete schneller abwickeln können
-
Höhere Sicherheit (Authentifikation und
Datenschutz) als das heutige
IP
-
Mehr Gewicht auf Dienstarten, insbesondere
für Echtzeitanwendungen
-
Unterstützung von
Multicasting durch die
Möglichkeit, den Umfang zu definieren
-
Möglichkeit für Hosts, ohne Adreßänderung auf
Reise zu gehen (Laptop)
-
Möglichkeit für das Protokoll, sich zukünftig
weiterzuentwickeln
-
Unterstützung der alten und neuen Protokolle
in Koexistenz für Jahre
Im Dezember 1993 forderte die IETF mit
RFC 1550
die Internet-Gemeinde dazu auf, Vorschläge für ein neues Internet
Protokoll zu machen. Auf die Anfrage wurde eine Vielzahl von
Vorschlägen eingereicht. Diese reichten von nur geringfügigen
Änderungen am bestehenden
IPv4 bis zur vollständigen Ablösung durch
ein neues Protokoll. Aus diesen Vorschlägen wurde von der IETF das
Simple Internet Protocol Plus (SIPP) als Grundlage für die neue
IP-Version ausgewählt.
Als die Entwickler mit den Arbeiten an der neuen
Version des Internet Protokolls begannen, wurde ein Name für das
Projekt bzw. das neue Protokoll benötigt. Angeregt durch die
Fernsehserie "Star Trek - Next Generation", wurde als Arbeitsname
IP
- Next Generation (IPnG) gewählt. Schließlich bekam das neue
IP eine
offizielle Versionsnummer zugewiesen: IP Version 6 oder kurz
IPv6.
Die Protokollnummer 5 (IPv5) wurde bereits für ein experimentelles
Protokoll verwendet.
Die Merkmale von IPv6
Viele der Merkmale von
IPv4 bleiben in IPv6
erhalten. Trotzdem ist IPv6 im allgemeinen nicht mit
IPv4
kompatibel, wohl aber zu den darüberliegenden Internet-Protokollen,
insbesondere den Protokollen der Transportschicht (TCP,
UDP). Die
wesentlichen Merkmale von IPv6 sind:
-
Adreßgröße: Statt bisher 32 Bit stehen
nun 128 Bit für die Adressen bereit. Theoretisch lassen sich
damit 2128 = 3.4*1038 Adressen vergeben.
-
Header-Format: Der IPv6-Header wurde
vollständig geändert. Der Header enthält nur sieben statt bisher
13 Felder. Diese Änderung ermöglicht die schneller Verarbeitung
der Pakete im Router. Im Gegensatz zu
IPv4 gibt es bei
IPv6
nicht mehr nur einen Header, sondern mehrere Header. Ein
Datengramm besteht aus einem Basis-Header, sowie einem oder
mehreren Zusatz-Headern, gefolgt von den Nutzdaten.
-
Erweiterte Unterstützung von Optionen und
Erweiterungen: Die Erweiterung der Optionen ist notwendig
geworden, da einige der bei
IPv4 notwendige Felder nun optional
sind. Darüber hinaus unterscheidet sich auch die Art, wie die
Optionen dargestellt werden. Für Router wird es damit einfacher,
Optionen, die nicht für sie bestimmt sind, zu überspringen.
-
Dienstarten: IPv6 legt mehr Gewicht
auf die Unterstützung von Dienstarten. Damit kommt IPv6 den
Forderungen nach einer verbesserten Unterstützung der
Übertragung von Video- und Audiodaten entgegen, z. B. durch eine
Option zur Echtzeitübertragung.
-
Sicherheit: IPv6 beinhaltet nun im
Protokoll selbst Mechanismen zur sicheren Datenübertragung.
Wichtige neue Merkmale von IPv6 sind hier Authentifikation,
Datenintegrität und Datenverlässlichkeit.
-
Erweiterbarkeit: IPv6 ist ein
erweiterbares Protokoll. Bei der Spezifikation des Protokolls
wurde nicht versucht, alle möglichen Einsatzfelder für das
Protokoll in die Spezifikation zu integrieren. Über Erweiterungs-Header kann das Protokoll erweitert werden.
Aufbau des
IPv6-Basis-Headers
Im IPv6 wird im Vergleich zum
IPv4 auf eine
Checksumme verzichtet, um den
Routern die aufwendige Überprüfung -
und damit Rechenzeit - zu ersparen. Ein Übertragungsfehler muss
deshalb in den höheren Schichten erkannt werden. Der Paketkopf ist
durch die Verschlankung nur doppelt so groß, wie ein
IPv4-Header.
-
Version:
-
Mit dem Feld Version können
Router
überprüfen, um welche Version des Protokolls es sich handelt.
Für ein IPv6-Datengramm ist dieses Feld immer 6 und für ein
IPv4-Datengramm dementsprechend immer 4. Mit diesem Feld ist es
möglich für eine lange Zeit die unterschiedlichen
Protokollversionen
IPv4 und
IPv6 nebeneinander zu verwenden.
Über die Prüfung des Feldes Version können die Daten an das
jeweils richtige "Verarbeitungsprogramm" weitergeleitet werden.
-
Priority:
-
Durch das Feld Priority (oder Traffic Class)
kann angegeben werden, ob ein Paket bevorzugt behandelt werden
muß. Dies ist für die Anpassung des Protokolls an die neuen Real
Time Anwendungen nötig geworden. Damit können zum Beispiel
Videodaten den E-Maildaten vorgezogen werden. Bei einem
Router
unter Last besteht damit die Möglichkeit der Flusskontrolle.
Pakete mit kleinerer Priorität werden verworfen und müssen
wiederholt werden. Mit den vier Bit lassen sich 16 Prioritäten
angeben, wovon 1 bis 7 für "Non Real Time"- und 8 bis 15 für
"Real Time"-Anwendungen reserviert sind. Die Zahl Null gibt an,
dass die Priorität des Verkehrs nicht charakterisiert ist.
-
Flow Label
-
Mit Hilfe des Feldes Flow Label können
Eigenschaften des Datenflusses zwischen Sender und Empfänger
definiert werden. Das Flow Label selbst ist nur eine
Zufallszahl. Die Eigenschaften müssen durch spezielle Protokolle
oder durch den Hop-by-Hop-Header in den Routern eingestellt
werden. Eine Anwendung ist zum Beispiel, daß die Pakete eines
Flusses immer den gleichen Weg im Netz nehmen. Durch Speichern
der Informationen für das jeweilige Flow-Label, muß der
Router
bestimmte Berechnungen nur für das erste Paket ausführen, und
kann danach für alle Folgepakete die Resultate verwenden. Erst
die Einführung des Flow Labels ermöglicht die Einführung von
Quality-of-Service-Parametern im
IP-Verkehr.
-
Payload Length
-
Das Feld Payload Length (Nutzdatenlänge) gibt
an, wie viele Bytes dem IPv6-Basis-Header folgen, der
IPv6-Basis-Header ist ausgeschlossen. Die Erweiterungs-Header
werden bei der Berechnung der Nutzdatenlänge mit einbezogen. Das
entsprechende Feld wird in der Protokollversion 4 mit Total
Length bezeichnet. Allerdings bezieht
IPv4 den 20 Byte großen Header auch in die Berechnung ein, wodurch die Bezeichnung
"total length" gerechtfertigt ist.
-
Next Header
-
Das Feld Next Header gibt an, welcher
Erweiterungs-Header dem IPv6-Basis-Header folgt. Jeder folgende Erweiterungs-Header beinhaltet ebenfalls ein Feld Next Header,
das auf den nachfolgenden Header verweist. Beim letzten
IPv6-Header, gibt das Feld an, welches Transportprotokoll (z.B.
TCP oder
UDP) folgt.
-
Hop Limit
-
Im Feld Hop Limit wird festgelegt, wie lange
ein Paket überleben darf. Der Wert des Feldes wird von jedem
Router vermindert. Ein Datengramm wird verworfen, wenn das Feld
den Wert Null hat.
IPv4 verwendete hierzu das Feld
Time to Live.
Die Bezeichnung bringt mehr Klarheit, da schon in
IPv4 die
Anzahl Hops gezählt und nicht die Zeit gemessen wurde.
-
Source Address, Destination Address
-
Die beiden Felder für Quell- und Zieladresse
dienen zur Identifizierung des Senders und Empfängers eines
IP-Datengramms. Bei IPv6 sind die Adressen vier mal so groß wie
IPv4: 128 Bit statt 32 Bit.
Das Feld Length (Internet Header Length - IHL)
von IPv4 ist nicht mehr vorhanden, da der
IPv6-Basis-Header eine
feste Länge von 40 Byte hat. Das Feld Protocol wird durch das Feld
Next Header ersetzt. Alle Felder die bisher zur Fragmentierung eines
IP-Datengramms benötigt wurden (Identification, Flags, Fragment
Offset), sind im IPv6-Basis-Header nicht mehr vorhanden, da die
Fragmentierung in IPv6 gegenüber
IPv4 anders gehandhabt wird. Alle
IPv6-kompatiblen Hosts und
Router müssen Pakete mit einer Größe von
1280 Byte unterstützen. Empfängt ein
Router ein zu großes Paket, so
führt er keine Fragmentierung mehr durch, sondern sendet eine
Nachricht an den Absender des Pakets zurück, in der er den sendenden
Host anweist, alle weiteren Pakete zu diesem Ziel aufzuteilen. Es
wird also vom Hosts erwartet, daß er von vornherein eine passende
Paketgröße wählt. Die Steuerung der Fragmentierung erfolgt bei IPv6
über den Fragment Header. Das Feld Checksum ist nicht mehr
vorhanden.
Erweiterungs-Header im IPv6
Bei IPv6 muß nicht mehr der ganze optionale Teil
des Headers von allen
Routern verarbeitet werden, womit wiederum
Rechenzeit eingespart werden kann. Diese optionalen Header werden
miteinander verkettet. Jeder optionale Header beinhaltet die
Identifikation des folgenden Header. Es besteht auch die Möglichkeit
selber Optionen zu definieren.
Derzeit sind sechs Erweiterungs-Header definiert.
Alle Erweiterungs-Header sind optional. Werden mehrere
Erweiterungs-Header verwendet, so ist es erforderlich, sie in einer
festen Reihenfolge anzugeben.
Header
|
Beschreibung |
IPv6-Basis-Header |
Zwingend erforderlicher IPv6-Basis-Header |
Optionen für Teilstrecken
(Hop-by-Hop Options Header) |
Dies ist der einzige optionale Header,
der von jedem
Router bearbeitet werden muß. Bis jetzt ist
nur die "Jumbo Payload Option" definiert, in der die Länge
eines Paketes angegeben werden kann, das länger als 64 KByte
ist. |
Optionen für Ziele
(Destination Options Header) |
Zusätzliche Informationen für das Ziel |
Routing
(Routing Header) |
Definition einer vollständigen oder
teilweisen Route. Er wird für das Source-Routing in IPv6
verwendet. |
Fragmentierung
(Fragment Header) |
In IPv6 wird, wie oben beschrieben, die
Fragmentierung nur noch End to End gemacht. Die Fragmentierinformationen werden in diesem optionalen Header
abgelegt. |
Authentifikation
(Authentication Header) |
Er dient der digitalen Signatur von
Paketen, um die Quelle eindeutig feststellen zu können.
|
Verschlüsselte Sicherheitsdaten
(Encapsulating Security Payload Header) |
Informationen über den verschlüsselten
Inhalt. |
Optionen für Ziele
(Destination Options Header) |
Zusätzliche Informationen für das Ziel
(für Optionen, die nur vom endgültigen Ziel des Paketes
verarbeitet werden müssen). |
Header der höheren Schichten
(Upper Layer Header) |
Header der höheren Protokollschichten (TCP,
UDP, ...) |
IPv6-Adressen
Die IPv6-Adressen sind zwar von 32 Bit auf 128
Bit angewachsen, trotzdem sind die grundsätzlichen Konzepte gleich
geblieben. Die Adresse wird normalerweise Sedezimal (Hexadezimal,
Basis 16) notiert und hat die allgemeine Form
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
Sie ist damit recht länglich. Um die Schreibweise
zu vereinfachen, wurden einige Regeln eingeführt:
-
Führende Nullen
Die führenden Nullen können mit Nullen oder Doppelpunkten
zusammengefasst werden.
1234:0000:0000:0000:0000:0000:0000:1234
-->
1234:0:0:0:0:0:0:1234
-->
1234::1234
-
IPv4 kompatible Adressen haben die Form:
0:0:0:0:0:0:C206:AFFE
oder
::C206:AFFE
Um die Lesbarkeit zu erhöhen kann man auch
eine gemischt Form verwenden:
::194.6.161.126
-
IPv4 gemappte
IPv6 Adressen haben die Form:
::FFFF:C206:A17E
-
Die Loopback Adresse ist neu (anstelle
127.0.0.1):
::1
In
IPv4 wurden die Adressen anfänglich in die
bekannten Klassen eingeteilt. Ein weiteres Problem bei den
IPv4
Adressen ist, daß die
Router keine Hierarchie in den Adressen
erkennen können. Auch IPv6 ist in der allgemeinen Form
unstrukturiert, es kann aber durch definierte Präfixe strukturiert
werden. Die allgemein strukturiert Adresse sieht danach wie folgt
aus:
Die Strukturierung erlaubt die Einteilung der
Adresse in Adresstypen. Jeder Präfix identifiziert somit einen
Adresstyp. Die bereits definierten Adresstypen und die zugehörigen
Präfixe sind:
Adresstyp |
Präfix (binär) |
Reserviert für IPv4 und Loopback |
0000 0000 |
NSAP-Adressen |
0000 001 |
IPX-Adressen |
0000 010 |
Anbieterbasierte Unicast-Adresse |
010 |
Reserviert für geografische
Unicast-Adresse |
100 |
Zusammenfassbare globale Adressen |
001 |
Standortlokale Adresse |
1111 1110 11 |
Multicast-Adresse |
1111 1111 |
Wie man in der Tabelle erkennen kann, werden die
Adressen grob in die Typen Unicast,
Multicast und Anycast
eingeteilt, deren Eigenschaften nachfolgend kurz erklärt werden
sollen.
-
Unicast
Als Unicast-Adressen bezeichnet man die Adressen, die für
Punkt-zu-Punkt-Verbindungen verwendet werden. Sie werden in
verschiedene Gruppen eingeteilt:
-
Geographisch basierte Unicast-Adresse
Für diese Adressen wurde erst der Adressbereich und der
Präfix reserviert. Die Idee ist, dass ein hierarchisches
Routing aufgrund der geographischen Lage - ähnlich wie beim
Telefon - möglich sein soll.
-
Anbieterbasierte Unicast-Adressen
Dieser Adresstyp erlaubt ein hierarchisches
Routing
aufgrund der Adressräume der Anbieter. Diese Adressen werden
von einem Register über ein großes Gebiet verwaltet. Diese
Register geben die Adressen an die Anbieter weiter, welche
ihrerseits Adressen weitergeben können. Somit ergibt sich
eine Adress-Struktur, die wie folgt aussieht:
Die Einführung von nationalen Registern
ergibt eine Aufteilung der Anbieter- und Subscriber-ID in
National-Register-, Anbieter- und Subscriber-ID.
-
Linklokale und standortlokale Adressen
Diese Adressen werden für die
TCP/IP-Dienste innerhalb eines
Unternehmens genutzt. Die Linklokalen Adressen werden nicht in
das Internet geroutet und haben den folgenden Aufbau:
Im Gegensatz dazu stehen die standortlokalen
Adressen, die nur innerhalb eines Subnetzes gültig sind und
deshalb von keinem
Router behandelt werden.
-
Multicast-Adressen
In IPv4 wird das Rundsenden eines Paketes an mehrere Stationen
durch das IGMP (Internet Group Management Protokoll) realisiert.
In IPv6 ist das Prinzip übernommen, aber ein eigener Adresstyp
definiert worden. IGMP entfällt somit gänzlich. Das Paket für
Multicast-Meldungen sieht wie folgt aus:
Das Flag gibt an, ob die Gruppen ID temporär,
oder von der
IANA zugewiesen ist. Der Scope gibt den
Gültigkeitsbereich der
Multicast Adresse an. Dieser reicht vom
nodelokalen bis zum globalen Bereich.
-
Anycast Adressen Diese Adressen sind neu definiert worden. es können mehrere
Rechner zu einer Gruppe zusammengefasst werden und sie sind dann
unter einer einzigen Adresse erreichbar. Damit ist
beispielsweise eine Lastverteilung möglich: der Rechner, der am
wenigsten belastet ist, behandelt das Paket. Die Adresse hat die
folgende Struktur:
Sicherheit
Der Bedarf an digitalen Unterschriften oder
elektronischen Zahlungsmöglichkeiten steigt ständig. Deshalb stand
bei der Spezifikation von IPv6 die Sicherheit von Anfang an im
Mittelpunkt. Für die Sicherheitsfunktionen von IPv6 ist eine
spezielle Arbeitsgruppe "IPSec" zuständig.
In IPv6 wurden Sicherheitsmechanismen für die Authentisierung und
Verschlüsselung auf IP Ebene spezifiziert. Die
Verschlüsselungsfunktionen definieren Verfahren, die das Mitlesen
durch Unbefugte verhindern. Es gibt zwei unterschiedliche Ansätze.
Bei der ersten Variante werden alle Nutzdaten (Payload)
verschlüsselt. Der Header bleibt normal lesbar. Bei der anderen
Variante ist es möglich, den Header ebenfalls zu verschlüsseln. Das
codierte Paket wird in ein anderes IPv6-Packet verpackt und zu einem
fixen Ziel befördert ("IP-Tunnel"). Am Ziel wird das Paket wieder
entschlüsselt und über das sichere interne Netz übertragen.
Authentisierungsmechanismen liefern den Beweis
auf Unverfälschtheit der Nachricht und identifiziert den Absender
(Digitale Unterschrift). Hier werden verschiedene kryptographische
Verfahren eingesetzt. Die Verfahren für die Verschlüsselung und die
Authentisierung können auch getrennt angewandt werden. Verwaltung
und Verteilung der Schlüssel wird nicht von IPv6 gelöst. Das
Standardverfahren für den IPv6-Authentisierungsmechanismus ist
MD5
mit 128 Bit langen Schlüsseln. IPv6 schreibt keinen
Verschlüsselungsmechanismus vor, jedes System im Internet muß jedoch
den DES mit CBD (Cipher Block Chaining) unterstützen. |