La surcharge NAT ou traduction d’adresse de port (PAT) est une forme modifiée de NAT dynamique où le nombre d’adresses locales intérieures est supérieur au nombre d’adresses globales intérieures. La plupart du temps, il n’y a qu’une seule adresse IP globale interne fournissant un accès Internet à tous les hôtes internes. La surcharge NAT est la seule saveur de NAT qui conserve réellement les adresses IP et c’est aussi la forme la plus populaire de NAT.
Figure 10-4 Traduction d’Adresse de Port (PAT)
PAT permet la surcharge ou le mappage de plus d’une adresse locale interne à la même adresse globale interne. Mais cela signifie également que les paquets de retour auraient tous la même adresse de destination lorsqu’ils atteignent le routeur NAT. Comment le routeur pourrait-il savoir à quelle adresse locale interne appartient chaque paquet de retour ? Pour faire face à ce scénario, les entrées NAT dans la table de traduction sont des entrées étendues ; les entrées ne suivent pas seulement les adresses IP pertinentes, mais aussi les types de protocole et les ports. En traduisant à la fois l’adresse IP et le numéro de port d’un paquet, jusqu’à 65535 adresses locales intérieures pourraient théoriquement être mappées à une seule adresse globale inisde (basée sur le numéro de port de 16 bits).
Mais gardez à l’esprit qu’une seule entrée NAT utilise environ 160 octets de mémoire du routeur, donc 65535 entrées prendraient plus de 10 Mo de mémoire et aussi une grande quantité de puissance CPU. Dans les configurations PAT pratiques, on est loin de ce nombre d’adresses mappées, mais c’est définitivement une limite théorique.
Voici un exemple de configuration pour la surcharge NAT ou PAT selon la Figure 10-4.
R1>
R1>enable
R1#configure terminal
Entrez les commandes de configuration, une par ligne. Terminez par CNTL/Z.
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 ?
netmask Spécifiez le masque réseau
prefix-length Spécifiez la longueur du préfixe
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 masque de réseau 255.255.255.0
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)#ip nat inside source list 1 pool MyPool overload
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#interface FastEthernet0/1
R1(config-if)#ip address 67.210.97.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#end
R1#
La configuration ci-dessus peut sembler très similaire à la configuration pour le NAT dynamique, cependant il y a des différences importantes. Premièrement, le pool d’adresses IP a été réduit à une seule adresse IP attribuée à l’interface extérieure du routeur R1.
Deuxièmement, la liste d’accès 1 correspond à l’ensemble du réseau de classe C 192.168.1.0/24, ce qui signifie que toute adresse locale intérieure de ce réseau sera traduite. Si vous souhaitez qu’un hôte spécifique de ce réseau ne soit pas traduit, vous devez le spécifier explicitement en ajoutant une instruction deny à la liste d’accès. Supposons que nous voulons refuser la traduction à un seul hôte 192.168.1.2 tout en autorisant tous les autres hôtes:
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Il y a également un ajout du mot-clé overload avec la commande ip nat inside source list 1 pool MyPool.
Démarrons notre vérification habituelle en émettant la commande show ip nat translations:
R1#show ip nat translations
R1#
Il n’y a pas de mappages statiques et donc la sortie vide ci-dessus. Générons un peu de trafic depuis les hôtes internes vers le serveur et émettons à nouveau la commande show ip nat translations:
Pro Inside global Inside local Outside local Outside global
icmp 67.210.91.1:18 192.168.1.2:18 173.194.67.102:18 173.194.67.102:18
icmp 67.210.91.1:19 192.168.1.3:19 173.194.67.102:19 173.194.67.102:19
icmp 67.210.91.1:20 192.168.1.4:20 173.194.67.102:20 173.194.67.102:20
Comme vous pouvez le voir dans la sortie ci-dessus, toutes les adresses locales intérieures sont traduites en la même adresse globale intérieure, ce qui est l’essence de la surcharge NAT ou PAT. Vous avez peut-être remarqué que le routeur a préservé les numéros de port source alors que les adresses locales intérieures étaient traduites en adresses globales intérieures. C’est le comportement habituel, mais lorsque le routeur crée une nouvelle entrée de traduction telle que le numéro de port source est déjà utilisé, le numéro de port est également traduit en un numéro différent. L’occurrence de deux hôtes intérieurs choisissant le même numéro de port source n’est pas très courante, mais elle peut tout de même se produire, surtout lorsque le nombre de connexions de l’intérieur vers l’extérieur est important.
Envoyons également la commande show ip nat statistics:
Total active translations : 3 (0 statique, 3 dynamique ; 3 étendue)
Interfaces externes:
Serial1/0
Interfaces internes:
FastEthernet0/0
Hits : 135 Misses : 15
CEF Paquets traduits : 150, paquets CEF Punted : 0
Traductions expirées : 12
Mappages dynamiques:
– Inside Source
access-list 1 pool MyPool refcount 3
pool MyPool : netmask 255.255.255.0
start 67.210.91.1 end 67.210.91.1
type generic, total addresses 1, allocated 1 (100%), misses 0
Queued Packets : 0
Vous devez garder deux choses à l’esprit. Premièrement, la surcharge NAT est utile dans toutes les situations où le nombre d’hôtes internes est plus important que les adresses publiques dont vous disposez. Dans de nombreuses situations, vous ne disposez que d’une seule adresse IP publique qui est attribuée à l’interface extérieure de votre routeur tourné vers Internet. Dans ce cas, votre pool sera constitué d’une seule adresse IP, comme le montre la configuration ci-dessus. Cependant, vous pouvez disposer de plusieurs adresses IP publiques, dont l’une peut être attribuée à l’interface de votre routeur orientée vers l’Internet. Dans ce cas, votre pool NAT peut être constitué de plus d’une adresse IP, tout en utilisant la surcharge NAT pour accueillir un plus grand nombre d’hôtes internes souhaitant se connecter à Internet. En bref, vous pouvez avoir une seule adresse publique surchargée ou vous pouvez avoir plus d’une adresse publique surchargée.
La surcharge NAT ou PAT est la configuration NAT la plus répandue pour la raison évidente que c’est la saveur du NAT qui préserve réellement les adresses IP globales, la raison principale de l’utilisation du NAT.