14.2. IPv6 – Internet der nächsten Generation

Bedingt durch die Erfindung des WWW (engl. World Wide Web) ist das Internet und damit die Anzahl der Rechner, die TCP/IP „sprechen“, in den letzten zehn Jahren explosionsartig gewachsen. Seit der Erfindung des WWW durch Tim Berners-Lee 1990 am CERN (http://public.web.cern.ch/) ist die Zahl der Internet-Hosts von wenigen tausend auf mittlerweile ca. 100 Millionen angewachsen.

Wie Sie wissen, besteht eine IP-Adresse „nur“ aus 32 Bit. Viele IP-Adressen können durch organisatorische Bedingtheiten gar nicht verwendet werden, sie gehen verloren. Zur Erinnerung: Das Internet wird in Subnetze, also Teilnetze unterteilt. Diese bestehen immer aus einer Zweierpotenz minus zwei nutzbaren IP-Adressen. Ein Subnetz besteht also beispielsweise aus 2, 6, 14, 30 usw. IP-Adressen. Möchten Sie beispielsweise 128 Rechner an das Internet anbinden, so benötigen Sie ein Subnetz mit 256 IP-Adressen, von denen nur 254 nutzbar sind. Wie Sie oben gesehen haben, entfallen zwei der IP-Adressen aus einem Subnetz, nämlich die Broadcastadresse und die Netzwerkbasisadresse.

Um die absehbare Adressknappheit zu entschärfen, verwendet man unter dem momentan eingesetzten IPv4 Mechanismen wie DHCP oder NAT (engl. Network Address Translation). Beide Verfahren mildern zusammen mit der Konvention von öffentlichen und privaten Netzwerkadressbereichen die Adressnot im Internet. Nachteil dieser Methoden ist die teilweise sehr umständliche und wartungsintensive Konfiguration. Sie benötigen zum korrekten Aufsetzen eines Rechners im IPv4-Netzwerk zahlreiche Informationen wie die eigene IP-Adresse, Subnetzmaske, Gatewayadresse und unter Umständen einen Nameserver. Alle diese Angaben müssen Sie „wissen“ und können Sie nirgendwoher ableiten.

Mit IPv6 gehören Adressknappheit und komplizierte Konfigurationen der Vergangenheit an. In den folgenden Abschnitten erfahren Sie mehr zu den Neuerungen und Vorteilen von IPv6 und über den Übergang von altem zum neuen Protokoll.

14.2.1. Vorteile von IPv6

Der wichtigste und augenfälligste Vorteil des neuen Protokolls ist die enorme Vergrößerung des verfügbaren Adressraums. Eine IPv6-Adresse enthält 128 Bit anstelle der traditionellen 32 Bit. Somit stehen viele Billiarden (!) IP-Adressen zur Verfügung.

IPv6-Adressen unterscheiden sich von ihren Vorgängern nicht nur in der Länge, auch ihre innere Struktur ist anders und erlaubt es, speziellere Informationen über das zugehörige System und sein Netzwerk zu kodieren. Mehr dazu unter Abschnitt 14.2.2. “Das Adresssystem von IPv6”.

Weitere wichtige Vorteile des neuen Protokolls in Kurzform:

Autokonfiguration

IPv6 setzt das „Plug and Play“-Prinzip im Netzwerk um. Ein frisch installiertes System integriert sich ohne weiteren Konfigurationsaufwand ins (lokale) Netz. Der Autokonfigurationsmechanismus des Terminals leitet die eigene Adresse aus den Informationen ab, die ihm über das „Neighbor Discovery Protocol“ (ND) von den benachbarten Routern zugespielt werden. Dieses Verfahren erfordert keinerlei Eingriff von Seiten des Administrators und hat gegenüber dem unter IPv4 genutzten Adressverteiler DHCP den weiteren Vorteil, dass die Wartung eines zentralen Servers mit den verfügbaren Adressen entfällt.

Mobilität

IPv6 erlaubt es, dass einer Netzwerkschnittstelle gleichzeitig mehrere Adressen zugeordnet werden. Somit haben Sie als Benutzer eines Systems einfach und ohne Zusatzaufwand Zugang zu mehreren verschiedenen Netzen. Sie können dies mit dem „Roaming“ in Mobilfunknetzen vergleichen: Befinden Sie sich mitsamt Ihrem Mobiltelefon im Ausland, bucht sich das Handy automatisch in das fremde Netz ein. Egal, wo Sie sind, Ihre Erreichbarkeit unter Ihrer normalen Telefonnummer ist gewährleistet und Sie telefonieren im fremden Netz, als wäre es Ihr Heimatnetz.

Sichere Kommunikation

Während sichere Kommunikation unter IPv4 nur als Zusatzfunktion zu realisieren war, ist IPSec und damit die sichere Kommunikation zwischen zwei Systemen über einen Tunnel durch das unsichere Internet in IPv6 bereits enthalten.

Kompatibilität zum Vorgänger

Ein schneller Umstieg des gesamten Internets von IPv4 auf IPv6 ist nicht realistisch. Deshalb ist es wichtig, dass beide Versionen im Internet und sogar auf einem System koexistieren können. Die Koexistenz beider im Internet ist durch die Verwendung kompatibler Adressen (IPv4-Adressen lassen sich einfach in IPv6-Adressen umsetzen) und die Verwendung verschiedener „Tunnel“ gesichert (siehe Abschnitt 14.2.3. “IPv4 versus IPv6 – Wandern zwischen den Welten”). Über „Dual-Stack-IP“ ist die Unterstützung beider Protokolle auf dem einzelnen System möglich. Jedes der beiden Protokolle verwendet einen eigenen Netzwerkstack, so dass sich die beiden Protokollversionen nicht gegenseitig in die Quere kommen.

Multicasting – maßgeschneidertes Dienstangebot

Während unter IPv4 einige Dienste (zum Beispiel SMB) ihre Pakete per Broadcast an alle Teilnehmer des lokalen Netzes senden mussten, ist unter IPv6 ein viel differenzierteres Vorgehen möglich. Mit Hilfe von Multicast kann eine Gruppe von Rechnern auf einmal angesprochen werden, also nicht alle auf einmal („broadcast“), oder nur einer („unicast“), sondern eben ein paar. Welche das sind, hängt von der Anwendung ab. Es gibt aber auch ein paar wohldefinierte Multicastgruppen, beispielsweise „alle Nameserver“ (engl. all nameservers multicast group), oder „alle Router“ (engl. all routers multicast group).

14.2.2. Das Adresssystem von IPv6

Wie bereits erwähnt, hat das bisher verwendete IP-Protokoll zwei schwerwiegende Nachteile. Zum einen gehen die verfügbaren IP-Adressen langsam aus und zum anderen ist die Netzwerkkonfiguration und das Verwalten von Routingtabellen immer komplizierter und wartungsintensiver. Dem ersten Problem begegnet IPv6 mit der Erweiterung des Adressraums auf 128 Bit. Die Lösung für das zweite Problem liegt der hierarchischen Adressstruktur, ausgeklügelten Mechanismen zur Adresszuweisung im Netz und der Möglichkeit des „Multi-Homings“ (mehrere Adressen pro Schnittstelle mit Zugang zu verschiedenen Netzwerken).

In Zusammenhang mit IPv6 sollten Sie folgende drei Adresstypen unterscheiden können:

unicast

Adressen dieses Typs gehören zu genau einer Netzwerkschnittstelle. Pakete mit einer Adresse dieses Typs werden an genau einen Empfänger ausgeliefert. Unicast-Adressen werden verwendet, um einzelne Rechner im lokalen Netz oder Internet anzusprechen.

multicast

Adressen dieses Typs weisen auf eine Gruppe von Schnittstellen. Pakete mit einer Adresse dieses Typs werden an alle Empfänger zugestellt, die zu dieser Gruppe gehören. Multicast-Adressen werden vorwiegend von bestimmten Netzwerkdiensten benutzt, um gezielt bestimmte Gruppen von Rechnern zu adressieren.

anycast

Adressen dieses Typs weisen auf eine Gruppe von Schnittstellen. Pakete mit einer Adresse dieses Typs werden an den Ängehörigen der Gruppe ausgeliefert, der nach den Begriffen des verwendeten Routingprotokolls dem Absender am nächsten ist. Anycast-Adressen werden verwendet, um Terminal das Auffinden eines Servers mit einem bestimmten Dienstangebot in ihrem Netzbereich zu finden. Alle Server eines Typs erhalten die gleiche Anycast-Adresse. Fordert der Terminal einen Dienst an, antwortet derjenige Server, der nach Einschätzung des Routingprotokolls dem Host am nächsten liegt. Sollte dieser Server ausfallen, wird automatisch der zweitnächste verwendet ….

14.2.2.1. Aufbau einer IPv6-Adresse

Eine IPv6-Adresse setzt sich aus acht Blöcken zu je 16 Bit zusammen, die durch : (Doppelpunkt) getrennt werden und in Hexadezimalschreibweise dargestellt werden. Führende Null-Bytes in einer Gruppe dürfen weggelassen werden, nicht aber inmitten oder am Ende einer Gruppe. Mehr als vier Null-Bytes direkt hintereinander kann man durch das Auslassungszeichen :: überspringen. Allerdings ist nur ein Auslassungszeichen in einer Adresse erlaubt. Dieser Vorgang des Auslassens wird in Englisch mit „collapsing“ bezeichnet. In Ausgabe 14.3. “Beispiel einer IPv6-Adresse” ist dieser Vorgang anhand dreier äquivalenter Schreibweisen ein und derselben Adresse dargestellt.

Beispiel 14.3. Beispiel einer IPv6-Adresse

fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4 
fe80 :    0 :    0 :    0 :    0 : 10 : 1000 : 1a4 
fe80 :                           : 10 : 1000 : 1a4

Jeder Teil einer IPv6-Adresse hat eine definierte Bedeutung. Die ersten Bytes bilden einen Präfix und geben den Typ der Adresse an. Der Mittelteil adressiert ein Netzwerk oder ist bedeutungslos und den Schluss der Adresse bildet der Hostteil. Netzmasken definieren sich unter IPv6 über die Länge des Präfix, die per / am Ende der Adresse mit angegeben wird. Eine Adressdarstellung wie in Ausgabe 14.4. “IPv6-Adresse mit Präfixangabe” besagt, dass die letzten 64 Bit den Hostteil und die vorderen 64 Bit den Netzwerkteil der Adresse bilden. Anders gesagt bedeutet die 64, dass von links her die Netzmaske mit 1 Bits aufgefüllt wird. Es gibt in der Netzmaske also 64 1 Bits. Wie bei IPv4 wird durch eine UND-Verknüpfung der Netzmaske mit der IP-Adresse bestimmt, ob sich ein Rechner im gleichen oder in einem anderen Subnetz befindet.

Beispiel 14.4. IPv6-Adresse mit Präfixangabe

fe80::10:1000:1a4/64

IPv6 kennt verschiedene Präfixe mit definierter Bedeutung (siehe Tabelle 14.4. “verschiedene IPv6-Präfixe”).

Tabelle 14.4. verschiedene IPv6-Präfixe

Präfix (hexadez.)Verwendung
00 IPv4 Adressen und IPv4 über IPv6-Kompatibilitätsadressen. Es handelt sich um eine zu IPv4 kompatible Adresse. Ein geeigneter Router muss das IPv6-Paket noch in IPv4 verwandeln. Weitere Spezialadressen (zum Beispiel Loopback Device) sind ebenfalls mit diesem Präfix ausgestattet.
erste Ziffer 2 oder 3 (engl. Aggregatable Global Unicast Address). Wie bisher auch können Sie bei IPv6 Teilnetze zugewiesen bekommen. Aktuell gibt es folgende Adressräume: 2001::/16 (production quality address space) und 2002::/16 (6to4 address space).
fe80::/10 (engl. link-local) Adressen mit diesem Präfix dürfen nicht geroutet werden und können daher nur im gleichen Subnetz erreicht werden.
fec0::/10 (engl. site-local) Diese Adressen dürfen zwar geroutet werden, aber nur innerhalb einer Organisation. Damit entsprechen diese Adressen den bisherigen „privaten“ Netzen (beispielsweise 10.x.x.x).
ff (engl. multicast) IPv6-Adressen, die mit ff anfangen, sind Multicastadressen.

Unicastadressen folgen einem dreigeteilten Aufbauprinzip:

Public Topology

Der erste Teil, der unter anderem auch eines der oben erwähnten Präfixes enthält, dient dem Routing des Pakets im öffentlichen Internet. Hier sind Informationen zum Provider oder der Institution kodiert, die den Netzwerkzugang bereitstellen.

Site Topology

Der zweite Teil enthält Routinginformationen über das Subnetz, in dem das Paket zugestellt werden soll.

Interface ID

Der dritte Teil identifiziert eindeutig die Schnittstelle, an die das Paket gerichtet ist. Dies erlaubt, die MAC-Adresse als Adressbestandteil zu verwenden. Da diese weltweit nur einmal vorhanden und zugleich vom Hardwarehersteller fest vorgegeben ist, vereinfacht sich die Konfiguration der Rechner sehr. In Wirklichkeit werden sogar die ersten 64 Bit zu einem so genannten EUI-64-Token zusammengefasst. Dabei werden die letzten 48 Bit der MAC-Adresse entnommen, die restlichen 24 Bit enthalten spezielle Informationen, die etwas über den Typ des Tokens aussagen. Das ermöglicht dann auch, Geräten ohne MAC-Adresse (PPP- und ISDN-Verbindungen!) ein EUI-64-Token zuzuweisen.

Abgeleitet aus diesem Grundaufbau werden fünf verschiedene Typen von Unicastadressen unterschieden:

:: (unspecified)

diese Adresse verwendet ein Rechner als Quelladresse, wenn seine Netzwerkschnittstelle zum ersten Mal initialisiert wird und noch keine Informationen über die eigene Adresse hat.

::1 (loopback)

Adresse des Loopback-Devices.

IPv4 kompatible Adresse

Die IPv6-Adresse wird aus der IPv4-Adresse und einem Präfix von 96 0-Bits am Beginn der Adresse zusammengestellt. Dieser Typ der Kompatibilitätsadressen wird beim Tunneling verwendet (siehe Abschnitt 14.2.3. “IPv4 versus IPv6 – Wandern zwischen den Welten”). IPv4/IPv6-Hosts können so mit anderen kommunizieren, die sich im reinen IPv4-Netz befinden.

IPv6 gemappte IPv4-Adresse

Dieser Adresstyp gibt die IPv6-Adresse eines reinen IPv4-Rechners an.

Lokale Adressen

Es gibt zwei Typen von Adressen zum rein lokalen Gebrauch:

link-local

Dieser Adresstyp ist ausschließlich für den Gebrauch im lokalen Subnetz. Router dürfen Pakete mit solcher Ziel- oder Quelladresse nicht an das Internet oder andere Subnetze weiterreichen. Diese Adressen zeichnen sich durch einen speziellen Präfix (fe80::/10) und die Interface-ID der Netzwerkkarte aus. Der Mittelteil der Adresse besteht aus aussagefreien Nullbytes. Diese Art von Adresse wird von den Autokonfigurationsmethoden verwendet, um Rechner im gleichen Subnetz anzusprechen.

site-local

Dieser Adresstyp darf zwischen einzelnen Subnetzen geroutet werden, aber nicht außerhalb einer Organisation (engl. site) ins Internet gelangen. Solche Adressen werden für Intranets eingesetzt und sind ein Äquivalent zu den privaten Adressen des IPv4. Neben einem definierten Präfix (fec0::/10) und der Interface-ID enthalten diese Adressen ein 16 Bit-Feld, in dem die Subnetz-ID kodiert ist. Der Rest wird wieder mit Null-Bytes aufgefüllt.

Zusätzlich gibt es in IPv6 eine neue Erfindung: Einer Netzwerkschnittstelle werden üblicherweise mehrere IP-Adressen zugewiesen. Das hat den Vorteil, dass mehrere verschiedene Netze zur Verfügung stehen. Eines davon kann mit Hilfe der MAC-Adresse und einem bekannten Präfix zu einem vollautomatisch konfigurierten Netz zusammengestellt werden, und ohne weitere Konfigurationsarbeiten sind damit direkt nach dem Starten von IPv6 alle Rechner im lokalen Netz erreichbar (sog. „Link-local-Adresse“). Die MAC-Adresse als Bestandteil der IP-Adresse macht jede dieser Adressen global unterscheidbar. Einzig die Teile der „Site Topology“ oder „Public Topology“ können variieren, je nachdem in welchem Netz dieser Rechner aktuell zu erreichen ist.

Bewegt“ sich ein Rechner zwischen mehreren Netzen hin und her, braucht er mindestens zwei Adressen. Die eine, seine „Home Address“ beinhaltet neben seiner Interface-ID die Informationen zu seinem Heimatnetz, in dem er normalerweise betrieben wird und das entsprechende Präfix. Die „Home Address“ ist statisch und wird nicht verändert. Alle Pakete, die für diesen Rechner bestimmt sind, werden ihm sowohl im eigenen als auch in fremden Netzen zugestellt. Möglich wird die Zustellung im Fremdnetz über wesentliche Neuerungen des IPv6-Protokolls, über Stateless Autoconfiguration und Neighbor Discovery. Der mobile Rechner hat neben seiner „Home Address“ eine oder mehrere weitere Adressen, die in die fremden Netze gehören, in denen er sich bewegt. Diese Addressen heißen „Care-of Address“. Im Heimatnetz des mobilen Rechners muss eine Instanz vorhanden sein, die an seine „Home Address“ gerichtete „nachsendet“, sollte er sich in einem anderen Netz befinden. Diese Funktion wird in einem IPv6-Szenario vom „Home Agent“ übernommen. Er stellt alle Pakete, die an die Heimatadresse des mobilen Rechners gerichtet sind, über einen Tunnel zu. Pakete, die als Zieladresse die „Care-of Address“ tragen, können ohne Umweg über den Home Agent zugestellt werden.

14.2.3. IPv4 versus IPv6 – Wandern zwischen den Welten

Der Umstieg aller Rechner im Internet von IPv4 auf IPv6 wird nicht auf einen Schlag geschehen. Vielmehr werden altes und neues Protokoll noch eine ganze Weile nebeneinanderher existieren. Die Koexistenz auf einem Rechner ist per „Dual Stack“ gelöst, es bleibt aber die Frage, wie IPv6-Rechner mit IPv4-Rechnern kommunizieren können und wie IPv6 über die momentan noch vorherrschenden IPv4-Netze transportiert werden sollen. Tunneling und die Verwendung von Kompatibilitätsadressen (siehe Abschnitt 14.2.2.1. “Aufbau einer IPv6-Adresse”) sind hier die Methoden der Wahl.

Einzelne IPv6-Inseln im (weltweiten) IPv4-Netz tauschen ihre Daten über Tunnel aus. Beim Tunneling werden IPv6-Pakete in IPv4-Pakete verpackt, um sie über ein reines IPv4-Netzwerk transportieren zu können. Ein Tunnel ist definiert als die Verbindung zwischen zwei IPv4-Endpunkten. Hierbei muss die IPv6-Zieladresse (oder das entsprechende Präfix) angegeben werden, an die die verkappten IPv6-Pakete gerichtet sind und die entfernte IPv4-Adresse, an der die getunnelten Pakete in Empfang genommen werden sollen. Im einfachsten Fall konfigurieren Administratoren solche Tunnel zwischen ihren Netzwerken manuell und nach Absprache. Solches Tunneling wird statisches Tunneling genannt.

Trotzdem reicht manuelles Tunneling oft nicht aus, um die Menge der zum täglichen vernetzten Arbeiten nötigen Tunnel aufzubauen und zu verwalten. Aus diesem Grund wurden drei verschiedene Verfahren entwickelt, die dynamisches Tunneling erlauben:

6over4

IPv6-Pakete werden automatisch in IPv4-Pakete verpackt und über ein IPv4-Netzwerk versandt, in dem Multicasting aktiviert ist. IPv6 wird vorgespiegelt, das gesamte Netzwerk (Internet) sei ein einziges, riesiges LAN (engl. Local Area Network). So wird der IPv4-Endpunkt des Tunnel automatisch ermittelt. Nachteil dieser Methode sind die schlechte Skalierbarkeit und die Tatsache, dass IP-Multicasting keineswegs im gesamten Internet verfügbar ist. Diese Lösung eignet sich für kleinere Firmen- oder Institutsnetzwerke, die die Möglichkeit von IP-Multicasting bieten. Das zugrundeliegende RFC ist RFC2529.

6to4

Bei dieser Methode werden automatisch IPv4-Adressen aus IPv6-Adressen generiert. So können IPv6-Inseln über ein IPv4-Netz miteinander kommunizieren. Allerdings gibt es betreffend der Kommunikation zwischen IPv6-Inseln und dem Internet einige Probleme. Das zugrundeliegende RFC ist RFC3056.

IPv6 Tunnel Broker

Dieser Ansatz sieht spezielle Server vor, die für den Benutzer automatisch Tunnel anlegen. Das zugrundeliegende RFC ist RFC3053.

[Important]Die 6Bone Initiative

Mitten im „altmodischen“ Internet existiert mit 6Bone (www.6bone.net) ein weltweit verteiltes Netzwerk von IPv6-Subnetzen, die über Tunnel miteinander verbunden sind. Innerhalb des 6Bone-Netzes wird IPv6 getestet. Softwareentwickler und Provider, die IPv6-Dienste entwickeln oder anbieten, können diese Testumgebung nutzen, um wichtige Erfahrungen mit dem neuen Protokoll zu bekommen. Weitere Informationen finden Sie auf den Projektseiten von 6Bone.

14.2.4. Weiterführende Literatur und Links zu IPv6

Natürlich kann und will der obige Überblick keine vollständige Einführung zum sehr umfangreichen Thema IPv6 sein. Zum tieferen Einstieg in IPv6 können Sie die folgende Onlineliteratur und Bücher zu Rate ziehen:

http://www.ngnet.it/e/cosa-ipv6.php

Artikelserie mit sehr guten Beschreibungen zu den Grundlagen von IPv6. Gut geeignet für einen Einstieg ins Thema.

http://www.bieringer.de/linux/IPv6/

Linux-IPv6-HOWTO und viele Links.

http://www.6bone.de/

Anschluss an das IPv6 über einen Tunnel bekommen.

http://www.ipv6.org/

Alles rund um IPv6.

RFC 2640

Das einführende RFC zum Thema IPv6.

IPv6 Essentials

Englischsprachiger Überblick zum Thema IPv6. Hagen, Silvia: IPv6 Essentials. O'Reilly & Associates, 2002. - (ISBN 0-596-00125-8).