Configuration d’un NAT dynamique sur un routeur Cisco
Sommaire
I. Présentation
Le NAT ou "Network Address Translation" est une bonne réponse aux problématiques de routage que l'on peut rencontrer lorsque l'on souhaite lier un réseau dit "privé" (c'est à dire sur lequel nous avons la main) à un réseau dit "publique" (sur lequel nous ne pouvons modifier la configuration). Le but du NAT quand il est mit sur un routeur séparant deux réseaux comme ceux-ci est de faire passer toutes les requêtes provenant du réseau privé (que nous identifierons comme le LAN) comme des requêtes provenant de ce routeur est nous d'un élément derrière lui possédant un autre adressage. Souvent, la problématique à laquelle peut répondre le NAT est la suivante :
On voit ici que le réseau "privé" en vert se situe derrière le routeur R2 sur lequel nous avons la main. Pour joindre les réseaux derrière R1, il nous faut mettre une route disant qu'il faut sortir par l'interface WAN du R2. En revanche, le routeur R1 ne saura pas faire revenir les paquets car il ne possède pas de route vers notre réseau LAN :
Le schéma ci-dessus illustre le cas de figure dans lequel on se retrouve souvent lorsque nous devons mettre en place du NAT. Le fait que le ping vers le routeur R1 ne fonctionne pas alors que celui sur l'interface externe du R2 fonctionne vient du fait que les paquets de réponse du routeur R1 n’empruntent pas le bon chemin car R1 ne connait pas le réseau privé et ne possède donc pas de route permettant de faire revenir les paquets.
Une autre fonction du du NAT est de sécuriser une partie du réseau en la cachant à une autre partie. Cela est utile en terme de sécurité quand un réseau privé est adjacent à un réseau public et que l’on peut voir ce réseau local depuis le réseau public. Plus clairement, le routeur R2 va changer toutes les trames IP provenant du LAN en mettant comme IP source son IP sur le réseau WAN. Cela permettra de ne pas divulguer des IP du LAN à d'autres éléments du réseau et également de faire en sorte ces paquets reviennent (car l'IP source sera sur un réseau connus des autres éléments du réseau).
Le principe du NAT est simple, le routeur fait office de barrière entre le réseau outside ( celui auquel on cache ) et le réseau inside ( celui que l’on cache ). Ainsi chaque requête provenant du réseau inside vers l’outside sera cachée par le NAT du routeur.
On dit qu'une NAT est dynamique lorsque les adresses sources (ici venant du LAN) sont translaté de façon dynamique (par des ports différents ou par des IP différentes si on en dispose) vers l'interfaces de sorties (ici WAN). Le routeur remplie sa table NAT de façon dynamique à l'inverse du NAT statique ou les translations sont saisies et enregistrés à l'avance
II. Configuration du réseau
Pour mettre en place notre infrastructure, nous allons travailler sur l'architecture présentée plus haut, détaillée au niveau réseau ici :
Nous allons donc ici mettre en place notre NAT dynamiques sur le routeur R2. Ici, les routeurs R1 et R2 peuvent communiquer ensemble, mais le routeur R1 ne connais pas la route vers le réseau 192.168.0.0/24 donc il ne sait pas faire revenir les paquets s'ils ont été émis par les postes du LAN. En revanche, si R2 changent l'IP source des trames provenant du LAN en mettant sa propre IP, R1 saura y répondre, R2 fera alors la translation dans l'autre sens pour faire revenir les paquets à sa source. Ce processus est illustré dans le schéma suivant :
III. Configuration du routeur
On va a présent configurer notre routeur R2 :
R2>enable R2#configure terminal R2(config)#interface fa0/0 R2(config-if)#ip address 192.168.0.1 255.255.255.0 R2(config-if)#no shutdown R2(config-if)#exit R2(config)#interface fa0/1 R2(config-if)#ip address 10.0.0.1 255.255.255.0 R2(config-if)#no shutdown R2(config-if)#exit
A ce stade, les deux réseaux sont reliés mais chacun peut voir la présence de l’autre. nous voulons que le réseau 192.168.1.0 ne puisse pas joindre le réseau 192.168.2.0 mais que l’inverse soit possible.
IV. Configuration du NAT
On doit ensuite indiquer quelle interface sera à l'intérieur du NAT ("inside") et quelle interface sera à l'extérieur ("outside"). Cela permettra de dire au routeur dans quel sens il doit affecter les translations d'adresses. Ici, l'interface Fa0/0 (192.168.0.1) sera l'interface Inside et l'interface Fa0/1 (10.0.01) sera l'interface Outside.
R2(config)#interface fa0/0 R2(config-if)#ip nat inside R2(config-if)#exit R2(config)#interface fa0/1 R2(config-if)#ip nat outside R2(config-if)#exit
On va ensuite créer les règles d'accès qui permettra au LAN de sortir du NAT :
R2(config)#access-list 1 permit 192.168.0.0 0.0.0.255 R2(config)#ip nat inside source list 1 interface fa0/1 overload
Le processus de translation d'adresse est maintenant opérationnel.
V. Test du NAT
Pour vérifier que notre routeur est bien en mode NAT, nous devrions pouvoir communiquer à présent avec le routeur R1 depuis le poste LAN. Avant cette communication, nous pouvons saisir la commande suivante dans notre routeur R2 :
R2#debug ip nat
On va ensuite communiquer avec notre routeur R1 et nous devrions voir les étapes de translation d'adresse s'afficher :
Cette commande permet de voir les paquets qui transitent au travers du routeur en utilisant le NAT, ainsi nous voyons le processus d'action du NAT sur le paquet.
VI. A vos claviers
Je vous propose à présent de mettre en application ce tutoriel via un exercice packet tracer que je vous ai préparé. Il vous suffit pour cela de télécharger le fichier .pka suivant et de vous assurer que Packet Tracer version 6 est installé sur votre poste pour le lancer :
génial. très parfaits
Merci bien.
Merci pour les explications claires. Mais à ce que je sache, pour le NAT dynamique une pool d’adresse publique est déterminer ds le routeur de bordure. Pourquoi vous ne l’avais pas fais?
Très intéressant merci !
Bjr aidée moi svp, je n arrive pas a faire communiquer deux reseaux de different network comment faire merci beaucoup
merci pour les explications
Bonjour,
Impossible de tétécharger le fichier Packet Tracer, il m’ouvre une page de hiéroglyphes, illisibles mais je vais quand même le tester.
Merci por les explications
çà c’est de la NAT overload (PAT) … sur la NAT un pool d’adresses publiques est ajouté …
ouais vous avez raison c est de la NAT dunamique avec saturation (overload)
en tapant la commande debug ip nat le message qui s’affiche est la suivante :IP NAT debugging is on
les deux reseaux ne communiquent pas, veuillez me donner des explication
Ensuite faites un ping depuis Postes LAN sur 10.0.0.2 et cela va générer des logs si les configurations sont bien faites.
Bonjour,
merci pour ce tutoriel. Cependant, un point m’a échappé. Dans le paragraphe III, vous écrivez :
« A ce stade, les deux réseaux sont reliés mais chacun peut voir la présence de l’autre. nous voulons que le réseau 192.168.1.0 ne puisse pas joindre le réseau 192.168.2.0 mais que l’inverse soit possible. »
D’où viennent les réseaux 192.168.1.0 et 192.168.2.0 ?
En vous remerciant.
C’est une erreur, remplacer 192.168.1.0 par 10.0.0.0 (le réseau public) et 192.168.2.0 par 192.168.0.0 (le réseau privé).
Bonjour,
Il y a une erreur sur l’image « Schéma pour mettre en place notre NAT » : dans le sens retour R1 vers Postes NAT, c’est l’IP de destination qui est convertie de 10.0.0.1:1001 à 192.168.0.10, et non l’IP source qui reste 10.0.0.2, comme on peut le voir à la 2e ligne de l’image « Debug de la translation d’adresse (NAT) sur le routeur Cisco ».
Cordialement,
Bonjour, j’ai un routeur C4200 dont je souhaite configurer du nat et il ne fonctionne en faisant <>
!
interface Loopback65528
vrf forwarding 65528
ip address 192.168.1.1 255.255.255.255
!
interface GigabitEthernet0/0/0
ip address 1.2.3.30 255.255.255.0
ip nat outside
negotiation auto
!
interface GigabitEthernet0/0/1
ip address 10.0.0.254 255.255.255.0
ip nat inside
negotiation auto
!
no ip http server
ip http secure-server
ip forward-protocol nd
ip nat settings central-policy
ip nat settings gatekeeper-size 1024
ip nat route vrf 65528 0.0.0.0 0.0.0.0 global
no ip nat service H225
no ip nat service ras
no ip nat service rtsp udp
no ip nat service rtsp tcp
no ip nat service netbios-ns tcp
no ip nat service netbios-ns udp
no ip nat service netbios-ssn
no ip nat service netbios-dgm
no ip nat service ldap
no ip nat service sunrpc udp
no ip nat service sunrpc tcp
no ip nat service msrpc tcp
no ip nat service tftp
no ip nat service rcmd
no ip nat service pptp
ip nat inside source static 10.0.0.1 1.2.3.30
j’ai oublié de préciser mon architecture,
j’ai un routeur qui est relié par deux switchs et chaque switch est relié à une machine dont les edresses IP sont : PC1 (10.0.0.1) et PC2 (1.2.3.1)