Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NAT déterministe

Présentation du NAPT déterministe

Vous pouvez configurer le NAPT44 déterministe pour vous assurer que l’adresse IPv4 et le port sources d’origine correspondent toujours à la même adresse IPv4 et à la même plage de ports postérieure à l’NAT, et que le mappage inverse d’une adresse IPv4 et d’un port IPv4 externes traduits donnés est toujours mappé à la même adresse IPv4 interne. Vous pouvez configurer le protocole déterministe NAPT64 pour vous assurer que l’adresse IPv6 et le port sources d’origine sont toujours mappés à la même adresse IPv4 et à la même plage de ports après NAT, et que le mappage inverse d’une adresse IPv4 externe traduite et d’un port donnés est toujours mappé à la même adresse IPv6 interne. Le protocole NAPT déterministe utilise une allocation basée sur un algorithme de blocs de ports de destination.

Le NAPT44 déterministe est pris en charge sur les routeurs MX Series avec MS-DPC et sur les routeurs M Series avec MS-100, MS-400 et MS-500 MultiServices PICS. La norme déterministe NAPT 44 est prise en charge pour les MS-MPC et les MS-MICs à partir de Junos OS version 17.3R1, de Junos OS version 14.2R7 et ultérieure 14.2, et de Junos OS version 15.1R3 et ultérieure 15.1. À partir de la version 17.4R1 de Junos OS, le NAPT64 déterministe est pris en charge sur les MS-MPC et MS-MIC.

Si l’adresse source dans la from clause d’une règle NAPT déterministe n’a pas le préfixe /32, les adresses réseau et de diffusion de la plage d’adresses source ne sont pas traduites, sauf si vous configurez include-boundary-addresses.

Pour plus d’informations sur la configuration de NAPT déterministe, consultez Configuration de NAPT déterministe.

Avantages du NAPT déterministe

  • Élimine le besoin de journalisation de la traduction d’adresse, car une adresse IP est toujours mappée à la même adresse IP externe et à la même plage de ports, et le mappage inverse d’une adresse IP et d’un port externes traduits donnés est toujours mappé à la même adresse IP interne.

Comprendre les algorithmes NAPT déterministes

L’efficacité de votre implémentation de NAPT déterministe dépend de votre analyse des besoins de vos abonnés. La taille de bloc que vous fournissez indique le nombre de ports qui seront mis à disposition pour chaque adresse abonné entrante à partir de la plage indiquée dans la from clause spécifiée dans la règle de NAT applicable. L’algorithme d’allocation calcule une valeur de décalage pour déterminer l’adresse IP et le port sortants. Un algorithme inverse est utilisé pour dériver l’adresse de l’abonné d’origine.

Remarque :

Afin de suivre les abonnés sans utiliser de journaux, un FAI doit utiliser un algorithme inverse pour dériver les adresses d’un abonné (source) à partir d’une adresse traduite.

Les variables suivantes sont utilisées dans le calcul direct (adresse IP de l’abonné privé vers l’adresse IP publique) et le calcul inverse (adresse IP publique vers l’adresse IP de l’abonné privé) :

  • Pr_Prefix : toute adresse abonné IPv4 antérieure à NAT.

  • Pr_Port : tout port de protocole antérieur à NAT.

  • Block_Size : nombre de ports configurés pour être disponibles pour chaque Pr_Prefix.

    Si block-size est configuré sur zéro, la méthode de calcul de la taille des blocs est calculée comme suit :

    taille du bloc = int(64512/ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)])

    où 64512 est la plage de ports maximale disponible par adresse IP publique.

  • Base_PR_Prefix : première adresse IPv abonné 4 pré-NAT utilisable dans une from clause de la règle NAT.

  • Base_PU_Prefix : première adresse IPv4 post-abonné NAT utilisable configurée dans le pool NAT.

  • Pu_Port_Range_Start : premier port post-NAT utilisable. Nous sommes en 1024.

  • Pr_Offset : décalage de l’adresse IP pré-NAT qui est traduite par rapport à la première adresse abonné IPv4 pré-NAT utilisable dans une from clause de la règle NAT. PR_Offset = Pr_Prefix – Base_Pr_Prefix.

  • PR_Port_Offset : décalage de l’adresse IP d’avant NAT multiplié par la taille du bloc. PR_Port_Offset = Pr_Offset * Block_Size.

  • Pu_Prefix : adresse postérieure à l’NAT d’un Pr_Prefix donné.

  • Pu_Start_Port : port de démarrage post-NAT pour un flux d’un Pr_Prefix donné

  • Pu_Actual_Port : port post-NAT vu sur un flux inversé.

  • Nr_Addr_PR_Prefix : nombre d’adresses abonné IPv4 pré-NAT utilisables dans une from clause de la règle NAT.

  • Nr_Addr_PU_Prefix : nombre d’adresses IPv4 post-NAT utilisables configurées dans le pool NAT.

  • Rounded_Port_Range_Per_IP : nombre de ports disponibles pour chaque adresse IP post-NAT. Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size.

  • Pu_Offset : décalage de l’adresse IP post-NAT par rapport à la première adresse post-NAT utilisable. Pu_Offset = Pu_Prefix – Base_Pu_Prefix.

  • Pu_Port_Offset : décalage du port post-NAT par rapport à 1024 ajouté au produit du décalage de l’adresse IP post-NAT et du nombre de ports disponibles pour chaque adresse IP post-NAT. Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start).

