ADC

Traduction NAT64 avec état

La fonctionnalité dynamique NAT64 permet la communication entre les clients IPv6 et les serveurs IPv4 via la traduction de paquets IPv6 vers IPv4, et vice versa, tout en conservant les informations de session sur l’appliance NetScaler.

Une configuration NAT64 dynamique sur l’appliance NetScaler comporte les composants suivants :

  • Règle NAT64 : entrée composée d’une règle ACL6 et d’un netprofile, qui consiste en un pool d’adresses SNIP appartenant à NetScaler.
  • PréfixeIPv6 NAT64 : préfixeIPv6 global d’une longueur de 96 bits (128-32=96) configuré sur l’appliance. Remarque : Actuellement, l’appliance NetScaler ne prend en charge qu’un seul préfixe à utiliser couramment avec toutes les règles NAT 64.

L’appliance NetScaler considère un paquet IPv6 entrant pour la traduction NAT64 lorsque toutes les conditions suivantes sont remplies :

  • Le paquet IPv6 entrant correspond à la règle ACL6 liée à une règle NAT64.
  • L’adresse IP de destination du paquet IPv6 correspond au préfixe IPv6 NAT64.

Lorsqu’un paquet de requête IPv6 reçu par l’appliance NetScaler correspond à un ACL6 défini dans une règle NAT64 et que l’adresse IP de destination du paquet correspond au préfixe IPv6 NAT64, l’appliance NetScaler considère le paquet IPv6 à traduire.

L’appliance traduit ce paquet IPv6 en un paquet IPv4 dont l’adresse IP source correspond à l’une des adresses IP liées au profil réseau défini dans la règle NAT64, et une adresse IP de destination composée des 32 derniers bits de l’adresse IPv6 de destination du paquet de requête IPv6. L’appliance NetScaler crée une session NAT64 pour ce flux particulier et transmet le paquet au serveur IPv4. Les réponses ultérieures du serveur IPv4 et les demandes du client IPv6 sont traduites en conséquence par l’appliance, sur la base des informations de la session NAT64 en question.

Prenons l’exemple d’une entreprise hébergeant le site www.example.com sur le serveur S1, qui possède une adresse IPv4. Pour permettre la communication entre les clients IPv6 et le serveur IPv4 S1, l’appliance NetScaler NS1 est déployée avec une configuration NAT64 dynamique qui inclut une règle NAT64 et un préfixe NAT64. Une adresse IPv6 mappée du serveur S1 est formée en concaténant le préfixe IPv6 NAT64 [96 bits] et l’adresse source IPv4 [32 bits]. Cette adresse IPv6 mappée est ensuite configurée manuellement dans les serveurs DNS. Les clients IPv6 obtiennent l’adresse IPv6 mappée à partir des serveurs DNS pour communiquer avec le serveur IPv4 S1.

nat64

Le tableau suivant répertorie les paramètres utilisés dans cet exemple : exemples de paramètres de traduction NAT64 avec état.

