Das Protokoll IPv6

Dokumentverfasser ist Nico VanHaute

Geschichte des IP Protokoll

Die Lebenstage des jetzigen IP Protokoll (IPv4) sind gezählt. Anfang der 90er Jahre war Internet weigehend von Universitäten, Spitzfeldindustrie und von Regierungsbehörden benutzt, aber das Interesse der Unternehmen nahm zu; es wird zunehmend von immer mehr Einzelpersonen und Systeme benutzt, die die unterschiedlichsten Bedürfnisse haben. Ein Beispiel : mit der unmittelbar bevorstehenden Koexistenz der Rechner, Netze, audiovisuelle Sektoren und Freizeitindustrie, wird jedes Fernsehgerät bald mit Internetzugang ausgestattet, das Milliarden von Einzelpersonen erlaubt, z.B. Video-on-Demand, Teleshopping oder auch E-Commerce zu führen. Unter diesen Umständen, das Protokoll IPv6 (auch Ipng für IP new generation) muss flexibler und zuversichtlicher laufen, damit die ganze Vielfalt der kommenden Probleme gelöst und einen Adressmangel verhindert werden.

Die Hauptzielsetzungen dieses neuen Protokolls wären :

  • Die Unterstützung der Milliardenscharen von Rechner durch eine Zwangsbefreiung vom derzeitigen IP Adressraum,
  • Eine Reduzierung der Routentabellengrösse,
  • Ein Protokollvereinfachung die Router eine schneller Abarbeitung der Routendatagramme erlaubt,
  • Eine bessere Sicherheit anbieten (Identitätsüberprüfung und Vertraulichkeit) als das derzeitige Protokoll,
  • Der Dienst-Art bessere Aufmeksamkeit schenken, insbesondere den Diensten des Echtzeitverkehrs,
  • Eine vereinfachtes Multicast durch Bestimmung des Gültigkeitsbereiches,
  • Einem Rechner die Möglichkeit des Ortwechsel geben, ohne Adressänderung,
  • Das Protokoll offen lassen für spätere Evolution,
  • Dem alten sowie dem neuen Protokoll ein friedliches beisammen Sein bescheren.

Das Protokoll IPv6

Das Protokoll IPv6 gibt eine vernünftige Antwort auf den vorgelegten Zielsetzungen. Er erhält die besseren Funtionen von IPv4, beseitigt oder minimiert die schlechten, und fügt wenn erforderlich neue hinzu.

Im Allgemeinen, ist IPv6 mit IPv4 nicht kompatibel, aber es behählt seine Kompatibilität mit anderen Internet Protokolle, davon TCP, UDP, ICMP, IGMP, OSPF, BGP und DNS ; ab und zu sind gewisse Änderungen notwendig (insbesondere für die Bearbeitung von langen Adressen).

Les principales fonctions d'IPv6

Die wichtigste Erneuerung von IPv6 ist das Verwenden von längeren Adressen als IPv4.
Sie werden auf 16 Byte kodiert und erlauben die Problemlösung mit der IPv6 bekannt wurde : das Erzeugen von einer quasi unbegrenzten Anzahl von Adressen.

IPv4 beherrscht 2^32=4,29.10^9 Adressen, wogegen IPv6 2^128=3,4.10^38 adressieren kann.

Die massgebliche Aufbesserung von IPv6 ist die Vereinfachung des Datagramm-Header. Der Datagramm-Header in IPv6 umfasst nun nicht mehr als 7 Felder (gegen 14 für IPv4). Diese Änderung macht es den Router möglich, die Datagramme schneller abzuarbeiten und verbessert somit dessen globalen Durchsatz.

Die dritte Verbesserung bewirkt eine höhere Flexibilität des Optionsangebots. Diese Änderung ist unentbehrlich mit dem Aufkommen des neuen Header, da die Zwangsfelder der alten Version nun optional werden.
Im übrigen, sind die Optionen anders dargestellt; Die Router können Ihnen nicht zugedachte Optionen, nun einfacher übergehen. Diese Funktion beschleunigt die Datagrammprozesszeit.

Wiederum, bringt IPv6 eine grössere Sicherheit :
Identitätsüberprüfung (Authentifizierung) und Vertraulichkeit stellen die Sicherheitshauptsäule beim neuen IPv6 Protokoll dar.

