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 NAPT44 déterministe pour vous assurer que l’adresse IPv4 source et le port d’origine sont toujours mappés à la même adresse IPv4 post-NAT et à la même plage de ports, et que le mappage inverse d’une adresse et d’un port IPv4 externes traduits donnés sont toujours mappés à la même adresse IPv4 interne. Vous pouvez configurer le NAPT64 déterministe pour vous assurer que l’adresse IPv6 source et le port d’origine sont toujours mappés à la même adresse IPv4 post-NAT et à la même plage de ports, et que le mappage inverse d’une adresse et d’un port IPv4 externes traduits donnés sont toujours mappés à la même adresse IPv6 interne. Le 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 équipés de MS-DPC et sur les routeurs M Series équipés de PICS multiservices MS-100, MS-400 et MS-500. Le NAPT 44 déterministe est pris en charge pour les MS-MPC et MS-MIC à partir de Junos OS version 17.3R1, de Junos OS version 14.2R7 et versions ultérieures 14.2, et de Junos OS version 15.1R3 et versions ultérieures 15.1. À partir de la version 17.4R1 de Junos OS, le NAPT64 déterministe est pris en charge sur les systèmes MS-MPC et MS-MIC.

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

Pour plus d’informations sur la configuration du NAPT déterministe, reportez-vous à la section Configuration du NAPT déterministe.

Avantages du NAPT déterministe

  • Il n’est plus nécessaire de consigner les traductions d’adresses, 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 externe et d’un port traduits donnés sont toujours mappés à la même adresse IP interne.

Comprendre les algorithmes déterministes de NAPT

L’efficacité de votre mise en œuvre du 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 d’abonné entrante à partir de la plage de la from clause spécifiée dans la règle 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.

Note:

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 privée de l’abonné vers l’adresse IP publique) et le calcul inverse (adresse IP publique vers l’adresse IP privée de l’abonné) :

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

  • Pr_Port : n’importe quel port de protocole pré-NAT.

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

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

    taille_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 d’abonné IPv4 pré-NAT utilisable dans une from clause de la règle NAT.

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

  • Pu_Port_Range_Start : premier port post-NAT utilisable. Il s’agit de 1024.

  • Pr_Offset : décalage de l’adresse IP pré-NAT qui est traduite à partir de la première adresse d’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 pré-NAT multiplié par la taille du bloc. PR_Port_Offset = Pr_Offset * Block_Size.

  • Pu_Prefix : adresse post-NAT pour un Pr_Prefix donné.

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

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

  • Nr_Addr_PR_Prefix — Nombre d’adresses d’abonnés IPv4 utilisables avant NAT 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 : supposons 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 = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size

  4. Pu_Prefix = Base_Public_Prefix + étage(Pr_Port_Offset / Rounded_Port_Range_Per_IP)

  5. Pu_Start_Port = Pu_Port_Range_Start + (Pr_Port_Offset % Rounded_Port_Range_Per_IP)

À l’aide de l’exemple de configuration et en supposant un flux d’abonné 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 62278. L’abonné dispose de 249 ports en fonction de la taille de bloc configurée. La plage de ports disponibles s’étend des ports 62278 à 62526 (inclus).

    • Le flux spécifique 10.1.1.250:5000 affecte de manière aléatoire tous les ports de sa plage car une allocation aléatoire a été spécifiée.

Traduction inverse

  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 + étage(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 + floor(125,747 / 249) = 10.1.0.1 + 505 = 10.1.1.250

    Note:

    En traduction inverse, seule l’adresse IP privée d’origine peut être dérivée, et non le port d’origine utilisé. C’est suffisamment précis pour répondre aux 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 seront modifiés si vous reconfigurez la taille du 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 les configurations précédentes.

Restrictions déterministes du NAPT

Lorsque vous configurez le NAPT déterministe, vous devez tenir compte des restrictions suivantes. Le non-respect d’une restriction entraîne une erreur de validation. Les restrictions et leurs messages d’erreur sont indiqués dans le tableau 1.

Tableau 1 : Contraintes déterministes de validation NAPT

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 de 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 sont inférieurs au nombre d'adresses de 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 type de traduction deterministic-napt44

OU

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

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

Avec le type de traduction deterministic-napt44, la même adresse/plage de l'expéditeur 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 le type de traduction deterministic-napt44, au moins une adresse/plage non except '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 des adresses de clause from .

adresse qui se chevauche, dans la clause 'from' 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.

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

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

Le pool 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 le type de traduction deterministic-napt44 et qu’elle est ignorée.

Il n’est pas nécessaire d’effectuer un tourniquet d’allocation d’adresses avec le type de traduction deterministic-napt44

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

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

Configuration du NAPT déterministe

Le NAPT44 déterministe est pris en charge sur les routeurs MX Series équipés de MS-DPC et sur les routeurs M Series équipés de PICS multiservices MS-100, MS-400 et MS-500. Le NAPT44 déterministe est pris en charge pour les MS-MPC et les MS-MIC à partir de Junos OS version 17.3R1, de Junos OS version 14.2R7 et versions ultérieures 14.2, et de Junos OS version 15.1R3 et versions ultérieures 15.1. À partir de la version 17.4R1 de Junos OS, le NAPT64 déterministe est pris en charge sur les systèmes 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 le 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 décrivant la plage.

    Ou

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

    À partir de la version 14.2R1 de Junos OS, cette option est introduite pour vous permettre de configurer l’allocation sequential séquentielle des ports. Les sequential options et random-allocation disponibles avec l’instruction au niveau de la port automatic hiérarchie s’excluent [edit services nat pool nat-pool-name] mutuellement. Vous pouvez inclure l’option d’allocation séquentielle et l’option sequential random-allocation de délégation aléatoire de ports. Par défaut, l’allocation 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’affectation 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 basse et haute du port. Si vous ne configurez pas l’attribution automatique de ports, vous devez configurer une plage de ports.
    Note:

    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 de 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 hautes (adresses réseau et diffusion) de la plage d’adresses source d’une règle NAT soient traduites lors de l’utilisation du pool NAT. Si l’adresse source a un préfixe /32, l’adresse la plus basse et l’adresse la plus haute sont automatiquement traduites.

    Par exemple:

    Note:

    Pour que deterministic-port-block-allocation les modifications de configuration prennent effet, vous devez redémarrer le PIC des 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 le 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 comme NAPT44 déterministe ou NAPT64 déterministe.

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

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

  1. Définissez l’ensemble de 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érer
Description
17.4R1
À partir de la version 17.4R1 de Junos OS, le NAPT64 déterministe est pris en charge sur les systèmes 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 systèmes MS-MPC et MS-MIC.
17.3R1
Le NAPT 44 déterministe est pris en charge pour les MS-MPC et MS-MIC à 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-MIC à partir de Junos OS version 17.3R1
14.2R1
À partir de la version 14.2R1 de Junos OS, cette option est introduite pour vous permettre de configurer l’allocation sequential séquentielle des ports.