Systemverwaltungshandbuch: IP Services

IPv6-Tunnel

Um die Abhängigkeiten an einem Dual-Stack IPv4/IPv6-Standort zu minimieren, müssen die Router im Pfad zwischen zwei IPv6-Knoten kein IPv6 unterstützen. Der Mechanismus, der eine solche Netzwerkkonfiguration unterstützt, wird als Tunneling bezeichnet. Im Grunde genommen werden IPv6-Pakete in IPv4-Pakete verpackt und dann über die IPv4-Router geleitet. Die folgende Abbildung verdeutlicht den Tunneling-Mechanismus über die IPv4-Router, die in der Abbildung durch „R“ gekennzeichnet sind

Abbildung 11–5 IPv6-Tunneling-Mechanismus

Zeigt, wie in IPv4-Paketen eingefügte IPv6-Pakete von Routern, die IPv4 verwenden, über Tunnel gesendet werden.

Die Oracle Solaris IPv6-Implementierung verwendet zwei Arten von Tunneling-Mechanismen:

Ein konfigurierter Tunnel wird derzeit für verschiedene Zwecke im Internet verwendet, z. B. auf dem MBONE, dem IPv4-Multicast-Backbone. Im Prinzip besteht der Tunnel aus zwei Routern, die mit einer virtuellen Point-to-Point-Verbindung zwischen zwei Routern über das IPv4-Netzwerk konfiguriert sind. Diese Art Tunnel wird wahrscheinlich in naher Zukunft in einigen Bereichen des Internet verwendet werden.

Automatische Tunnel erfordern IPv4-kompatible Adressen. Automatische Tunnel können zum Verbinden von IPv6-Knoten verwendet werden, wenn keine IPv6-Router zur Verfügung stehen. Diese Tunnel beginnen entweder an einem Dual-Stack-Host oder einem Dual-Stack-Router, indem eine automatische Tunneling-Netzwerkschnittstelle konfiguriert wird. Die Tunnel enden immer bei dem Dual-Stack-Host. Diese Tunnel stellen die IPv4-Zieladresse (den Endpunkt des Tunnels) dynamisch fest, indem sie die Adresse aus der IPv4-kompatiblen Zieladresse extrahieren.

Konfigurierte Tunnel

Tunneling-Schnittstellen weisen das folgende Format auf:


ip.tun ppa

ppa ist der physikalische Anschlusspunkt.

Beim Systemstart wird das Tunneling-Modul (tun) vom ifconfig-Befehl an den Anfang des IP gebracht, um eine virtuelle Schnittstelle zu erstellen. Dieser Vorgang wird durch das Erstellen der entsprechenden hostname6.*-Datei begleitet.

Angenommen, Sie erstellen einen Tunnel zum Einkapseln von IPv6-Paketen über ein IPv4-Netzwerk (IPv6-über-IPv4), so erstellen Sie eine Datei mit dem folgenden Namen:


/etc/hostname6.ip.tun0

Der Inhalt dieser Datei wird an den Befehl ifconfig übergeben, nachdem die Schnittstellen geplumbt (aktiviert) wurden. Der Inhalt wird zu den Parametern, die zur Konfiguration eines Point-to-Point-Tunnels erforderlich sind.


Beispiel 11–11 hostname6.ip.tun0-Datei für einen IPv6-über-IPv4-Tunnel

Im Folgenden finden Sie ein Beispiel für die Einträge in der hostname6.ip.tun0-Datei:


tsrc 10.10.10.23 tdst 172.16.7.19 up
addif 2001:db8:3b4c:1:5678:5678::2 up

In diesem Beispiel werden die IPv4-Quell- und Zieladressen als Token verwendet, um Link-lokale IPv6-Adressen automatisch zu konfigurieren. Diese Adressen sind Quelle und Ziel der Schnittstelle ip.tun0. Es sind zwei Schnittstellen konfiguriert. Die Schnittstelle ip.tun0 sind konfiguriert. Eine logische Schnittstelle, ip.tun0:1, wurde ebenfalls konfiguriert. Die logische Schnittstelle besitzt die Quelle- und IPv6-Zieladressen, die durch den Befehl addif angegeben werden.

Wird das System im Multiuser-Modus gestartet, kann der Inhalt dieser Konfigurationsdateien ohne Änderungen an den Befehlifconfig übergeben werden. Die Einträge in Beispiel 11–11 entsprechen Folgendem:


# ifconfig ip.tun0 inet6 plumb
# ifconfig ip.tun0 inet6 tsrc 10.0.0.23 tdst 172.16.7.19 up
# ifconfig ip.tun0 inet6 addif 2001:db8:3b4c:1:5678:5678::2 up