Schliesslich wurde, im Vergleich zu früheren Zeiten, den Dienst-Arten eine grössere Aufmerksamkeit geschenkt. Obwohl das Feld Dienst-Art im Datagramm IPv4 nur sehr selten benutzt wurde, zwingt uns das erwartete Wachstum des zukünftigen Multimediaverkehr zu höheren Überlegungen.

Datagramm Basis Header

So kann man das IPv6 Datagramm veranschaulichen :

<--------------------------- 32 bits --------------------------->

Version Verkehrsklasse Flusskennung (Flow label)
Datenlänge Folge-Header Schrittzahl
Quell-IP Adresse
Ziel-IP Adresse
Daten

Folgend die Bedeutung der einzelnen Felder :

  • Das Feld Version ist immer gleich 4 bits in IPv6. Während der Übergangszeit von IPv4 nach IPv6, müssen die Router dieses Feld noch überprüfen um den gerouteten Datagrammtyp zu erfahren.
  • Das Feld Verkehrsklasse (auf 8 bits kodiert) bestimmt die Quellen die sich eine Flusskontrolle Dritter, dienen sollen. Prioritäten von 0 bis 7 werden an Quellen vergeben, die unter dem Verdacht stehen, bei Engpässe den Durchsatz zu verlangsamen. Die Werte 8 bis 15 werden dem Echtzeitverkehr mit konstantem Durchsatz vergeben (etwa Audio/Video Daten).
    Diese Flusswertunterscheidung führt zu besseren Routerhandlungen bei Engpässe. In jeder Prioritätsgruppe, entspricht das niedrigste Prioritätslevel die am gering wichtigsten Datagramme.
  • Das Feld flow label oder Flusskennung enhält eine, durch die Quelle eindeutig gewählte Nummer, die auf eine Vereinfachnug der Routeraufgaben und Umsetzung der Dienstgütefunktionen wie RSVP (Resource reSerVation setup Protocol ) zielt. Dieser Indikator wird als Kontextzeiger im Router betrachtet. Der Router kann dann Sonderaufgaben übernehmen : Routenwahl, Informationsbehandlung in "Echtzeit", …
    Das Feld Flow Label kann mit einem zufallsbedingten Wert gefüllt werden, und dient der Kontextreferenzierung. Die Quelle wendet diesen Wert mit jedem gesendeten Paket solange sich Applikation und Ziel nicht ändern. Der Router braucht nur noch 5 Felder für das Bestimmen der Paketzugehörigkeit - somit ist die Datenbehandlung optimiert.
  • Das Feld Nützliche Datenlänge ( eng. payload) auf 2 Bytes, hält nur die nützlichen Daten ohne Kopfdatenbereich. Wenn die Paketdaten grösser sind als 65536, geht dieses Feld auf 0 und es wird die Erweiterung "Hop-by-Hop" aus der Option Jumbogramm eingesetzt.
  • Das nächste Header Feld hat eine ähnliche Funktion mit dem Feld protocole vom Paket IPv4 : Er identifiziert einfach den nächsten Header (im selben IPv6 Datagramm). Es kann ein protocole (höheren Level ICMP, UDP, TCP, …) oder eine Extension sein.
  • Das Feld Schrittzahl oder Hop Limit ersetzt das Feld "TTL" (Time-to-Live) im IPv4. Sein Wert (über 8 bits) wird bei jedem überschrittenen Knoten um Eins verringert. Sollte das IPv6 Paket beim Router zwischenschritt den Wert 0 bekommen, wird es einfach verworfen mit gleichzeitiger Erzeugung eine ICMPv6 Fehlermeldung. Das Feld verhindert das unendliche Schreiten im Datagramm. Es spielt die gleiche Rolle von Lebensdauer in IPv4, er enthält nähmlich einen Wert mit den Zwischenschritte (hops) der, beim jedem Router Durchschritt um Eins veringert wird. In der Theorie,in IPv4, gibt es ein Sekunden Zeitindex der von Router nicht als solcher genutzt war, und so wurde er umgetauft auf den neuen Verwendungszweck.
  • Schnell noch die Felder Quell-Adresse und Ziel-Adresse.
    Nach langen Auseinandersetzungen, wurden Adressen mit einer festen Länge von 16 Bytes, als die beste Einigung entschieden.
    Die ersten Bits der Adresse - Präfix - legen den Adresstyp fest. Die Adressen mit 8 führenden Nullen sind reserviert, insbesondere für die Adressen IPv4. So sind Adressen mit 8 führenden Nullen den IPv4 Adressen reserviert. Zwei varianten werden unterstützt ; sie unterscheiden sich durch die folgenden 16 Bits (nähmlich 16 Nullen oder 16 Einsen).

