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
- Comprendre les algorithmes déterministes de NAPT
- Restrictions déterministes du NAPT
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.
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 :
services { nat { pool src-pool { address-range low 32.32.32.1 high 32.32.32.254; port { automatic { random-allocation; } deterministic-block-allocation { block-size 249; } } } rule det-nat { match-direction input; term t1 { from { source-address { 10.1.0.0/16; } } then { translated { source-pool src-pool; translation-type { deterministic-napt44; } } } }
Traduction directe
Pr_Offset = Pr_Prefix – Base_Pr_Prefix
Pr_Port_Offset = Pr_Offset * Block_Size
Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size
Pu_Prefix = Base_Public_Prefix + étage(Pr_Port_Offset / Rounded_Port_Range_Per_IP)
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 :
Pr_Offset = 10.1.1.250 – 10.1.0.1 = 505
Pr_Port_Offset = 505 * 249 = 125 745
Rounded_Port_Range_Per_IP = plafond[(65, 533/254)] * 249 = 259 * 249 = 64 491
Pu_Prefix = 32.32.32.1 + étage(125 745 /64 491) = 32.32.32.1 +1 =32.32.32.2
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
Pu_Offset = Pu_Prefix – Base_Pu_Prefix
Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start)
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.
Pu_Offset = 32.32.32.2 – 32.32.32.1 = 1
Pu_Port_Offset = (1 * 64 491) + (62 280 - 1024) = 125 747
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.
Restriction |
Message d'erreur |
---|---|
Le nombre total de blocs NAT déterministes doit être supérieur ou égal aux |
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 |
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 |
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 |
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 |
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
- Configuration de la règle NAT pour le NAPT déterministe
- Configuration de l’ensemble de services pour le NAT déterministe
Configuration du pool NAT pour le NAPT déterministe
Pour configurer le pool NAT pour le NAPT déterministe :
Voir aussi
Configuration de la règle NAT pour le NAPT déterministe
Pour configurer la règle NAT pour le NAPT déterministe :
Configuration de l’ensemble de services pour le NAT déterministe
Pour configurer l’ensemble de services pour le NAPT déterministe :
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.
sequential
séquentielle des ports.