Utilisation de l’algorithme : supposez la configuration suivante :

Traduction directe

  1. Pr_Offset = Pr_Prefix – Base_Pr_Prefix

  2. Pr_Port_Offset = Pr_Offset * Block_Size

  3. Rounded_Port_Range_Per_IP = plafond[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size

  4. Pu_Prefix = Base_Public_Prefix + plancher (Pr_Port_Offset / Rounded_Port_Range_Per_IP)

  5. Pu_Start_Port = Pu_Port_Range_Start + (Pr_Port_Offset % Rounded_Port_Range_Per_IP)

En utilisant l’exemple de configuration et en supposant un flux d’abonnés provenant de 10.1.1.250:5000 :

  1. Pr_Offset = 10.1.1.250 – 10.1.0.1 = 505

  2. Pr_Port_Offset = 505 * 249 = 125 745

  3. Rounded_Port_Range_Per_IP = plafond[(65, 533/254)] * 249 = 259 * 249 = 64 491

  4. Pu_Prefix = 32.32.32.1 + étage(125.745 /64.491) = 32.32.32.1 +1 =32.32.32.2

  5. Pu_Start_Port = 1 024 + (125 745 % 64 491) = 62278

    • 10.1.1.250 est traduit par 32.32.32.2.

    • Le port de départ est le 62278. L’abonné dispose de 249 ports en fonction de la taille de bloc configurée. La plage de ports disponible s’étend des ports 62278 à 62526 (inclus).

    • Le flux spécifique 10.1.1.250:5000 attribue de manière aléatoire l’un des ports de sa plage car l’allocation aléatoire a été spécifiée.

Traduction inversée

  1. Pu_Offset = Pu_Prefix – Base_Pu_Prefix

  2. Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start)

  3. Subscriber_IP = Base_Pr_Prefix + sol(Pu_Port_Offset / Block_Size)

La traduction inverse est déterminée comme suit. Supposons un flux revenant à 32.32.32.2:62278.

  1. Pu_Offset = 32.32.32.2 – 32.32.32.1 = 1

  2. Pu_Port_Offset = (1 * 64 491) + (62 280 - 1024) = 125 747

  3. Subscriber_IP = 10.1.0.1 + plancher(125 747 / 249) = 10.1.0.1 + 505 = 10.1.1.250

    Remarque :

    Dans la traduction inverse, seule l’adresse IP privée d’origine peut être dérivée, et non le port d’origine utilisé. Ceci est suffisamment précis pour les exigences des forces de l’ordre.

Lorsque vous avez configuré le NAPT déterministe, vous pouvez utiliser les commandes et show services nat deterministic-nat nat-port-block pour afficher le show services nat deterministic-nat internal-host mappage avant et arrière. Toutefois, les mappages changeront si vous reconfigurez votre taille de bloc d’allocation de bloc de port déterministe ou la from clause de votre règle NAT. Afin de fournir des informations historiques sur les mappages, nous vous recommandons d’écrire des scripts qui peuvent afficher des mappages spécifiques pour des configurations précédentes.

