Subsections

4.13 IPv6 - Unterstützung von IPv6-Tunneln durch IPv4-Netzwerke

4.13.1 Einleitung

Dieses Paket unterstützt das Aufbauen von Tunneln zu IPv6-Anbietern. Dies ist immer dann interessant bzw. nötig, wenn man gern IPv6-Verbindungen ins Internet nutzen möchte, der eigene Internet-Anbieter aber keine native IPv6-Unterstützung anbietet. Momentan erlaubt das Paket die Nutzung von so genannten 6in4-Tunneln, wie sie etwa der Anbieter “Hurricane Electric” unterstützt. Andere Technologien (AYIYA, 6to4, Teredo) werden zur Zeit nicht unterstützt.

Sie müssen für die Nutzung von Tunneln die generelle IPv6-Unterstützung mit Hilfe der Variable OPT_IPV6='yes' aktivieren.

4.13.2 Konfiguration

4.13.2.1 Tunnel-Konfiguration


Wichtig: Dieser Abschnitt ist falsch, weil veraltet! Für die Nutzung von 6in4-Tunneln müssen Circuits vom Typ “tun6in4” konfiguriert werden! Schauen Sie sich hierzu die Beispiel-Konfigurationen in der config/ipv6.txt an!

Dieser Abschnitt stellt die Konfiguration von 6in4-IPv6-Tunneln vor. Ein solcher Tunnel bietet sich an, wenn der eigene Internet-Anbieter kein IPv6 von Haus aus unterstützt. In diesem Fall wird mit einem bestimmten Internet-Host eines Tunnel-Brokers, dem so genannten PoP (Point of Presence), via IPv4 eine bidirektionale Verbindung aufgebaut, über die dann alle IPv6-Pakete verpackt geroutet werden (deswegen 6 “in” 4, weil die IPv6-Pakete innerhalb von IPv4-Paketen gekapselt werden).4.7 Damit das funktioniert, muss zum einen der Tunnel aufgebaut und zum anderen der Router so konfiguriert werden, dass die IPv6-Pakete, die ins Internet sollen, auch über den Tunnel geroutet werden. Der erste Teil wird in diesem Abschnitt konfiguriert, der zweite Teil wird im nächsten Abschnitt beschrieben.

IPV6_TUNNEL_N
Diese Variable enthält die Anzahl der aufzubauenden 6in4-Tunnel.

Beispiel: IPV6_TUNNEL_N='1'

IPV6_TUNNEL_x_TYPE
Diese Variable bestimmt den Typ des Tunnels. Momentan werden die Werte “raw” für “rohe” Tunnel, “static” für statische Tunnel und “he” für Tunnel des Anbieters Hurricane Electric unterstützt. Mehr zu Heartbeat-Tunneln steht im nächsten Absatz.

Beispiel: IPV6_TUNNEL_1_TYPE='he'

IPV6_TUNNEL_x_DEFAULT
Diese Variable legt fest, ob IPv6-Pakete, die nicht an das lokale bzw. die lokalen Netze adressiert sind, über diesen Tunnel geroutet werden sollen. Es kann nur einen solchen Tunnel geben (weil nur eine Default-Route existieren kann). Mögliche Werte sind “yes” und “no”.


Wichtig: Genau ein Tunnel sollte ein Default-Gateway für nausgehende IPv6-Daten sein, da andernfalls eine Kommunikation mit IPv6-Hosts im Internet nicht möglich ist! Die ausschließliche Verwendung von Nicht-Default-Tunneln ist nur sinnvoll, wenn ausgehende IPv6-Daten über eine separat konfigurierte Default-Route geschickt werden, die nicht mit einem Tunnel zusammenhängt. Siehe hierzu auch die Einleitung zum Unterabschnitt “Routen-Konfiguration” sowie die Beschreibung der Variable IPV6_ROUTE_x weiter unten.

Standard-Konfiguration: IPV6_TUNNEL_1_DEFAULT='no'

IPV6_TUNNEL_x_PREFIX
Diese Variable enthält den IPv6-Subnetzpräfix des Tunnels in CIDR-Notation, d.h. es wird sowohl eine IPv6-Adresse als auch die Länge des Präfixes angegeben. Diese Angabe wird in der Regel vom Tunnelanbieter vorgegeben. Bei Tunnelanbietern, die den Präfix beim Tunnelaufbau jedes Mal neu vergeben, ist diese Angabe unnötig. (Momentan werden solche Anbieter aber noch nicht unterstützt.) Diese Variable muss auch bei rohen (“raw”) Tunneln leer bleiben.


Wichtig: Diese Variable darf leer bleiben, wenn dem Tunnel noch kein Subnetz-Präfix zugewiesen worden ist. Allerdings kann dieser Tunnel dann nicht einem IPv6-Subnetz (IPV6_NET_x) zugeordnet werden, weil die IPv6-Adressen im Subnetz nicht berechnet werden können. Sinnvoll ist eine solche Konfiguration also nur übergangsweise, etwa wenn der Tunnel einige Zeit aktiv sein muss, bevor der Tunnelanbieter einem ein Subnetz-Präfix zuweist.

Beispiele:

IPV6_TUNNEL_1_PREFIX='2001:db8:1743::/48'      # /48-Subnetz
IPV6_TUNNEL_2_PREFIX='2001:db8:1743:5e00::/56' # /56-Subnetz