Das Folgende zeigt die Ausgabe des Befehls ifconfig -a für diesen Tunnel.


ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,
  NONUD,IPv6> mtu 1480 index 6
        inet tunnel src 10.0.0.23  tunnel dst 172.16.7.19
        inet6 fe80::c0a8:6417/10 --> fe80::c0a8:713
ip.tun0:1: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 
  index 5
        inet6 2001:db8:3b4c:1:5678:5678::2 

Sie können weitere logische Schnittstellen konfigurieren, in dem Sie der Konfigurationsdatei unter Beachtung der folgenden Syntax weitere Zeilen hinzufügen:


addif IPv6-source IPv6-destination up

Hinweis –

Wenn es sich bei einem der Tunnelenden um einen IPv6-Router handelt, der mindestens ein Präfix über den Tunnel bekannt gibt, sind keine addif-Befehle in den Tunnelkonfigurationsdateien erforderlich. Nur tsrc und tdst sind eventuell erforderlich, da alle anderen Adressen automatisch konfiguriert wurden.


In einigen Fällen müssen bestimmte Quellen- und Zieladressen auf dem lokalen Link für einen bestimmten Tunnel manuell konfiguriert werden. Ändern Sie die erste Zeile der Konfigurationsdatei, um diese Link-lokalen Adressen aufzunehmen. Die folgende Zeile ist ein Beispiel:


tsrc 10.0.0.23 tdst 172.16.7.19 fe80::1/10 fe80::2 up

Bitte beachten Sie, das die Link-lokale Quellenadresse die·Präfixlänge 10 besitzt. In diesem Beispiel ähnelt die Schnittstelle ip.tun0 Folgendem:


ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 
index 6
        inet tunnel src 10.0.0.23  tunnel dst 172.16.7.19
        inet6 fe80::1/10 --> fe80::2

Um einen Tunnel zum Einkapseln von IPv6-Paketen über ein IPv6-Netzwerk (IPv6-über-IPv6) zu erstellen, legen Sie die folgende Datei an:


/etc/hostname6.ip6.tun0

Beispiel 11–12 hostname6.ip6.tun0-Datei für einen IPv6-über-IPv6-Tunnel

Das Folgende ist ein Beispiel für die Einträge in der hostname6.ip6.tun0-Datei zur IPv6-Einkapselung über ein IPv6-Netzwerk:


tsrc 2001:db8:3b4c:114:a00:20ff:fe72:668c 
        tdst 2001:db8:15fa:25:a00:20ff:fe9b:a1c3
fe80::4 fe80::61 up

Um einen Tunnel zum Einkapseln von IPv4-Paketen über ein IPv6-Netzwerk (IPv4-über-IPv6) zu erstellen, legen Sie die folgende Datei an:


/etc/hostname.ip6.tun0

Beispiel 11–13 hostname.ip6.tun0-Datei für einen IPv4-über-IPv6-Tunnel

Das Folgende ist ein Beispiel für die Einträge in der hostname.ip6.tun0-Datei zur IPv4-Einkapselung über ein IPv6-Netzwerk:


tsrc 2001:db8:3b4c:114:a00:20ff:fe72:668c 
         tdst 2001:db8:15fa:25:a00:20ff:fe9b:a1c3
10.0.0.4 10.0.0.61 up

Um einen Tunnel zum Einkapseln von IPv4-Paketen über ein IPv4-Netzwerk (IPv4-über-IPv4) zu erstellen, legen Sie die folgende Datei an:


/etc/hostname.ip.tun0

Beispiel 11–14 hostname.ip.tun0-Datei für einen IPv4-über-IPv4-Tunnel

Das Folgende ist ein Beispiel für die Einträge in der hostname.ip.tun0-Datei zur IPv4-Einkapselung über ein IPv4-Netzwerk:


tsrc 172.16.86.158 tdst 192.168.86.122
10.0.0.4 10.0.0.61 up

Weitere Informationen zu tun finden Sie in der Manpage tun(7M). Eine allgemeine Beschreibung der Tunneling-Konzepte während des Übergangs zu IPv6 finden Sie unter Einführung in IPv6-Tunnel. Eine Beschreibung der Verfahren zur Konfiguration von Tunneln finden Sie unter Aufgaben bei der Konfiguration von Tunneln zur Unterstützung von IPv6 (Übersicht der Schritte).

Automatische 6to4-Tunnel