Geographische Aufteilung anhand von Präfixe

Die Benutzung von getrennten Präfixe für die Provider zugeteilten Adressen und die einer geographischen Zone zugeteilten Adressen stellen ein Kompromiss zwischen zwei verschieden Betrachtungsweisen der Internet Zukunft. Jeder Provider verfügt über einen Anteil reservierten Adressraum (1/8 de Raumes). Die 5 ersten, dem Präfix 010 folgenden bits, beschreiben das "Ortsregister" in dem sich der Provider befindet. Zur Zeit, sind 3 Register im Umgang, eins für Nordamerika,eins für Europa und eins für Asien. Bis zu 29 Register sollen später dazu kommen.

Jedem Register steht es frei die restlichen 15 Bytes nach belieben zu gestalten. Eine ander Möglichkeit wäre die Verwendung von einem Byte zur Bestimmung der Landzugehörigkeit des Providers und die restlichen Bytes für sonstige Zwecke einer spezifischen Adress-Struktur.

Das geographische Modell bleibt mit dem jetzigen Internet gleich, bei dem die Provider keine grosse Rolle spielen. In diesem Rahmen kann IPv6 zwei Adresstypen verwalten.

Die Adressen der Links und lokale sites besitzen nur eine lokale Bedeutung. Sie dürfen von anderen Stellen wiederbenutzt werden ohne dass Konflikte entstehen. Sir dürfen nicht ausserhalb der Organisationsgrenzen weiterverteilt werden; das macht sie indessen besonders ähnlich mit den Firewall die ein Privatnetz vom öffentlichen Internet schützt.

Broadcast Adresse

Die Adressen für den Multicast verfügen über ein Feld Flagge (4 bits) und ein Feld Gültigkeitsbereich (4 bits) hinter dem Präfix, dann ein Feld Group Identifier (112 bits). Eins der Flag bits trennt feste Gruppen von flüchtigen Gruppe.

Das Feld Gültigkeitsbereich erlaubt eine beschränke Verbreitung in der Zone

Adresse anycast

Zusätztlich zur klassischen Point-to-Point Adressierung (unicast) und der Mehradressenverteilung (multicast),unterstützt IPv6 noch neue Type der Adressierung zum "Erstkommenden" (anycast).

Diese Technik ähnelt dem Multicast in dem Sinne dass die Zieladresse eine Adressengruppe ist; aber anstatt sämliche Gruppenmitglieder das Datagramm bereitzustellen, wird sie nur ein einziges Gruppenmitglied betreuen, nähmich den Nächsten oder den Empfangsfähigsten.

Die IPv6 Notation

Eine neue Notation wurde für die Beshreibung der 16 Bytes IPv6 Adressen bereigestellt. Sie gliedert sich in 8 Gruppen von 4 Hexadezimalzahlen getrennt durch das Dopllet-Punkt Zeichen. Z.B. :

8000:0000:0000:0000:0123:4567:89AB:CDEF

Da mehrere Adresse mehere Nullen führen, wurden optimierung festgelegt. Zunächst werden die führende 0-en der Gruppe übersprungen, wie z.B. 0123 das 123 geschrieben wird. Dann ein oder mehr Tupel von 4 benachbarten Nullen werden durch einen doppelten zwei-Punkt ersetzt. So wird obige Adresse zu :

8000::::123:4567:89AB:CDEF

Zum Scluss, die Adressen IPv4 können durch die eben beschriebene floating Point Technik umgesetzt werden gefoglt von 2 Doppelpunkte, wie z.B. :

::192.31.254.46