Restrictions NAPT déterministes

Lorsque vous configurez un NAPT déterministe, vous devez tenir compte des restrictions suivantes. La violation d’une restriction entraîne une erreur de commit. Les restrictions et leurs messages d’erreur sont indiqués dans le Tableau 1.

Tableau 1 : contraintes de validation NAPT déterministes

Restriction

Message d’erreur

Le nombre total de blocs NAT déterministes doit être supérieur ou égal aux from adresses de clause configurées. Cela signifie que la valeur Rounded_Port_Range_Per_IP doit être inférieure ou égale à 64 512.

Le nombre d'adresses et la combinaison de blocs de ports dans le pool NAT est inférieur au nombre d'adresses dans la clause 'from'

Les adresses IPv6 ne doivent pas être utilisées dans la clause déterministe NAT pool/from.

Adresse IP non valide dans le pool p1 avec le type de traduction deterministic-napt44

OU

Il existe déjà une plage configurée avec la plage d’adresses v4

Les adresses des from clauses doivent être les mêmes si le même pool de NAT déterministe est utilisé sur plusieurs termes/règles. Une seule adresse/plage de from clauses doit être spécifiée si le même pool de NAT déterministe est utilisé sur plusieurs termes/règles.

Avec deterministic-napt44 de type translation, la même adresse/plage « de » doit être configurée si le pool est partagé par plusieurs règles ou termes

La from clause doit avoir au moins une adresse source.

Avec deterministic-napt44 de type translation, au moins une adresse/plage autre que 'from' doit être configurée. Erreur : échec de l’extraction de la configuration

Il ne doit pas y avoir de chevauchement d’adresses entre except les entrées dans les adresses de la from clause.

chevauchement d'adresses, dans la clause « de » entre les entrées « excepté »

Les adresses d’un pool NAT utilisé pour le NAPT déterministe ne doivent pas chevaucher les adresses d’un autre pool NAT.

NAT pool det-nat-pool1 chevauche det-nat-pool utilisé par l’ensemble de services sset_det-nat Erreur : échec de l’extraction de la configuration

Un pool NAT déterministe ne peut pas être utilisé avec d’autres types de traduction. En outre, un pool de NAT déterministe ne peut pas être utilisé à la fois dans les règles de NAT NAPT44 déterministes et NAPT64.

Le pool de NAT déterministe ne peut pas être utilisé avec d’autres types de traduction

Le NAPT44 déterministe doit utiliser un pool source avec une configuration déterministe d’allocation de blocs de ports.

Le NAPT44 déterministe doit utiliser un pool source avec une configuration déterministe d’allocation de blocs de ports

Si address-allocation round-robin est configuré, un commit entraîne l’affichage d’un avertissement indiquant que cette technique n’est pas nécessaire avec deterministic-napt44 de type translation et est ignorée.

Le tourniquet d’attribution d’adresses n’est pas nécessaire avec le type de traduction deterministic-napt44

Le nombre total d’adresses IP attribuées à un pool de NAT déterministe doit être inférieur ou égal à 224 (16777216).

Le nombre d’adresses dans le pool avec la traduction déterministe-napt44 est limité à au maximum 16777216(2^24)

Configuration de NAPT déterministe

Le NAPT44 déterministe est pris en charge sur les routeurs MX Series avec MS-DPC et sur les routeurs M Series avec MS-100, MS-400 et MS-500 MultiServices PICS. Le NAPT44 déterministe est pris en charge pour les MS-MPC et MS-MICs à partir de Junos OS version 17.3R1, dans Junos OS version 14.2R7 et ultérieure 14.2, et dans Junos OS version 15.1R3 et ultérieure 15.1. À partir de la version 17.4R1 de Junos OS, le NAPT64 déterministe est pris en charge sur les MS-MPC et MS-MIC.

Pour configurer le NAPT déterministe, procédez comme suit :

Configuration du pool NAT pour le NAPT déterministe

