Le NAT (Network Address Translation) permet à un réseau local de communiquer sur le réseau publique. Puisque les addresses privées ne sont pas routables sur le réseau internet, le NAT va remplacer l'adresse IP privée source dans le paquet par son adresse IP publique qu'il utilise sur le réseau internet. L'adresse IP publique est fournie par un FAI (fournisseur d'accès à internet).
Dans ce cas, le routeur possède une adresse IP publique qu'il utilisera pour une seule adresse IP privée appartenant à un périphérique. Seul ce périphérique pourra donc communiquer sur internet.
Le NAT statique est utilisé pour connecter des serveurs locaux à internet.
Dans cet exemple, 192.168.1.2 est l'adresse du périphérique et 64.64.64.64 est l'adresse IP publique du routeur configurée sur l'interfance g0/1.
Router> enable
Router# configure terminal
Router(config)# ip nat inside source static 192.168.1.2 64.64.64.64
Router(config)# int g0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# int g0/1
Router(config-if)# ip nat outside
Router(config-if)# exit
Router(config)#
Dans ce cas, le FAI accorde plusieurs adresses IP publiques au client, un pool. Ce dernier sera utlisé par plusieurs péripériques du réseau, selon le mode premier arrivé premier servi. Dans un réseau de 5 PC et 3 adresses publiques, seulement trois PC pourront avoir accès à internet simultanément, les deux autres PC devront attendre que l'un des trois précédents PC termine la communication pour pouvoir utiliser son adresse IP publique.
La configuration se fait par la création d'un pool avec les adresses IP publiques et la création d'un ACL (access control list) pour déclarer le réseau autorisé à utiliser le pool.
Router> enable
Router# configure terminal
Router(config)# ip nat pool POOL_NAME FIRST_IP LAST_IP netmask MASQUE_RESEAU
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)# ip nat inside source list 1 pool POOL_NAME
Dans le cas d'une ACL nominative :
Router> enable
Router# configure terminal
Router(config)# ip nat pool POOL_NAME FIRST_IP LAST_IP netmask MASQUE_RESEAU
Router(config)# ip access-list standard ACL_NAME
Router(config-acl-std)# permit 192.168.1.0 0.0.0.255
Router(config-acl-std)# exit
Router(config)# ip nat inside source list ACL_NAME pool POOL_NAME
Ne pas oublier de définir l'interface interne et l'interface externe.
Router(config)# int g0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# int g0/1
Router(config-if)# ip nat outside
Router(config-if)# exit
Router(config)#
Dans ce cas, le FAI accorde plusieurs adresses IP publiques au client, un pool. Ce dernier sera utlisé par plusieurs péripériques du réseau. La surcharge permet à plusieurs périphérique de se partager une adresse IP publique si leur nombre est supérieur à celui des adresses IP publiques.
La configuration est la même que pour le NAT pool dynamique, la seule différence est l'ajout du mot clé overload
Router> enable
Router# configure terminal
Router(config)# ip nat pool POOL_NAME FIRST_IP LAST_IP netmask MASQUE_RESEAU
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)# ip nat inside source list 1 pool POOL_NAME overload
Router(config)# int g0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# int g0/1
Router(config-if)# ip nat outside
Router(config-if)# exit
Router(config)#
Dans ce cas, qui est utilisé pour les FAI pour l'internet résidentielle, une seule adresse IP publique est accordé au client qui peut avoir plusieurs périphériques sur le réseau local voulant accéder à internet. Tous les périphériques se partagent la même adresse publique de façon simultanée.
Dans ce cas on spécifie l'interface externe du routeur aulieu de l'adresse IP.
Router> enable
Router# configure terminal
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)# ip nat inside source list 1 interface g0/1 overload
Router(config)# int g0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# int g0/1
Router(config-if)# ip nat outside
Router(config-if)# exit
Router(config)#
Les derniers exemples ont été donnés avec des ACL numérotées mais il est également possible d'avoir des ACL nominatives.
Si le réseau est fait de VLANs on applique
ip nat inside
pour désigner l'interface interne sur les sous-interfaces (dans le cas d'un routage router on a stick) ou sur les interfaces vlan dans le cas d'un routage inter-vlan avec un commutateur de couche 3.