Le PAT sous Linux

Publié le par BORY DIALLO

De nos jours il existe plus de terminaux que d’adresses IP publiques disponibles. Pour pallier à ce problème, les institutions chargées de la gestion du réseau des réseaux (internet) ont mis beaucoup de mécanismes en place comme le CIDR (Classless Inter Domain Routing) ou routage sans classe d’adresses ; le lancement de l’IPv6 dans un futur proche ;ou encore le NAT , qui d’ailleurs nous intéresse dans ce TP.


La NAT (Network Address Translation), en français Traduction d’adresses
réseau, a pour rôle de traduire des adresses IP privées en adresses IP publiques pour être routées sur internet.

Il existe trois types de NAT

  • La NAT statique : Ce type de tranduction d'adresses utilise un mappage un à un entre les adresses privées et publiques. Avec cette NAT, pour N adresses IP privées, il en faut autant d'adresses IP publiques. indecision
  • La NAT Dynamique : Utilise un pool d'adresses IP publiques et les attribut selon le premier arrivé premier servi.
  • La PAT :  Une seule adresse IP publique pour un réseau privé. Cette translation d'adresse par port utilise la paire port source / adresse IP source pour garder une trace du trafic de chaque client interne.

 

Le but de ce TP est de mettre en évidence la traduction d'adresse par port sous l'environnement Linux. C'est d'ailleurs la translation d'adresse la plus utilisée de nos jours

Architecture sur GNS3

Ici nous avons deux réseaux : Internet et notre réseau local (10.10.0.0 /16)

  • La machine Ubuntu-1 sera notre routeur. Son adresse IP reliée au réseau local est (10.10.0.1 /16)
  • Son autre interface (eth0) est reliée à internet

Le but est de permettre aux machines Ubuntu-2 et Ubuntu-3 du réseau local d'accéder à internet par le biais de Ubuntu-1

     I. Sur les machines du réseau local, fixons les adresses  IP respectives

  •  Sur Ubuntu-2
  • La même chose pour Ubuntu-3

Ici nous avons juste donné des éléments TCP/IP à nos machines de façon statique.

  • Faisons la part de notre routeur

Puisque c'est cette machine qui fait office de routeur, il lui faut minimum deux interfaces: (eth1) est reliée au réseau local et (eth0) est reliée au monde physique donc doit être en mode DHCP.

II.  Nous démarrons l'architecture et observons ce qui se passe au niveau de notre routeur

Nous constatons qu'elle a obtenue deux adresses. "Pas besoin de revenir là dessus"! ... Pour voir les adresses disponibles, on tape la commande:

# hostname -I

Puis nous installons les paquets:

nano # éditeur de texte

iptables # pour la configuration du NAT

iputils-ping # paquet contenant la commande de diagnostique ping

 net-tools # paquet contenant les commandes ifconfig  et route

# apt install nano iptables net-tools iputils-ping -y

 

  II.1 On active le routage dans /etc/sysctl.conf en enlevant le # devant la ligne

net.ipv4.ipforward=1

4. Nous rechangeons le fichier après modification avec:

# sysctl -p

5. On configure la translation d'adresses proprement dite:

Voici la commande:

iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -o eth0 -j MASQUERADE

Traduisons cette commande barbare

iptable -t nat -A POSTROUTING # indiquer qu'on veut faire du NAT après le routage

-s 10.10.0.0 /16 # indique le réseau source (notre réseau local)

-o eth0 # l'interface eth0 constitue la porte de sortie du réseau local

-j MASQUERADE # Pour masquer les adresses IP des machines du réseau local

 

Consultons notre table NAT avec :

# iptables -t nat -L

Nous voyons bien que notre réseau a été ajouté avec succès à la table NAT du routeur

Place au test

Depuis Ubuntu-2

Elle est connectée 5 sur 5 !

Idem pour la seconde machine.

Nous pouvons bien analyser les messages qui transitent avec l'outil Wireshark , mais je pense que cela est rassurant !

 

Voici en quelque sorte une translation d’adresse par port !

 

En conclusion : C’est quand même assez intéressant de comprendre ce mécanisme car c’est l’une des tâches qu’un administrateur réseau devrait accomplir au moins une fois dans sa vie !

 

 

Publié dans Réseaux

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
A
bro ça cest du high level
Répondre
B
Mdr... même pas bro