Gleichzeitiger Betrieb von IPv4 und IPv6
Wenn ich in meinem Netz gleichzeitig IPv4 und IPv6 betreibe, kommen zusätzliche Herausforderungen auf mich als Firewall-Administrator zu. Darum geht es in diesem Kapitel. Zunächst betrachte ich verschiedene Arten des gleichzeitigen Betriebs von IPv4 und IPv6, dann gehe ich auf einige Aspekte zur Sicherheit ein.
Ich unterscheide drei Arten, IPv4 und IPv6 gleichzeitig zu betreiben:
- Dual-Stack-Betrieb, bei dem im Netz und bei den Rechnern beide Protokolle gleichzeitig verwendet werden.
- Tunnel-Techniken, bei denen IPv6-Pakete in IPv4-Paketen transportiert werden oder umgekehrt.
- Netzwerk Adress- und Protokollübersetzung, bei der an einer Stelle im Netz IPv4-Pakete in IPv6 umgesetzt werden und umgekehrt.
Dual-Stack-Betrieb
Beim Dual-Stack-Betrieb verwende ich IPv4 und IPv6 gleichberechtigt.
Die Rechner müssen beide Protokolle vollständig benutzen können und verwenden je nach Kommunikationspartner oder Voreinstellung das eine oder das andere Protokoll.
Alle Switche, Router und Paketfilter müssen beide Protokolle unterstützen, damit das reibungslos funktioniert.
Der Dual-Stack-Betrieb ist einfach zu benutzen und flexibel. Er ist oft die beste Option für den gleichzeitigen Betrieb von IPv4 und IPv6.
Vom Standpunkt der Firewall habe ich zwei Zugänge zum Netzwerk, für die ich zwei - dem jeweiligen Protokoll angepasste - Sicherheitskonzepte benötige.
Natürlich hat der Dual-Stack-Betrieb auch Nachteile.
So benötigt das Equipment, welches im Dual-Stack-Modus läuft, mehr RAM und aktiven Programmcode, da es die Funktionen und Status-Informationen für zwei Protokolle vorhalten muss.
Ich benötige sowohl für IPv4 als auch für IPv6 Routing-Informationen und gegebenenfalls zwei Routing-Protokolle.
Auch die Fehlersuche wird komplizierter, weil ich in Betracht ziehen muss, dass ein Host versucht, einen Dienst mit dem falschen Protokoll zu erreichen, oder dass IPv4- und IPv6-Datagramme unterschiedliche Wege gehen.
Tunnel
Bei einem Tunnel leite ich IPv6-Pakete über IPv4-Netze weiter oder umgekehrt. Dabei muss ich drei wesentliche Punkte betrachten:
- das Verpacken der Pakete am Eingang des Tunnels,
- das Auspacken der Pakete am Ausgang des Tunnels und
- die Verwaltung des Tunnels.
Es gibt manuell und automatisch konfigurierte Tunnel. Außerdem unterscheiden sich die Tunnel nach der Art der gekapselten Daten und des Transports.
Tunnel erlauben es mir, genau in dem Tempo IPv4 zu IPv6 zu migrieren, dass ich im Moment gehen kann. Habe ich kein Dual-Stack-Netzwerk und möchte zwei IPv6-Inseln über ein IPv4-Netzwerk verbinden, kann ich das sofort machen und muss nicht warten, bis der Backbone IPv6 übertragen kann. Ich kann einzelne Hosts oder ganze Netzsegmente umstellen und muss mich nicht an eine bestimmte Reihenfolge halten.
Natürlich haben auch Tunnel Nachteile.
Sie erzeugen zusätzliche Last auf dem Router, der als Endpunkt für den Tunnel arbeitet.
Die Endpunkte des Tunnels benötigen Zeit um die Daten ein- und auszupacken, wodurch sich die Latenz erhöht.
Selbst wenn die Datenpakete den gleichen Weg nehmen wie ungetunnelte, geht etwas Bandbreite für die Header des Tunnelprotokolls verloren. Durch die zusätzlichen Header verringert sich die MTU des Datenpfades.
Auch die Fehlersuche wird komplexer, da Probleme mit dem Hop-Count, der Path-MTU und Fragmentierung hinzukommen können. Bei Problemen mit der Verbindung muss ich sowohl das Tunnelprotokoll als auch das getunnelte Protokoll in Betracht ziehen.
Vom Standpunkt der Sicherheit sind insbesondere automatisch aufgebaute Tunnel problematisch, da ich sicherstellen muss, dass auch getunnelte Daten von einer Firewall gefiltert werden, die unter meiner Kontrolle steht. Falls durch meinen Paketfilter getunnelte Daten laufen, trage ich dafür Sorge, dass nur Daten durchgehen, die von einem zugelassenen Tunnel-Endpunkt kommen und dass an diesem Endpunkt ebenfalls gefiltert wird.
Als Firewall-Administrator muss ich mich kundig machen, welche Tunnel in meinem Netzwerk zugelassen sind. Gegebenenfalls muss ich unerwünschte Tunnel erkennen und sperren.
Hier habe ich eine Liste von gängigen Techniken für Tunnel und Quellen für Informationen dazu als Einstieg für interessierte Administratoren zusammengetragen.
6to4
ist ein Verfahren, bei dem jede IPv4-Adresse auf ein IPv6-Netz mit der Netzmaske /48 abgebildet wird. Die IPv6-Adresse setzt sich aus dem Präfix 2002 und der hexadezimal notierten IPv4-Adresse zusammen
Das Verfahren ist in RFC 3056 beschrieben.
6rd (IPv6 Rapid Deployment)
erlaubt einem Provider seinen Kunden bereits IPv6 anzubieten, auch wenn seine eigene Infrastruktur noch nicht vollständig auf IPv6 umgestellt ist. Es basiert auf den Ideen von 6to4 nutzt im Gegensatz zu diesem jedoch keinen speziellen Adressbereich sondern den des Providers.
6rd ist in den RFCs 5569 und 5969 beschrieben.
ISATAP (Intra-Site Automatic Tunnel Addressing Protocol)
ist eine Variante des 6to4-Verfahrens, bei der Tunnel automatisch aufgebaut werden.
Das Verfahren ist in RFC 5214 beschrieben.
Teredo
tunnelt Pakete via UDP und funktioniert damit auch via NAT. Es ist in RFC 4380 beschrieben.
Tunnel Broker
sind IPv6 Provider für Netze, die nur eine IPv4-Verbindung zum Internet haben. Sie sind in RFC 3053 beschrieben.
GRE (Generic Routing Encapsulation)
erlaubt es, beliebige Protokolle in beliebigen anderen Protokollen zu kapseln. Es ist in RFC 2784 beschrieben.
Netzwerk Adress- und Protokollumsetzung (NAPT)
Diese Lösung setze ich nur ein, wenn keine andere verfügbar ist. Sie unterstützt nicht die fortgeschrittenen Möglichkeiten von IPv6.
Der Vorteil von NAPT ist die damit mögliche “direkte” Kommunikation eines IPv4-Hosts mit einem IPv6-Host. Bei allen anderen Lösungen müssen beide Rechner das gleiche Protokoll verwenden.
Nachteile sind begrenzte Topologie-Optionen, da ich einen NAPT-Router, der die Protokolle umsetzt, im Netzwerk-Pfad benötige. Protokolle, die in den Datenpaketen Informationen über die beteiligten Adressen senden, funktionieren nur mit zusätzlichem Aufwand oder gar nicht.
Secure Shell (SSH)
erlaubt über Port-Weiterleitungen einen verschlüsselten Tunnel für die Datenpakete und kann dabei das Protokoll umsetzen, wenn der SSH-Rechner im Dual-Stack-Betrieb arbeitet.
Sicherheitserwägungen
Beim gleichzeitigen Betrieb von IPv4 und IPv6 muss ich mehrere Zugänge zum Netz in den Richtlinien berücksichtigen.
Ich muss dafür Sorge tragen, dass Datenpakete, die mein Netzwerk über einen Tunnel erreichen oder verlassen, ebenfalls gefiltert werden.
RFC 4942 “IP6 Transition / Coexistence Security Considerations” geht auf dieses Thema ein.
RFC 3964 “Security Considerations for 6to4” geht auf den Tunnelbetrieb ein.
Auch die anderen RFCs zu den verschiedenen Verfahren muss ich studieren, wenn ich diese einsetzen will oder erkennen will, ob sie bereits eingesetzt werden.