Oracle Solaris bietet 6to4-Tunnel als bevorzugte Zwischenlösung für den Übergang von der IPv4- zur IPv6-Adressierung. Mit 6to4-Tunneln können isolierte IPv6-Standorte durch einen automatischen Tunnel über ein IPv4-Netzwerk, das IPv6 nicht unterstützt, miteinander kommunizieren. Zum Verwenden von 6to4-Tunneln müssen Sie einen Grenzrouter in Ihrem IPv6-Netzwerk als einen Endpunkt eines automatischen 6to4-Tunnels konfigurieren. Dann kann der 6to4-Router an einem Tunnel zu einem anderen IPv6-Standort, oder, falls erforderlich, mit einem nativen IPv6-, nicht-6to4-Standort teilnehmen.

In diesem Abschnitt finden Sie Referenzen zu den folgenden 6to4-bezogenen Themen:

In der folgenden Tabelle sind zusätzliche Aufgaben zum Konfigurieren von 6to4-Tunneln aufgeführt, sowie Ressourcen zur Beschaffung weiterer hilfreicher Informationen.

Aufgabe oder Detail 

Weitere Informationen 

Aufgaben bei der Konfiguration eines 6to4-Tunnels 

So konfigurieren Sie einen 6to4-Tunnel

6to4-bezogene RFC 

RFC 3056, „Connection of IPv6 Domains via IPv4 Clouds“

Ausführliche Informationen zum 6to4relay-Befehl, der die Unterstützung von Tunneln zu einem 6to4-Relay-Router ermöglicht

6to4relay(1M)

6to4-Sicherheitsaspekte 

Security Considerations for 6to4

Topologie eines 6to4-Tunnels

Ein 6to4-Tunnel bietet IPv6-Konnektivität zu allen 6to4-Standorten weltweit. Entsprechend funktioniert der Tunnel auch als eine Verbindung zu allen IPv6-Standorten (einschließlich dem nativen IPv6-Internet), vorausgesetzt, der Tunnel ist zum Weiterleiten an einen Relay-Router konfiguriert. Die folgende Abbildung zeigt, wie ein 6to4-Tunnel diese Konnektivität zwischen zwei 6to4-Standorten bereitstellt.

Abbildung 11–6 Tunnel zwischen zwei 6to4-Standorten

Die Abbildung zeigt einen 6to4-Tunnel, der im folgenden Kontext beschrieben wird.

Die Abbildung zeigt zwei voneinander isolierte 6to4-Netzwerke, Standort A und Standort B. Jeder Standort ist mit einem Router konfiguriert, der über eine externe Verbindung zu einem IPv4-Netzwerk verfügt. Ein 6to4-Tunnel durch das IPv4-Netzwerk stellt eine Verbindung zu 6to4-Standorten bereit.

Bevor ein IPv6-Standort zu einem 6to4-Standort werden kann, muss mindestens eine Router-Schnittstelle zur Unterstützung von 6to4 konfiguriert werden. Diese Schnittstelle muss die externe Verbindung mit dem IPv4-Netzwerk bieten. Die Adresse, die Sie auf qfe0 konfigurieren, muss global einmalig sein. In dieser Abbildung stellt die Schnittstelle qfe0 des Grenzrouters A die Verbindung von Standort A mit dem IPv4-Netzwerk her. Die Schnittstelle qfe0 muss bereits mit einer IPv4-Adresse konfiguriert worden sein, bevor Sie qfe0 als eine 6to4-Pseudoschnittstelle konfigurieren.

In der Abbildung besteht der 6to4-Standort A aus zwei Teilnetzen, die über die Schnittstellen hme0 und hme1 auf Router A verbunden sind. Alle IPv6-Hosts in einem der Teilnetze von Standort A werden nach dem Empfang der Advertisement-Nachricht von Router A automatisch mit 6to4-abgeleiteten Adressen neu konfiguriert.

Standort B ist ein weiterer isolierter 6to4-Standort. Um Datenverkehr korrekt von Standort A zu empfangen, muss ein Grenzrouter an Standort B zur 6to4-Unterstützung konfiguriert sein. Andernfalls werden die Pakete, die der Router von Standort A empfängt, nicht erkannt und abgeworfen.

Paketfluss durch den 6to4-Tunnel

