Zustandsbehaftete NAT64-Übersetzung
Die statusmäßige NAT64-Funktion ermöglicht die Kommunikation zwischen IPv6-Clients und IPv4-Servern über die IPv6-zu-IPv4-Paketübersetzung und umgekehrt, wobei die Sitzungsinformationen auf der NetScaler-Appliance erhalten bleiben.
Eine statusmäßige NAT64-Konfiguration auf der NetScaler-Appliance besteht aus den folgenden Komponenten:
- NAT64-Regel— Ein Eintrag, der aus einer ACL6-Regel und einem Netzprofil besteht, das aus einem Pool von NetScaler-eigenen SNIP-Adressen besteht.
- NAT64-IPv6-Präfix— Ein globales IPv6-Präfix mit einer Länge von 96 Bit (128-32=96), das auf der Appliance konfiguriert ist. Hinweis: Derzeit unterstützt die NetScaler-Appliance nur ein Präfix, das gemeinsam mit allen NAT 64-Regeln verwendet wird.
Die NetScaler-Appliance betrachtet ein eingehendes IPv6-Paket für die NAT64-Übersetzung, wenn alle der folgenden Bedingungen erfüllt sind:
- Das eingehende IPv6-Paket entspricht der ACL6-Regel, die an eine NAT64-Regel gebunden ist.
- Die Ziel-IP-Adresse des IPv6-Pakets entspricht dem NAT64-IPv6-Präfix.
Wenn ein von der NetScaler-Appliance empfangenes IPv6-Anforderungspaket mit einer in einer NAT64-Regel definierten ACL6 übereinstimmt und die Ziel-IP des Pakets mit dem NAT64-IPv6-Präfix übereinstimmt, betrachtet die NetScaler-Appliance das IPv6-Paket zur Übersetzung.
Die Appliance übersetzt dieses IPv6-Paket in ein IPv4-Paket mit einer Quell-IP-Adresse, die einer der IP-Adressen entspricht, die an das in der NAT64-Regel definierte Netzprofil gebunden sind, und einer Ziel-IP-Adresse, die aus den letzten 32 Bit der Ziel-IPv6-Adresse des IPv6-Anforderungspakets besteht. Die NetScaler-Appliance erstellt eine NAT64-Sitzung für diesen bestimmten Flow und leitet das Paket an den IPv4-Server weiter. Nachfolgende Antworten vom IPv4-Server und Anfragen vom IPv6-Client werden von der Appliance auf der Grundlage der Informationen in der jeweiligen NAT64-Sitzung entsprechend übersetzt.
Stellen Sie sich ein Beispiel vor, in dem ein Unternehmen die Website www.example.com auf dem Server S1 hostet, der über eine IPv4-Adresse verfügt. Um die Kommunikation zwischen IPv6-Clients und IPv4-Server S1 zu ermöglichen, wird die NetScaler Appliance NS1 mit einer statusbehafteten NAT64-Konfiguration bereitgestellt, die eine NAT64-Regel und ein NAT64-Präfix enthält. Eine zugeordnete IPv6-Adresse des Servers S1 wird gebildet, indem das NAT64-IPv6-Präfix [96 Bit] und die IPv4-Quelladresse [32 Bit] verkettet werden. Diese zugeordnete IPv6-Adresse wird dann manuell auf den DNS-Servern konfiguriert. Die IPv6-Clients erhalten die zugeordnete IPv6-Adresse von den DNS-Servern, um mit dem IPv4-Server S1 zu kommunizieren.
In der folgenden Tabelle sind die in diesem Beispiel verwendeten Einstellungen aufgeführt: Beispieleinstellungen für Stateful NAT64.
Es folgt der Verkehrsfluss in diesem Beispiel:
-
Der IPv6-Client CL1 sendet ein Anforderungspaket an die Map-Sevr-IPv6-Adresse (2001:DB 8:300: :192.0.2.60).
-
Die NetScaler-Appliance empfängt das Anforderungspaket. Wenn das Anforderungspaket mit der in der NAT64-Regel definierten ACL6 übereinstimmt und die Ziel-IP-Adresse des Pakets mit dem NAT64-IPv6-Präfix übereinstimmt, betrachtet NetScaler das IPv6-Paket zur Übersetzung.
-
Die Appliance erstellt ein übersetztes IPv4-Anforderungspaket mit:
- Ziel-IP-Adressfeld, das das NAT64-Präfix enthält, das aus der Zieladresse der IPv6-Anfrage entfernt wurde (sevr_IPv4 = 192.0.2.60)
- Feld für die Quell-IP-Adresse, das eine der an Netprofile-1 gebundenen IPv4-Adressen enthält (in diesem Fall 192.0.2.100)
-
Die NetScaler-Appliance erstellt eine NAT64-Sitzung für diesen Flow und sendet die übersetzte IPv4-Anfrage an Server S1.
-
Der IPv64-Server S1 sendet daraufhin ein IPv4-Paket an die NetScaler-Appliance mit:
- Ziel-IP-Adressfeld, das 192.0.2.100 enthält
- Quell-IP-Adressfeld, das die Adresse von SEVR_IPv4 enthält (192.0.2.60)
-
Die Appliance empfängt das IPv4-Antwortpaket, durchsucht alle Sitzungseinträge und stellt fest, dass das IPv6-Antwortpaket mit dem in Schritt 4 erstellten NAT64-Sitzungseintrag übereinstimmt. Die Appliance betrachtet das IPv4-Paket für die Übersetzung.
-
Die Appliance erstellt ein übersetztes IPv6-Antwortpaket mit:
- Ziel-IP-Adresse Feld=client_IPv6=2001:DB 8:5001::30
- Quell-IP-Adressfeld = Verkettung von NAT64-Präfix (erste 96 Bit) und SEVR_IPv4 (letzte 32 Bit) =2001:DB 8:300: :192.0.2.60
-
Die Appliance sendet die übersetzte IPv6-Antwort an den Client CL1.
Einschränkungen von Statelful NAT64
Die folgenden Einschränkungen gelten für stateful-NAT64:
- Die Übersetzung von IPv4-Optionen wird nicht unterstützt.
- Die Übersetzung von IPv6-Routing-Headern wird nicht unterstützt.
- Die Übersetzung von Hop-by-Hop-Erweiterungsheadern von IPv6-Paketen wird nicht unterstützt.
- Die Übersetzung von ESP- und EH-Headern von IPv6-Paketen wird nicht unterstützt.
- Die Übersetzung von Multicast-Paketen wird nicht unterstützt.
- Pakete von Stream Control Transmission Protocol (SCTP), Datagram Congestion Control Protocol (DCCP) und IPSec werden nicht übersetzt.
Konfiguration von Stateful NAT64
Das Erstellen der erforderlichen Entitäten für die statusmäßige NAT64-Konfiguration auf der NetScaler-Appliance umfasst die folgenden Verfahren:
- Fügen Sie eine ACL6-Regel mit der Aktion ALLOW hinzu.
- Fügen Sie ein IPset hinzu, das mehrere IP-Adressen bindet.
- Fügen Sie ein Netzprofil hinzu und binden Sie das IPset daran. Wenn Sie nur eine IP-Adresse binden möchten, müssen Sie keine IPset-Entität erstellen. Binden Sie in diesem Fall die IP-Adresse direkt an das Netzprofil.
- Fügen Sie eine NAT64-Regel hinzu, die die Bindung der ACl6-Regel und des Netzprofils an die NAT64-Regel beinhaltet.
- Fügen Sie ein NAT64-IPv6-Präfix hinzu.
CLI-Verfahren
So fügen Sie eine ACL6-Regel mithilfe der CLI hinzu:
Geben Sie in der Befehlszeile Folgendes ein:
- <acl6name><acl6action>füge ns acl6 hinzu…
Um ein IPSet hinzuzufügen und mehrere IPs daran zu binden, verwenden Sie die CLI:
Geben Sie in der Befehlszeile Folgendes ein:
- add ipset <name>
- bind ipset <name> <IPaddress …>
Um ein Netzprofil mit der CLI hinzuzufügen:
Geben Sie in der Befehlszeile Folgendes ein:
- add netprofile <name> -srcIP <IPaddress or IPset>
So fügen Sie mit der CLI eine NAT64-Regel hinzu:
Geben Sie in der Befehlszeile Folgendes ein:
- add nat64 <name> <acl6name> -netProfile <string>
So fügen Sie mit der CLI ein NAT64-Präfix hinzu:
Geben Sie in der Befehlszeile Folgendes ein:
- set ipv6 -natprefix <ipv6_addr|*>
Beispiel:
> add acl6 ACL6-1 ALLOW -srcIPv6 2001:DB8:5001::30
Done
> apply acls6
Done
> add ip 192.0.2.100 255.255.255.0 –type SNIP
Done
> add ip 192.0.2.102 255.255.255.0 –type SNIP
Done
> add ipset IPset-1
Done
> bind ipset IPset-1 192.0.2.100 192.0.2.102
IPAddress "192.0.2.100" bound
IPAddress "192.0.2.102" bound
Done
> add netprofile Netprofile-1 -srcIP IPset-1
Done
> add nat64 NAT64-1 ACL6-1 -netprofile Netprofile-1
Done
> set ipv6 -natprefix 2001:DB8:300::/96
Done
<!--NeedCopy-->
GUI-Verfahren
So fügen Sie mit der GUI eine NAT64-Regel hinzu:
Navigieren Sie zu System > Netzwerk > Routen > NAT64 und geben Sie eine neue NAT64-Regel ein, oder bearbeiten Sie eine bestehende Regel.
So fügen Sie mit der GUI ein NAT64-Präfix hinzu:
Navigieren Sie zu System > Netzwerk, klicken Sie in der Gruppe Einstellungenauf INAT-Parameter konfigurieren, und legen Sie den Präfix-Parameter fest.