In diesem Beitrag erfährst du, warum und wie man IPv4- bzw. IPv6-Adressen durch bestehende IPv4- oder IPv6-Netzwerke „tunnelt“. Es werden gängige Protokolle vorgestellt, ihre Eigenschaften vergleichen und Konfigurationsschritte für ein Linux System aufgezeigt.
Einführung in „Tunneling“
Tunneling beschreibt das „Verpacken“ von Paketen eines Netzwerkprotokolls in Datenpakete eines anderen Protokolls. So lassen sich IPv6-Pakete über ein reines IPv4-Netzwerk übertragen – und umgekehrt. Das ist besonders nützlich, um neue Adressräume bereitzustellen, Übergangstechnologien einzusetzen oder isolierte Netzsegmente zu verbinden.
Prinzip von Tunneling. Quelle: Technik-Kiste.de
Warum Tunneln notwendig ist
- Fehlende native Unterstützung: Viele Provider und Firmennetze bieten noch kein flächendeckendes IPv6 an.
- Überbrückung heterogener Netze: Kommuniziert man zwischen rein IPv4- und rein IPv6-Segmenten, ist ein Tunnel oft die einfachste Lösung.
- Test- und Laborumgebungen: Entwickler simulieren IPv6 im IPv4-Labornetz oder umgekehrt, ohne Infrastruktur umzubauen.
Gängige Tunneling-Protokolle
Protokoll |
Transport |
Anwendungsfall |
Automatisierung |
Verschlüsselung |
6in4 |
IPv6 über IPv4 |
Einfaches IPv6 über IPv4 |
manuell |
nein |
6RD |
IPv6 Rapid Deploy über IPv4 |
Provider-basierte IPv6-Bereitstellung |
teilautomatisch |
nein |
6to4 |
IPv6 über IPv4 |
Automatische Adressableitung |
automatisch |
nein |
Teredo |
IPv6 über UDP/IPv4 |
NAT-Overcome für IPv6 |
automatisch |
nein |
ISATAP |
IPv6 über IPv4 |
Windows-domänenspezifisch |
automatisiert |
nein |
GRE |
beliebig über beliebig |
Flexibel, multimediale Tunnel |
manuell |
optional |
SIT (IPv4-in-IPv6) |
IPv4 über IPv6 |
Umgekehrtes Tunneln für ältere Netze |
manuell |
nein |
IPsec (VTI) |
IPvX über IPvX |
Segmentübergreifende Verschlüsselung |
automatisiert |
ja |
6in4
- Funktion: Eingebettetes IPv6 in IPv4-Pakete (Protokoll 41)
- Mögliche Adressen: Beliebiges globales IPv6-Präfix (z. B. /64) über IPv4-Tunnelendpunkte
- RFC: RFC 4213 “Basic Transition Mechanisms for IPv6 Hosts and Routers”
IPv4-in-IPv6
- Funktion: Eingebettetes IPv4 in IPv6 (umgekehrt zu 6in4)
- Mögliche Adressen: Beliebige IPv4- bzw. IPv6-Adressen je Tunnelende
- RFC: RFC 2473 “Generic Packet Tunneling in IPv6 Specification”
6RD (IPv6 Rapid Deployment)
- Funktion: Provider-gesteuerte Verteilung von IPv6 über IPv4, mit festgelegtem 6RD-Präfix
- Mögliche Adressen: 6RD-Präfix (z. B. 2001:DB8:xxxx::/48) plus eingebettete IPv4-Adresse
- RFC: RFC 5569 “IPv6 Rapid Deployment on IPv4 Infrastructures”
6to4
- Funktion: Automatischer IPv6-Tunnel über IPv4, nutzt das Prefix 2002::/16
- Mögliche Adressen: 2002:WWXX:YYZZ::/48 (WWXX:YYZZ = hexadezimale IPv4)
- RFC: RFC 3056 “Connection of IPv6 Domains via IPv4 Clouds”
Teredo
- Funktion: IPv6 über UDP/IPv4 für NAT-Durchbruch, kapselt IPv6 in UDP (Port 3544)
- Mögliche Adressen: 2001:0000::/32 (Client-Adresse: 2001:0000:Ver-,Teredo-IP/-)
- RFC: RFC 4380 “Teredo: Tunneling IPv6 over UDP through Network Address Translations”
ISATAP
- Funktion: Intra-Site Automatic Tunnel Addressing Protocol für IPv6 über IPv4
- Mögliche Adressen: FE80::5EFE:W.X.Y.Z (Link-Local) oder globales Präfix + ::5EFE:IPv4
- RFC: RFC 5214 “Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)”
GRE
- Funktion: Generic Routing Encapsulation – beliebige Protokolle über IPv4/IPv6
- Mögliche Adressen: Jede IPv4- oder IPv6-Adresse als Tunnelendpunkt
- RFC: RFC 2784 “Generic Routing Encapsulation”; RFC 2890 (Checksums & Key)
IPsec (Virtual Tunnel Interface)
- Funktion: Verschlüsselter IPvX-Tunnel als virtuelles Interface
- Mögliche Adressen: Beliebige IPv4- oder IPv6-Adressen, Policy-basiert
- RFC: RFC 4301 (Architecture), RFC 4302 (AH), RFC 4303 (ESP)
Dual-Stack und Tunneling
Dual-Stack ist kein eigenständiges Tunnel-Protokoll, sondern der Betrieb von IPv4 und IPv6 parallel auf einem System. Jeder Tunnel-Endpunkt muss – je nach Verfahren – zumindest das transportierende und das transportierte Protokoll unterstützen.
Folgende Protokolle setzen Dual-Stack auf den Endpunkten voraus, transportieren aber nur jeweils ein Protokoll im Tunnel:
- 6in4 (IPv6 über IPv4)
- 6RD, 6to4, ISATAP, Teredo (IPv6 über IPv4)
- SIT (IPv4 über IPv6)
Diese Verfahren kapseln entweder nur IPv6 in IPv4 (bzw. umgekehrt) und benötigen daher Dual-Stack auf Host/Router, um das äußere und das innere Protokoll zu handhaben.
GRE und IPsec (VTI) ermöglichen echten Dual-Stack-Tunnel:
- beide Protokolle können IPv4- und IPv6-Pakete gleichzeitig durch denselben Tunnel transportieren
- man richtet ein einziges GRE- bzw. IPsec-VTI-Interface ein, das dann nativ beide Familien weiterleitet
Damit entfällt die Notwendigkeit, für jedes Protokoll einen separaten Tunnel zu konfigurieren.
Vor- und Nachteile im Überblick
Aspekt |
Vorteil |
Nachteil |
Geschwindigkeit |
Oft native Geschwindigkeit |
Overhead durch Kapselung |
Komplexität |
Schnell eingerichtet |
Zusätzlicher Konfigurationsaufwand |
Sicherheit |
IPsec-Tunnel optional |
Bei unverschlüsselten Tunneln Angriffsfläche |
Skalierbarkeit |
Mehrere Tunnel parallel |
Administrationsaufwand steigt |
Praktische Anwendungsfälle
- Provider-Migration
IPv6-Only-Backbone koppelt vorhandene IPv4-Kunden per 6RD. - Firmenzentrale zu Filiale
Site-to-Site-GRE-Tunnel transportiert beide Protokolle durch das Internet. - Endnutzer-Szenario
Teredo ermöglicht IPv6-Zugriff, selbst wenn der Anwender hinter NAT-Geräten sitzt.
Konfiguration: Schritt-für-Schritt
- Tunnel-Endpunkte bestimmen
Lege öffentliche IPv4- oder IPv6-Adressen für Sender und Empfänger fest. - Tunnel-Interface anlegen
Beispiel unter Linux für 6in4:
ip tunnel add tun6in4 mode sit remote <Remote-IPv4> local <Local-IPv4> ttl 64
ip link set tun6in4 up
ip addr add 2001:db8:1::1/64 dev tun6in4
route -A inet6 add ::/0 dev tun6in4
- Routing konfigurieren
Stelle sicher, dass beide Seiten wissen, welche IPv6-Präfixe durch den Tunnel gehen. - Firewall-Regeln anpassen
öffne Protokoll 41 (IPv6-in-IPv4) bei 6in4/6to4 oder UDP-Port 3544 bei Teredo. - Tests und Monitoring
- Ping: ping6 2001:db8:1::2
- Durchsatz messen mit iperf3 -6