IPV6_TUNNEL_x_LOCALV4
Diese Variable enthält die lokale IPv4-Adresse des Tunnels oder den Wert `dynamic', wenn die dynamisch zugewiesene IPv4-Adresse des aktiven WAN-Circuits verwendet werden soll. Letzteres ist nur sinnvoll, wenn es sich um einen Heartbeat-Tunnel handelt (siehe IPV6_TUNNEL_x_TYPE weiter unten).

Beispiele:

IPV6_TUNNEL_1_LOCALV4='172.16.0.2'
IPV6_TUNNEL_2_LOCALV4='dynamic'

IPV6_TUNNEL_x_REMOTEV4
Diese Variable enthält die entfernte IPv4-Adresse des Tunnels. Diese Angabe wird in der Regel vom Tunnel-Anbieter vorgegeben.

Beispiel (entspricht dem PoP deham01 von Easynet):

IPV6_TUNNEL_1_REMOTEV4='212.224.0.188'


Wichtig: Wenn PF_INPUT_ACCEPT_DEF auf “no” steht, d.h. wenn die IPv4-Firewall manuell konfiguriert wird, dann wird eine Regel benötigt, die alle IPv6-in-IPv4-Pakete (IP-Protokoll 41) vom Tunnelendpunkt akzeptiert. Für den o.g. Tunnelendpunkt sähe die entsprechende Regel wie folgt aus:

PF_INPUT_x='prot:41 212.224.0.188 ACCEPT'

IPV6_TUNNEL_x_LOCALV6
Diese Variable legt die lokale IPv6-Adresse des Tunnels inklusive verwendeter Netzmaske in CIDR-Notation fest. Diese Angabe wird vom Tunnelanbieter vorgegeben. Bei Tunnelanbietern, welche die Tunnelendpunkte beim Tunnelaufbau jedes Mal neu vergeben, ist diese Angabe unnötig. (Momentan werden solche Anbieter aber noch nicht unterstützt.)

Beispiel: IPV6_TUNNEL_1_LOCALV6='2001:db8:1743::2/112'

IPV6_TUNNEL_x_REMOTEV6
Diese Variable legt die entfernte IPv6-Adresse des Tunnels fest. Diese Angabe wird vom Tunnelanbieter vorgegeben. Eine Netzmaske wird nicht benötigt, da sie der Variable IPV6_TUNNEL_x_LOCALV6 entnommen wird. Bei Tunnelanbietern, welche die Tunnelendpunkte beim Tunnelaufbau jedes Mal neu vergeben, ist diese Angabe unnötig. (Momentan werden solche Anbieter aber noch nicht unterstützt.)

Beispiel: IPV6_TUNNEL_1_REMOTEV6='2001:db8:1743::1'

IPV6_TUNNEL_x_DEV
(optional) Diese Variable enthält den Namen der zu erstellenden Tunnel-Netzwerkschnittstelle. Verschiedene Tunnel müssen unterschiedlich benannt werden, damit alles funktioniert. Falls die Variable nicht definiert ist, wird ein Tunnelname automatisch generiert (“v6tun” + Tunnelindex).

Beispiel: IPV6_TUNNEL_1_DEV='6in4'

IPV6_TUNNEL_x_MTU
(optional) Diese Variable enthält die Größe der MTU (Maximum Transfer Unit) in Bytes, d.h. des größten Pakets, das noch getunnelt werden kann. Diese Angabe wird in der Regel vom Tunnelanbieter vorgegeben. Die Standard-Einstellung, falls nichts angegeben wird, lautet “1280” und sollte mit allen Tunneln funktionieren.

Standard-Konfiguration: IPV6_TUNNEL_1_MTU='1280'

Einige Tunnelanbieter verlangen, dass über den Tunnel permanent ein Lebenszeichen vom Router an den Anbieter gesandt wird, um zu verhindern, dass ein Host einen Tunnel in Anspruch nimmt, obwohl er ihn nicht nutzt. Dazu wird ein so genanntes Heartbeat-Protokoll (dt. “Herzschlag”) verwendet. Zusätzlich verlangen Anbieter in der Regel eine erfolgreiche Anmeldung mit Benutzernamen und Passwort, um Missbrauch zu vermeiden. Soll ein solcher Heartbeat-Tunnel genutzt werden, dann müssen entsprechende Angaben gemacht werden, die im Folgenden beschrieben werden.

IPV6_TUNNEL_x_USERID
Diese Variable enthält den Namen des Benutzers, der beim Tunnel-Login erforderlich ist.

Beispiel: IPV6_TUNNEL_1_USERID='USERID'

IPV6_TUNNEL_x_PASSWORD
Diese Variable enthält das Passwort für den oben angegebenen Benutzernamen. Es darf keine Leerzeichen enthalten.

Beispiel: IPV6_TUNNEL_1_PASSWORD='passwort'

IPV6_TUNNEL_x_TUNNELID
Diese Variable enthält den Identifikator des Tunnels.

Beispiel: IPV6_TUNNEL_1_TUNNELID='TunnelID'

IPV6_TUNNEL_x_TIMEOUT
(optional) Diese Variable enthält die Zeitspanne in Sekunden, die beim Tunnelaufbau maximal gewartet wird. Der Standard-Wert ist abhängig vom eingestellten Tunnelanbieter.

Beispiel: IPV6_TUNNEL_1_TIMEOUT='30'



Footnotes

... werden).4.7
Es handelt sich um das IPv4-Protokoll 41, “IPv6 encapsulation”.