Eine nähere Erläuterung dieserAdress-Notierung ist notwendig, man muss aber wissen dass die Zahl der 16 Byte Adressen sehr gross ist. Noch näher, 2^128, oder ca. 3 x 10^38. Wenn die ganze Erde (Land und Wassermassen zusammengelegt) mit Rechner bedeckt wäre,könnte IPv6 7 x 10^23 Adressen auf jeden m² anlegen.

Das Feld protocole ist ausgeschlossen weil das Feld nächster Header vom vorigen IP Header des Datagramm den protocole Type beschreibt ( z.B., UDP oder TCP).

Sämtliche Framentbezogene Felder wurden zurückgezogen, da IPv6 einen anderen Aufbau der Fragmentierung vorsieht.
Zum Beginn,mussen alle IPv6 komforme Rechner und Router, Datagramme über 576 Bytes beherrschen. Diese Regel schiebt die Fragmentierung an sekundäre Stelle. Im Übrigen, wenn ein Rechner einen viel zu grosses Datagramm sendet, anders als bei der Fragmentierung, sendet der nicht fähige Router eine Fehlermeldung an die Quelle. Diese Meldung veranlasst den Quell-Rechner das weitersenden von neuen Datagramme an diesem Ziel zu unterbrechen. Ein Rechner der fähig ist Datagramme richtig zu dimensioneren ist bei weitem, wirsamer als ein Router der am Flug fragmentiert.

Zum Schluss, das feld Check control wurde ausgelassen weil er die Leistungsfähigkeit einschränkt. In wirklichkeit, macht die Fähigkeit der heutigen Netze, gekoppelt mit der Tatsache dass die Datenverbindungsschichten und die Übertragung ihre eigenen Prüfdienste haben, macht es eigentlich keinen Sinn mehr, einen zusätzlichen Prüfkontrolle einzurichtet.

Extension Header

Dieser Header liefert eine Informationsvervollständigung auf zuversichtliche Weise. Sie sind optional. Wenn mehr als ein Header vorhanden sind, müssen sofort nach dem festen Header auftauchen, am besten nach der Listenordnung.

