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 fünfzehn 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.
Eine IP-Adresse besteht „nur“ aus 32 Bit. Aus organisatorischen Gründen können viele IP-Adressen gar nicht verwendet werden, und gehen somit 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.
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 22.2.2, „Adresstypen und -struktur“.
Weitere wichtige Vorteile des neuen Protokolls in Kurzform:
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.
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.
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.
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 22.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.
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).
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:
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.
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.
Adressen dieses Typs weisen auf eine Gruppe von Schnittstellen. Pakete mit einer Adresse dieses Typs werden an den Angehö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 ….
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
Beispiel 22.3, „Beispiel einer IPv6-Adresse“ ist dieser Vorgang anhand dreier
äquivalenter Schreibweisen ein und derselben Adresse dargestellt.
Beispiel 22.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 Beispiel 22.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.
IPv6 kennt verschiedene Präfixe mit definierter Bedeutung. Einige davon werden in Tabelle 22.4, „verschiedene IPv6-Präfixe“ gezeigt.
Tabelle 22.4. verschiedene IPv6-Präfixe
Hex.-Präfix | Verwendung |
|---|---|
| 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 |
(engl. Aggregatable Global Unicast
Address). Wie bisher auch können Sie bei IPv6
Teilnetze zugewiesen bekommen. Aktuell gibt es folgende Adressräume:
|
| (engl. link-local) Adressen mit diesem Präfix dürfen nicht geroutet werden und können daher nur im gleichen Subnetz erreicht werden. |
|
(engl. site-local) Diese Adressen
dürfen zwar geroutet werden, aber nur innerhalb einer Organisation.
Damit entsprechen diese Adressen den bisherigen
„privaten“ Netzen (beispielsweise |
|
(engl. multicast) IPv6-Adressen, die
mit |
Unicastadressen folgen einem dreigeteilten Aufbauprinzip:
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.
Der zweite Teil enthält Routinginformationen über das Subnetz, in dem das Paket zugestellt werden soll.
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.
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 22.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.
Dieser Adresstyp gibt die IPv6-Adresse eines reinen IPv4-Rechners an.
Es gibt zwei Typen von Adressen zum rein lokalen Gebrauch:
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.
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 Adressen 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.
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 22.2.2, „Adresstypen und -struktur“) 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:
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.
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.
Dieser Ansatz sieht spezielle Server vor, die für den Benutzer automatisch Tunnel anlegen. Das zugrundeliegende RFC ist RFC3053.
![]() | Die 6Bone Initiative |
|---|---|
Mitten im „altmodischen“ Internet existiert mit 6Bone (http://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. | |
Falls Sie die Verwendung von IPv6 konfigurieren möchten, müssen Sie in
der Regel keine Konfiguration auf den Arbeitsstationen durchführen.
Allerdings muss die IPv6-Unterstützung geladen werden. Rufen Sie als
Benutzer root den Befehl
modprobe ipv6 auf.
Aufgrund der Autokonfigurationsphilosophie von IPv6 wird dann der
Netzwerkkarte eine Adresse im link-local Netz zugewiesen. Normalerweise
wird auf einer Arbeitsstation keine Routingtabelle gepflegt. Die Router im
Netz können über das Router Advertisment Protocol
von der Arbeitsstation darüber befragt werden, welches Präfix und welche
Gateways zu verwenden sind. Um einen IPv6-Router aufzusetzen, können Sie das
Programm radvd aus radvd verwenden. Dieses Programm teilt den
Arbeitsstationen das zu verwendende Präfix für IPv6-Adressen und den/die
Router mit. Das Programm zebra kann ebenfalls zur
Autokonfiguration von Adressen und für Routingkonfiguration eingesetzt
werden.
Um einer Arbeitsstation eine IPv6-Adresse zuweisen zu können, ist es ratsam, einen Router mit dem Programm radvd oder zebra zu installieren und zu konfigurieren. Die Arbeitsstationen bekommen die IPv6-Adresse dann automatisch zugewiesen.
Zur Einrichtung verschiedener Tunnel mit Hilfe der Dateien unter
/etc/sysconfig/network finden Sie wichtige
Informationen in der Manualpage von ifup
(man ifup).
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:
Artikelserie mit sehr guten Beschreibungen zu den Grundlagen von IPv6. Gut geeignet für einen Einstieg ins Thema.
Linux-IPv6-HOWTO und viele Links.
Anschluss an das IPv6 über einen Tunnel bekommen.
Alles rund um IPv6.
Das einführende RFC zum Thema IPv6.
Englischsprachiger Überblick zum Thema IPv6. Hagen, Silvia: IPv6 Essentials. O'Reilly & Associates, 2002. - (ISBN 0-596-00125-8).