Ce document explique comment l'utilisation des listes d'accès versus les mappages de route change la fonctionnalité de la traduction d'adresses de réseau (NAT). Pour plus d'informations sur NAT, référez-vous à Cisco IOS NAT.
Aucune exigence spécifique n'est associée à ce document.
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
Routeurs de la gamme Cisco 2500.
Logiciel Cisco IOS® Version 12.3(3).
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
La NAT utilise uniquement des listes d'accès et des cartes de routage lorsqu'elle doit créer une entrée de traduction. S'il existe déjà une entrée de traduction correspondant au trafic, l'entrée de traduction sera utilisée ; aucune liste d’accès ou carte de routage ne sera consultée. La différence entre l'utilisation d'une liste d'accès ou d'une carte de routage est le type d'entrée de traduction qui sera créé.
Lorsque la NAT utilise une carte de routage pour décider de créer une entrée de traduction, elle crée toujours une entrée de traduction « entièrement étendue ». Cette entrée de traduction contiendra les entrées d'adresse interne et externe (locale et globale) et toutes les informations de port TCP ou UDP. Référez-vous à NAT : Définitions locales et globales pour plus d'informations sur les adresses internes et externes (locales et globales).
Lorsque la NAT utilise une liste d'accès pour décider de créer une entrée de traduction, elle crée une entrée de traduction « simple ». Cette entrée « simple » contiendra uniquement des entrées d'adresses IP locales et globales pour l'intérieur ou l'extérieur selon que la commande ip nat inside ou ip nat outside est configurée. En outre, il n'inclut aucune information sur les ports TCP ou UDP.
Lorsque NAT utilise une liste d'accès et qu'une surcharge a également été spécifiée, NAT crée une entrée de traduction « entièrement étendue ». (Voir la remarque 1). L’opération est similaire au cas de la route-map, à ceci près que la route-map possède des fonctionnalités supplémentaires. Voir la note 2 pour plus de détails. Vous pouvez voir un exemple d'une entrée de traduction NAT simple et d'une entrée de traduction NAT complète en sélectionnant l'un des liens suivants :
Voici un exemple de diagramme de réseau utilisé pour illustrer la différence entre l’utilisation d’une carte de routage et d’une liste d’accès avec NAT :
Dans cet exemple de diagramme de réseau, il est nécessaire que les hôtes sur 10.1.1.0 soient traduits comme suit :
131.108.2.0 lors de l'accès à 131.108.1.0
131.118.2.0 en accédant à 131.118.1.0
Avec une approche de liste d’accès, procédez comme suit pour traduire les hôtes sur 10.1.1.0 :
ip nat pool pool108 131.108.2.1 131.108.2.254 prefix-length 24 !--- Defines a pool of global addresses to be allocated as needed. ip nat pool pool118 131.118.2.1 131.118.2.254 prefix-length 24 ip nat inside source list 108 pool pool108 !--- Establishes dynamic source translation, specifying the !--- access list defined below. ip nat inside source list 118 pool pool118 interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside !--- Marks the interface as connected to the inside. interface ethernet1 ip address 10.1.2.1 255.255.255.0 ip nat outside !--- Marks the interface as connected to the outside. access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255 !--- Defines the access-list mentioning those addresses !--- that are to be translated. access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255
Référez-vous à Commandes d'adressage IP et de services pour plus d'informations sur ces commandes.
Voici ce qui se passe lorsque l’hôte 1 établit une connexion Telnet avec l’hôte 2.
Packet on (Network 1) s:10.1.1.2(1024) d:131.108.1.2(23) Packet on (Network 2) s:131.108.2.1(1024) d:131.108.1.2(23) (after NAT)
Étant donné qu’une liste d’accès a été utilisée par NAT pour correspondre à ce trafic, une entrée de traduction simple est créée, qui inclut uniquement des informations de traduction internes et aucune information de protocole ou de port :
inside outside local global global local 10.1.1.2 131.108.2.1 ---- ----
Paquet de retour : Hôte 2 à Hôte 1 :
Packet on (Network 2) s:131.108.1.2(23) d:131.108.2.1(1024) Packet on (Network 1) s:131.108.1.2(23) d:10.1.1.2(1024) (after NAT)
Une fois la traduction simple ci-dessus en place, voici ce qui se passe lorsque l’hôte 1 établit également une connexion Telnet avec l’hôte 3 :
Packet on (Network 1) s:10.1.1.2(1025) d:131.118.1.2(23) Packet on (Network 2) s:131.108.2.1(1025) d:131.118.1.2(23) (after NAT)
Vous pouvez voir qu'il y a un problème. Les paquets allant des hôtes 10.1.1.0 vers les hôtes 131.118.1.0 doivent être traduits dans 131.118.2.0, et non dans 131.108.2.0. La raison en est qu’il existe déjà une entrée de traduction NAT pour 10.1.1.2 <—> 131.108.2.1 qui correspond également au trafic entre l’hôte 1 et l’hôte 3. Par conséquent, cette entrée de traduction sera utilisée et les listes d’accès 108 et 11 8 ne sont pas cochées.
Alors que l’entrée de traduction simple est en place dans la table de traduction NAT, elle peut être utilisée par tout utilisateur externe sur tout hôte externe pour envoyer un paquet à l’hôte 1 tant que l’utilisateur externe utilise l’adresse globale interne (131.108.2.1) pour l’hôte 1. Normalement, une traduction NAT statique est nécessaire pour permettre cela.
La manière correcte de configurer l'exemple dans ce document est d'utiliser des feuilles de route. Avec une approche de feuille de route, vous devez effectuer les opérations suivantes pour traduire les hôtes sur 10.1.1.0 :
ip nat pool pool-108 131.108.2.1 131.108.2.254 prefix-length 24 ip nat pool pool-118 131.118.2.1 131.118.2.254 prefix-length 24 ip nat inside source route-map MAP-108 pool pool-108 !--- Establishes dynamic source translation, specifying !--- the route-map MAP-108 which is defined below. ip nat inside source route-map MAP-118 pool pool-118 !--- Establishes dynamic source translation, specifying the route-map MAP-118. !--- Here, the route-maps are consulted instead of !--- access-lists (as in the previous case). interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside interface ethernet1 ip address 10.1.2.1 255.255.255.0 ip nat outside access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255 access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255 route-map MAP-108 permit 10 !--- Defines the Route-map MAP-108. match ip address 108 !--- Specifies the criteria for translation. Here, the IP !--- address mentioned in the access-list 108 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-108 pool pool-108 command. route-map MAP-118 permit 10 !--- Defines the Route-map MAP-108. match ip address 118 !--- The IP address mentioned in the access-list 118 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-118 pool pool-118 command.
Référez-vous à Commandes d'adressage IP et de services pour plus d'informations sur ces commandes.
Voici ce qui se passe lorsque l’hôte 1 établit une connexion Telnet avec l’hôte 2 :
Packet on (Network 1) s:10.1.1.2(1024) d:131.108.1.2(23) Packet on (Network 2) s:131.108.2.1(1024) d:131.108.1.2(23) (after NAT)
Dans ce cas, parce qu'une carte de route a été utilisée par NAT pour correspondre au trafic à traduire, NAT va créer une entrée de traduction entièrement étendue, qui inclut à la fois des informations de traduction internes et externes :
inside outside local global global local 10.1.1.2:1024 131.108.2.1:1024 131.108.1.2:23 131.108.1.2:23
Paquet de retour : Hôte 2 à Hôte 1 :
Packet on (Network 2) s:131.108.1.2(23) d:131.108.2.1(1024) Packet on (Network 1) s:131.108.1.2(23) d:10.1.1.2(1024) (after NAT)
Lorsque l’hôte 1 envoie un paquet à l’hôte 3, voici ce qui apparaît :
Packet on (Network 1) s:10.1.1.2(1025) d:131.118.1.2(23) Packet on (Network 2) s:131.118.2.1(1025) d:131.118.1.2(23) (after NAT)
La traduction a fonctionné correctement, car le paquet sur (N1) ne correspond pas à l'entrée de traduction complètement étendue qui a été utilisée pour le trafic de l'hôte 1 vers l'hôte 2. Étant donné que la traduction existante ne correspond pas, NAT crée une autre entrée de traduction pour le trafic de l’hôte 1 vers l’hôte 3.
Voici les entrées de traduction entièrement étendues sur le routeur NAT :
inside outside local global global local 10.1.1.2:1024 131.108.2.1:1024 131.108.1.2:23 131.108.1.2:23 10.1.1.2:1025 131.118.2.1:1025 131.118.1.2:23 131.118.1.2:23
Étant donné que la table de traduction NAT comporte deux entrées complètes, elle traduira correctement le trafic allant vers les deux destinations différentes à partir de la même source.
Contrairement à l’entrée de traduction simple qui a été créée via la liste d’accès, l’entrée de traduction complète créée via la carte de routage ne peut pas être utilisée par un autre utilisateur externe pour envoyer un paquet à l’hôte 1. Une traduction NAT statique est nécessaire pour permettre cela.
Dans le cas de access-list with overload, la configuration est similaire à celle de access-list without overload. L'exception est que vous devez ajouter le mot clé overload à la commande ip nat inside source list 108 pool pool pool108 et ip nat inside source list 118 pool pool pool118.
L'avantage d'utiliser route-maps est que sous la commande match vous pouvez avoir plus d'options que l'adresse IP source. Par exemple, sous la route-map, match interface ou match ip next-hop peut être spécifié. En utilisant les route-maps, vous pouvez spécifier l'adresse IP ainsi que l'interface ou l'adresse de tronçon suivant vers laquelle le paquet doit être transféré. Par conséquent, les route-maps avec NAT sont utilisées dans un scénario où l'abonné effectue un multi-hébergement vers différents FAI.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
10-Dec-2001
|
Première publication |