Voici le flux de trafic dans cet exemple :

  1. Le client IPv6 CL1 envoie un paquet de requête à l’adresse MAP-SEVR-IPv6 (2001:DB 8:300 : :192.0.2.60).

  2. L’appliance NetScaler reçoit le paquet de demande. Si le paquet de demande correspond à l’ACL6 défini dans la règle NAT64 et que l’adresse IP de destination du paquet correspond au préfixe IPv6 NAT64, NetScaler considère le paquet IPv6 pour la traduction.

  3. L’appliance crée un paquet de requête IPv4 traduit avec :

    • Champ d’adresse IP de destination contenant le préfixe NAT64 supprimé de l’adresse de destination de la requête IPv6 (SEVR_IPv4 = 192.0.2.60)
    • Champ d’adresse IP source contenant l’une des adresses IPv4 liées à Netprofile-1 (dans ce cas, 192.0.2.100)
  4. L’appliance NetScaler crée une session NAT64 pour ce flux et envoie la demande IPv4 traduite au serveur S1.

  5. Le serveur IPv64 S1 répond en envoyant un paquet IPv4 à l’appliance NetScaler avec :

    • Champ d’adresse IP de destination contenant 192.0.2.100
    • Champ d’adresse IP source contenant l’adresse du SEVR_IPv4 (192.0.2.60)
  6. L’appliance reçoit le paquet de réponse IPv4, recherche toutes les entrées de session et constate que le paquet de réponse IPv6 correspond à l’entrée de session NAT64 créée à l’étape 4. L’appliance prend en compte le paquet IPv4 pour la traduction.

  7. L’appliance crée un paquet de réponse IPv6 traduit avec :

    • Champ d’adresse IP de destination = Client_IPV6=2001:DB 8:5001 : :30
    • Champ d’adresse IP source = Concaténation du préfixe NAT64 (96 premiers bits) et de SEVR_IPv4 (32 derniers bits) =2001:DB 8:300 : :192.0.2.60
  8. L’appliance envoie la réponse IPv6 traduite au client CL1.

Limites de Statelful NAT64

Les limitations suivantes s’appliquent à Stateful NAT64 :

  • La traduction des options IPv4 n’est pas prise en charge.
  • La traduction des en-têtes de routage IPv6 n’est pas prise en charge.
  • La traduction des en-têtes d’extension saut par saut des paquets IPv6 n’est pas prise en charge.
  • La traduction des en-têtes ESP et EH des paquets IPv6 n’est pas prise en charge.
  • La traduction de paquets de multidiffusion n’est pas prise en charge.
  • Les paquets du protocole SCTP (Stream Control Transmission Protocol), du protocole DCCP (Datagram Congestion Control Protocol) et du protocole IPsec ne sont pas traduits.

Configuration de Stateful NAT64

La création des entités requises pour une configuration NAT64 dynamique sur l’appliance NetScaler implique les procédures suivantes :

  1. Ajoutez une règle ACL6 avec l’action ALLOW.
  2. Ajoutez un ipset qui lie plusieurs adresses IP.
  3. Ajoutez un profil réseau et liez-y l’ipset. Si vous souhaitez lier une seule adresse IP, il n’est pas nécessaire de créer une entité ipset. Dans ce cas, liez l’adresse IP directement au profil réseau.
  4. Ajoutez une règle NAT64, qui inclut la liaison de la règle ACL6 et du netprofile à la règle NAT 64.
  5. Ajoutez un préfixe IPv6 NAT64.

Procédures CLI

Pour ajouter une règle ACL6 à l’aide de l’interface de ligne de commande :

À l’invite de commande, tapez :

  • add ns acl6 <acl6name> <acl6action> …

Pour ajouter un ensemble d’adresses IP et y lier plusieurs adresses IP à l’aide de l’interface de ligne de commande :

À l’invite de commande, tapez :

  • add ipset <name>
  • bind ipset <name> <IPaddress …>

Pour ajouter un profil réseau à l’aide de l’interface de ligne de commande :

À l’invite de commande, tapez :

  • add netprofile <name> -srcIP <IPaddress ou IPset>

Pour ajouter une règle NAT64 à l’aide de l’interface de ligne de commande :

À l’invite de commande, tapez :

  • add nat64 <name> <acl6name> -netProfile <string>

Pour ajouter un préfixe NAT64 à l’aide de l’interface de ligne de commande :

À l’invite de commande, tapez :

  • set ipv6 -natprefix <ipv6_addr *>

Exemple :

 > 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-->

Procédures GUI

Pour ajouter une règle NAT64 à l’aide de l’interface graphique :

Accédez à Système > Réseau > Routes > NAT64 et accédez à une nouvelle règle NAT64, ou modifiez une règle existante.

Pour ajouter un préfixe NAT64 à l’aide de l’interface graphique :

Accédez à Système > Réseau, dans le groupe Paramètres, cliquez sur Configurer les paramètres INATet définissez le paramètre Préfixe.

Traduction NAT64 avec état