In diesem Abschnitt wird der Paketfluss von einem Host an einem 6to4-Standort zu einem Host an einem remoten 6to4-Standort beschrieben. Das Szenario verwendet die in Abbildung 11–6 gezeigte Topologie. Darüber hinaus wird bei diesem Szenario davon ausgegangen, dass die 6to4-Router und die -Hosts bereits konfiguriert sind.

  1. Ein Host im Teilnetz 1 des 6to4-Standorts A sendet eine Übertragung mit einem Host am 6to4-Standort B als Ziel. Jeder Paket-Header enthält eine 6to4-abgeleitete Quelladresse und eine 6to4-abgeleitete Zieladresse.

  2. Der Router an Standort A kapselt jedes 6to4-Datenpaket in einen IPv4-Header ein. In diesem Prozess stellt der Router die IPv4-Zieladresse des eingekapselten Headers auf die Routeradresse von Standort B ein. Bei jedem IPv6-Paket, das durch die Tunnelschnittstelle fließt, enthält die IPv6-Zieladresse des Pakets auch die IPv4-Zieladresse. Daher kann der Router die IPv4-Zieladresse feststellen, die im einkapselnden Header eingestellt ist. Dann verwendet der Router standardmäßige IPv4-Routing-Verfahren, um das Paket über das IPv4-Netzwerk weiterzuleiten.

  3. Alle IPv4-Router, die die Pakete durchlaufen, verwenden die IPv4-Zieladresse des Pakets zur Weiterleitung. Diese Adresse ist die global einmalige IPv4-Adresse der Schnittstelle auf Router B, die auch als 6to4-Pseudoschnittstelle dient.

  4. Pakete von Standort A treffen bei Router B ein, der die IPv6-Pakete aus den IPv4-Headern entkapselt.

  5. Router B verwendet dann die Zieladresse im IPv6-Paket, um die Pakete an den Empfangshost an Standort B weiterzuleiten.

Sicherheitsbetrachtungen bei Tunneln zu einem 6to4-Relay-Router

6to4-Relay-Router fungieren als Tunnelendpunkte von 6to4-Routern, die mit nativen IPv6-, nicht-6to4-Netzwerken kommunizieren müssen. Relay-Router sind im Wesentlichen Brücken zwischen einem 6to4-Standort und nativen IPv6-Standorten. Da diese Lösung extrem unsicher ist, aktiviert Oracle Solaris standardmäßig keine Unterstützung für 6to4-Relay-Router. Falls für Ihren Standort ein solcher Tunnel erforderlich ist, können Sie den Befehl 6to4relay verwenden, um das folgende Tunneling-Szenario zu verwirklichen.

Abbildung 11–7 Tunnel von einem 6to4-Standort zu einem 6to4-Relay-Router

Die Abbildung zeigt einen Tunnel zwischen einem 6to4-Router und einem 6to4-Relay-Router. Die Abbildung wird in dem folgenden Text beschrieben.

In Abbildung 11–7 muss der 6to4-Standort A mit einem Knoten am nativen IPv6-Standort B kommunizieren. Die Abbildung zeigt den Pfad des Datenverkehrs von Standort A über einen 6to4-Tunnel durch ein IPv4-Netzwerk. Der Tunnel hat den 6to4-Router A und einen 6to4-Relay-Router als Endpunkte. Hinter dem 6to4-Relay-Router befindet sich das IPv6-Netzwerk, mit dem IPv6-Standort B verbunden ist.

Paketfluss zwischen einem 6to4-Standort und einem nativen IPv6-Standort

In diesem Abschnitt wird der Paketfluss von einem 6to4-Standort zu einem nativen IPv6-Standort beschrieben. Das Szenario verwendet die in Abbildung 11–7 gezeigte Topologie.

  1. Der Host am 6to4-Standort A sendet eine Übertragung, die einen Host am nativen IPv6-Standort B als Ziel angibt. Jeder Paket-Header weist eine 6to4-abgeleitete Adresse als Quelladresse auf. Die Zieladresse ist eine standardmäßige IPv6-Adresse.

  2. Der 6to4-Router an Standort A kapselt jedes Paket in einen IPv4-Header ein, der die IPv4-Adresse des 6to4-Relay-Routers als Ziel angibt. Der 6to4-Router verwendet standardmäßige IPv4-Routing-Verfahren, um das Paket über das IPv4-Netzwerk weiterzuleiten. Alle IPv4-Router, die die Pakete durchlaufen, leiten die Pakete an den 6to4-Relay-Router weiter.

  3. Der nächste Anycast 6to4-Relay-Router zu Standort A empfängt die Pakete für die Anycast-Gruppe 192.88.99.1.


    Hinweis –

    6to4-Relay-Router sind Teil der 6to4-Relay-Router Anycast-Gruppe mit der IP-Adresse 192.88.99.1 . Diese Anycast-Adresse ist die Standardadresse für 6to4-Relay-Router. Wenn Sie einen bestimmten 6to4-Relay-Router verwenden müssen, können Sie die Standardeinstellung überschreiben und die IPv4-Adresse des Routers angeben.


  4. Der Relay-Router entkapselt den IPv4-Header von den 6to4-Paketen und legt dabei die native IPv6-Zieladresse frei.

  5. Dann sendet der Relay-Router die IPv6-Pakete (jetzt nur IPv6) an das IPv6 Netzwerk weiter, in dem die Pakete letztlich von einem Router an Standort B empfangen werden. Der Router leitet die Pakete dann an den IPv6-Zielknoten weiter.