NAT (Network Address Translation)
Résumé de c'que c'est
Pour bien comprendre le NAT il faut déjà savoir ce que ça veut dire.
La traduction d'addresse en réseau permet à un routeur de gérer les requêtes des appareils d'un réseau privé à travers lui, ainsi les sites que vous visitez ne verront que l'adresse IP Publique de votre Routeur et non celle de votre appareil. Vous pouvez la voir sur MonIP.ORG.
Ainsi on règle 2 problèmes d'un coup, l'un concernant la """confidentialité""" avec une couche de """sécurité""" en plus et l'autre c'est d'éviter d'utiliser toutes les adresses IPv4 trop vite parcequ'il y a 2 fois plus d'appareils que d'humains dans le monde et le nombre d'adresses IPv4 pouvant être attribuées est de 4228250625 (255e4). Donc un routeur qui gère en même temps tous les ordinateurs de la famille ça aide un peu mdr.
Comme des images valent mieux que des mots
Ici on a :
- un LAN (Local Area Network) avec 3 Machines et un routeur en gros c'est c'que vous aurez dans votre maison à moins que vous soyez sdf 192.168.1.0/24
- un MAN (Metropolitan Area Network) sur lequel les deux routeurs communiquent, ça pourrait s'apparenter à Internet dans notre cas 123.12.1.0/24
- un WAN (Wide Area Network) c'est chez google 8.8.8.0/24
Le but du NAT ici ca va être de faire communiquer les machines du LAN (Chez vous) avec celles du WAN (Google) au travers de leurs routeurs respectifs, ce qui veut dire que l'on va devoir configurer les routeurs pour gérer tout ça.
Ici nous avons configuré le le NAT Inside et le NAT Outside, le inside c'est celui qui va communiquer avec l'intérieur donc sur l'interface Gig0/0/0 pour notre LAN et l'outisde c'est celui qui va communiquer avec l'extérieur (Internet) donc sur Gig0/0/1 pour notre LAN. Puis on fait la même chose chez notre WAN Google: Cliquez sur le Routeur puis dans l'onglet CLI, tappez les commandes suivantes
(Si vous n'êtes pas en mode config il faut l'activer comme ça)
Router>
Router> enable
Router# config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# int g0/0/0 -> Sélectionner l'interface
Router(config-if)#ip nat outside -> Configurer le router
Router(config-if)#exit
Router(config)# int g0/0/1
Router(config-if)# ip nat inside
Router(config-if)# ex
Router(config)# do write -> Écrire les modifications
Building configuration...
[OK]
Une fois que nous avons configuré les interfaces nous allons devoir nous occuper de créer les ACL (Access Lists) pour dire au Router quelles IP il va devoir traduire en gros :
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Ici nous avons créé l'Access List numéro 1, pour le réseau LAN 192.168.1.0/24. Si certains se demandent pourquoi c'est 0.0.0.255 aulieu du 255.255.255.0 habituel pour le masque de sous-réseau c'est parceque sur cisco Packet Tracer pour le NAT on utiliser les Wildcard Masks.
Puis pour traduire toutes les adresses IP Privées (celle de vos ordinateurs) à travers le routeur il faut activer le NAT dynamique avec surcharge (overload) en sourcant notre liste :
Router(config)#ip nat inside source list 1 interface g0/0/0 overload
Répéter le processus logique pour le routeur au niveau du WAN.
Ensuite il faudra mettre en place les ip routes pour dire aux 2 routeurs comment contacter un autre réseau, en leur ajoutant un next-hop. Pour configurer une IP Route on le fait de la manière suivante :
ip route [réseau à trouver] [masque de ce sous-réseau] [next-hop pour le trouver]
Ce qui nous donne:
- Sur Routeur LAN :
ip route 8.8.8.0 255.255.255.0 123.12.1.2
- Sur Routeur MAN :
ip route 192.168.1.0 255.255.255.0 123.12.1
Les next-hop sont les "prochains noeuds" pour trouver les réseau spécifié dans la route, en l'occurence notre prochain noeud c'est le Router de chez Google mais avec son interface MAN que le routeur du LAN connait puisqu'il a une interface qui communique avec.
Voilà, maintenant que vous avez compris le NAT on peut passer au PAT
PAT (Port Adress Translation)
Petite introduction
Le PAT suit un peu le même principe que le NAT mais pour la traduction de ports au lieux d'adresses IP. C'est utile pour tout un tas de choses notamment si vous voulez héberger plusieurs sites web.
Avant de poursuivre il est important de retenir quelques choses :
- Une adresse IP possède 65535 ports
- Chaque ports est utilisé par un protocole ou inutilisé. Comme par exemple TCP ou UDP (Protocoles de transports de paquets)
- Certains ports ont des protocoles attribués par défault :
- HTTP: 80 ou 8080
- HTTPS: 443 ou 8181
- SSH: 22
- Telnet: 23 ou 992
- FTP: 20 et 21
- DNS: 53
- Etc...
Nous allons poursuivre avec l'exemple des sites web. Admettons une configuration avec un pc externe sur un LAN 192.168.0.0/24 et deux serveurs sur un autre LAN 192.168.1.0/24, tous connectés au même routeur :
C'est ici que le Port Forwarding va être intéressant à mettre en place. Parcequ'admettons que l'on essaie d'avoir accès à l'un des serveurs web via le routeur, le protocole HTTP comme mentionné précédemment utilise par défault le port 80. Donc si on esaie d'accéder à 192.168.0.1:80 (Ip du routeur sur le réseau de l'ordinateur) on aura tout le temps le même serveur web qui sera affiché et on aura jamais accès à l'autre, c'est pour ça qu'on va mettre des règles en places pour permettre de voir Serveur 1 sur 192.168.0.1:80 et Serveur 2 sur 192.168.0.1:81.
Configuration des réseaux
LAN 192.168.0.0/24:
- Router g0/0/1 : 192.168.0.1
- PC0 : 192.168.0.2 LAN 192.168.10:
- Router g0/0/0: 192.168.1.1
- Server 1: 192.168.1.2
- Server 2: 192.168.1.3
Mise en place du NAT
- Interface g0/0/0
ip nat inside
- Interface g0/0/1
ip nat outside
Création des ACL
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.0.0 0.0.0.255
Activation de la surcharge
ip nat inside source list 1 interface g0/0/1 overload
Mise en place du PAT
On va devoir aller dire a notre routeur que son port 80 va renvoyer vers Server1:80 et que son port 81 va renvoyer vers Server2:80 afin que notre client PC0 puisse y accéder :
ip nat inside source static tcp 192.168.1.2 80 192.168.0.1 80
ip nat inside source static tcp 192.168.1.3 80 192.168.0.1 81
Et voilà c'est tout bon on peut maintenant tester notre configuration pour voir si elle est bonne :
Avec Telnet vous verrez les paquets transiter vers un serveur ou l'autre selon le port choisi, allez sur PC0 > Desktop > Command Prompt:
telnet 192.168.0.1 80
telnet 192.168.0.1 81
Ou Avec HTTP directement pareil pour la vue des paquets, allez sur PC0 > Desktop > Browser :
Entrez l'une des addresses suivantes :
192.168.0.1:80
ou 192.168.0.1:81
. Vous verrez les animations cisco et le détails des paquets comme ceci :
Et voilà vous avez acquéri les bases du NAT & PAT maintenant vous pouvez vous prétendre technicien à l'intérim !