Citrix ADC

Traduction NAT64 avec état

La fonction NAT64 avec état 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 Citrix ADC.

Une configuration NAT64 avec état sur l’appliance Citrix ADC comporte les composants suivants :

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

L’appliance Citrix ADC 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 Citrix ADC correspond à une norme ACL6 définie dans une règle NAT64 et que l’adresse IP de destination du paquet correspond au préfixe IPv6 NAT64, l’appliance Citrix ADC considère le paquet IPv6 à traduire.

L’appliance convertit 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 Citrix ADC crée une session NAT64 pour ce flux particulier et transfère 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 particulière.

Prenons un exemple dans lequel une entreprise héberge le site www.example.com sur le serveur S1, qui a une adresse IPv4. Pour activer la communication entre les clients IPv6 et le serveur IPv4 S1, l’appliance Citrix ADC NS1 est déployée avec une configuration NAT64 avec état 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 : Exemple de configuration 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 Citrix ADC reçoit le paquet de requête. Si le paquet de requête correspond à l’ACL6 définie dans la règle NAT64 et que l’adresse IP de destination du paquet correspond au préfixe IPv6 NAT64, Citrix ADC 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 retiré 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 Citrix ADC crée une session NAT64 pour ce flux et envoie la requête IPv4 traduite au serveur S1.

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

    • Champ d’adresse IP de destination contenant 192.0.2.100
    • Champ d’adresse IP source contenant l’adresse deSevr_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 considère le paquet IPv4 pour la traduction.

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

    • Destination IP address field=Client_IPv6=2001:DB8:5001::30
    • Source IP address field = Concatenation of NAT64 Prefix (First 96 bits) and Sevr_IPv4 (last 32 bits) =2001:DB8:300::192.0.2.60
  8. L’appliance envoie la réponse IPv6 traduite au CL1 client.

Limites de la NAT64 avec état

Les limitations suivantes s’appliquent à la NAT64 avec état :

  • 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 hop-by-hop 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 des paquets de multidiffusion n’est pas prise en charge.
  • Les paquets de protocole SCTP (Stream Control Transmission Protocol), DCCP (Datagram Congestion Control Protocol) et IPsec ne sont pas traduits.

Configuration de l’état NAT64

La création des entités requises pour la configuration NAT64 avec état sur l’appliance Citrix ADC 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 netprofile et liez l’ipset à celui-ci. Si vous voulez lier une seule adresse IP, vous n’avez pas besoin de créer une entité ipset. Dans ce cas, liez l’adresse IP directement au netprofile.
  4. Ajoutez une règle NAT64, qui inclut la liaison de la règle ACL6 et du profil réseau à la règle NAT 64.
  5. Ajoutez un préfixe NAT64 IPv6.

Procédures CLI

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

À l’invite de commandes, tapez :

  • add ns acl6 <acl6name> <acl6action> …

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

À l’invite de commandes, 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 commandes, tapez :

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

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

À l’invite de commandes, 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 commandes, 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

Procédures GUI

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

Accédez à Système > Réseau > Routes > NAT64 et à 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 INAT et définissez le paramètre Préfixe .

Traduction NAT64 avec état