Gewisse Header haben ein festes Format; andere beinhalten eine veränderliche Zahl von Variablenfelder. Dafür wird jedes Item zu eine Tupelform (Typ, Länge, Wert) kodiert. Der Typ ist ein 1-Byte Feld mit der Optionart. Die verschiedenen Type wurden so gewählt dass die ersten 2 bits den Router zeigen können was getan werden soll wenn sie nicht in der Lage sind, die Optionen auszuführen.
Die Auswahl ist :

  • Option auslassen
  • Datagramm verwerfen
  • ein ICMP Meldung an die Quelle
  • Stillschweigend das Datagramm verwerfen ohne ICMP Rückmeldung, wenn das Datagramm ein multicast ist (verhindert eine zu grosse Zahl von ICMP Rückberichte.

Die Länge ist ein 1 Byte breites Feld. Sie gibt die Grösse des Feldes Wert (0 bis 255) an und beherbergt eine beliebige Information zum Empfänger.

Header Shrit für Schritt (Hop-to-Hop)

Der Header Hop to Hop trägt Informationen für alle Router der Stecke.

Header Routage

Der Header Routage gibt die Liste von eimen oder mehrere Router an, die auf der Strecke durchgelaufen werden, in Zielrichtung. Es gibt zwei kombinierte Arten von Routage : der strickte Routage (die gesamte Strecke ist bereits definiert) und ein loses Routage (nur die zwingenden Router sind definiert).

Die erste 4 Felder der Header extension Routage enthalten 4 Ganzen eines Bytes :

  • Der folgende Header-Typ
  • Der Routage Typ (üblich 0)
  • Die Zahl der vorhanden Adressen im Header (1 bis 24)
  • eine Adresse gibt die nächst aufzusuchenden Adresse
Das letzte Feld beginnt mit 0 und wird um 1 erhöht bei jeder besuchte Adresse.

Header Fragmentierung

Der Header Fragmentierung behandelt die Fragmentierung ähnlich IPv4. Der Header besitzt die Diagrammkennung, die Fragmentnummer, und ein bit mit Angabe ob zusätzliche Fragmente noch vorhanden sind. In IPv6, anders als in IPv4, nur der Quell-Rechner kann das Diagramm fragmentiern. Die Router auf der Stecke dürfen es nicht. Dies veranlasst den Quell-Rechner das Datagramm in Stücke zu zerlegen, und den Header Fragmentierung zu benutzen um die einzelnen Stücke zu leiten.

Authentifizierung

Der Header Authentifizierung erlaubt dem Zielrechner-Datagramm die Überprüfung der Quelle-Identität. IPv4 hat nichts desgleichen.

Das Beisetzen einer Verschlüsselung auf die Datagrammdaten (Nutzdaten) verstärkt deren Schutz ; sie werden nur vom eigens dafür gedachten Empfänger gelesen.

Wenn Sender und Empfänger geschützt miteinander kommunizieren wollen, dann müssen sie sich zunächst über gewisse geheime, nur von ihnen beiden bekannte Massregeln einigen. Die Keycodes werden an beiden Enden auf 32 bits gewichtet.

Die Schlüsselcodes werden vereinzelt und eindeutig vergeben; dh. wenn A ein Key zugeteilt wird um mit B zu kommunizieren, kann A diesen Schlüssel nicht in einer Verbindung mit C verwenden. Zusätzliche Parameter werden ausserdem jedem Schlüssel angeheftet, wie Lebensdauer, etc...

Bei der Authentifizierung einer Meldung, baut der Quellrechner zunächst ein Datagramm samt IP Header und Nutzdaten, dann ersetzt er die selten veränderbaren Felder durch Nullen ( z.B. : Das Feld Höchste Schrittzahl). Das Datagramm wird mit Nullen auf ein 16-Bytes Vielfaches ergänzt. Ähnlich wird auch der verwendete Geheimschlüssel mit Nullen ergänzt. Eine Kontrollzahl wird anschliessend aus der Konkatenation der beiden berechnet. Auf diese Kontrollzahl wird dann nochmal der selbe ergänzte Geheimschlüssel angewendet.

Der Header Authentifizierung enthält 3 Teile. Der erste Teil geht über 4 Bytes und gibt die Nächste HeaderNummer an, die Länge des Authentifizierungsheader und eine auf 16 bits Nullenergänzung an. Der zweite legt den 32 bits Kodierungsschlüssel fest. Der dritte enhält die kodierte Checksumme (mit MD5 oder ein sonstiges Algorithmus).

Der Empfänger verwendet dann den Keycode um den Geheimschlüssel zu erfahren. Der Geheimschlüssel ergänzte Wert wird vor und nach den ergänzten Nutzdaten zuaddiert, die Header Feldvariablen werden von ihren Nullen bereinigt, dann wird die codierte Kontrollsumme berechnet. Wenn das Ergebnis mit der codierte Kontrollsumme des Authentifizierungsheader übereinstimmen, dann kann der Emfänger sicher davon ausgehen dass das Datagramm tatsächlich von der Quelle stammt mit der er den Geheimschlüssel teilt. Er darf auch sicher sein dass am Datagramm, ohne sein Wissen, nichts geändert wurde.

Im Falle von geheimen Datagramme, wird der Extension Header verwendet. Kodierte Nutzdaten. Der Header beginnt mit einer Schlüsselzahl über 32 bits, gefolgt von den kodierte Nutzdaten.

Zieloption

Der Header Zieloption wird für Felder eingesetzt, die nur vom Zielrechner beachtet werden müssen. In der original IPv6 Fassung, ist die einzige bestimmte Zieloption die Null-Option. Durch Nullen-Ergänzung erzeugt sie aus diesem Header ein 8-Byte vielfaches. Dieser Header wird zunächst nicht beachtet. Er ist für die neuen Routing Softwareprogramme vorgesehen, die später Zieloptionen benötigen.

Informationszusatz

Für zusätzliche Erlaüterungen über das IPv6 Protokoll, wird auf die RFC 2460 verwiesen, dies näher auf das Protokoll eingehen :

verfasst von nico VanHaute.



Letzte Änderung am Mittwoch 1 April 2009 à 14:16:16


Das Dokument mit dem titel « Das Protokoll IPv6 » aus Kioskea (de.kioskea.net) zur verfügung gestellt wird unter den bedingungen der Creative Commons lizenz. Können Sie ändern, Kopien dieser Seite, unter den Bedingungen der Lizenz, als diese Bewertung deutlich.