Pour configurer le pool NAT pour un NAPT déterministe :

  1. Au niveau de la [edit services nat pool poolname] hiérarchie, créez un pool.
  2. Définissez la plage d’adresses à traduire, en spécifiant les limites supérieure et inférieure de la plage ou un préfixe d’adresse qui décrit la plage.

    Ou

  3. Pour configurer l’attribution automatique des ports, spécifiez une allocation séquentielle ou aléatoire.
    Remarque :

    À partir de la version 14.2R1 de Junos OS, cette sequential option est introduite pour vous permettre de configurer l’allocation séquentielle des ports. Les sequential options et random-allocation disponibles avec l’instruction port automatic au niveau de la hiérarchie s’excluent [edit services nat pool nat-pool-name] mutuellement. Vous pouvez inclure l’option d’allocation sequential séquentielle et l’option random-allocation de délégation aléatoire des ports. Par défaut, l’attribution séquentielle des ports a lieu si vous incluez uniquement l’instruction port automatic au niveau de la [edit services nat pool nat-pool- name] hiérarchie.

    Pour les versions antérieures à la version 14.2R1 de Junos OS, configurez l’attribution séquentielle automatique des ports à l’aide de l’option auto au niveau de la [edit services nat pool nat-pool-name port automatic] hiérarchie.

  4. Pour configurer une plage de ports à attribuer, spécifiez les valeurs basses et hautes pour le port. Si vous ne configurez pas l’attribution automatique des ports, vous devez configurer une plage de ports.
    Remarque :

    Si vous spécifiez une plage de ports à affecter, l’instruction automatic est ignorée.

  5. Configurez l’allocation déterministe des blocs de ports. Spécifiez la taille du bloc ou acceptez la valeur par défaut de 512.

    Vous pouvez également spécifier include-boundary-addresses si vous souhaitez que les adresses les plus basses et les plus élevées (les adresses réseau et de diffusion) dans la plage d’adresses source d’une règle NAT soient traduites lorsque le pool NAT est utilisé. Si l’adresse source a un préfixe /32, l’adresse la plus basse et l’adresse la plus élevée sont automatiquement traduites.

    Par exemple :

    Remarque :

    Pour que deterministic-port-block-allocation les modifications de configuration prennent effet, vous devez redémarrer le PIC de services chaque fois que vous modifiez l’une des options suivantes nat pool :

    • address ou address-range

    • port range

    • port deterministic-port-block-allocation block-size

Configuration de la règle NAT pour le NAPT déterministe

Pour configurer la règle NAT pour un NAPT déterministe :

  1. Configurez le nom de la règle NAT.
  2. Configurez la direction de correspondance de la règle NAT en entrée.
  3. Spécifiez les adresses traduites par la règle NAT.

    Pour spécifier une adresse :

    Pour spécifier une plage d’adresses :

  4. Spécifiez le pool NAT qui contient les adresses du trafic traduit.
  5. Configurez le type de traduction en NAPT44 déterministe ou NAPT64 déterministe.

Configuration de l’ensemble de services pour la NAT déterministe

Pour configurer l’ensemble de services pour le NAPT déterministe :

  1. Définissez l’ensemble des services.
  2. Configurez soit un service d’interface, qui nécessite une interface de service unique, soit un service de saut suivant, qui nécessite une interface de service interne et externe.

    ou

  3. Spécifiez les règles NAT ou l’ensemble de règles à utiliser avec l’ensemble de services.

Tableau de l’historique des modifications

La prise en charge des fonctionnalités est déterminée par la plateforme et la version que vous utilisez. Utilisez l’explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.

Libération
Descriptif
17.4R1
À partir de la version 17.4R1 de Junos OS, le NAPT64 déterministe est pris en charge sur les MS-MPC et MS-MIC.
17.4R1
À partir de la version 17.4R1 de Junos OS, le NAPT64 déterministe est pris en charge sur les MS-MPC et MS-MIC.
17.3R1
Le protocole NAPT 44 déterministe est pris en charge pour les MS-MPC et MS-MICs à partir de la version 17.3R1 de Junos OS
17.3R1
Le NAPT44 déterministe est pris en charge pour les MS-MPC et MS-MICs à partir de la version 17.3R1 de Junos OS
14.2R1
À partir de la version 14.2R1 de Junos OS, cette sequential option est introduite pour vous permettre de configurer l’allocation séquentielle des ports.