Principe du NAT (Network Adress Translation )

pLe NAT (Network Adress Translation) permet de partager une connexion internet entre plusieurs ordinateurs sur un réseau local. En effet, les PC sur un réseau local ont des IP locales (voir ci dessous) qui ne sont pas routables sur internet. De ce fait, le NAT est né afin de permettre à tous les PC d’un réseau de se connecter internet depuis une connexion partagée.

Le NAT est notamment utiliser par les routeurs. Nous allons voir ici comment il fonctionne.

Principe du NAT (Network Adress Translation)

Les connexions et sockets

Avant de rentrer dans le vif du sujet, il faut comprendre comment fonctionne les connexions client/serveur. Nous ne rentrerons pas dans les détails, toutefois voici les informations nécessaires pour comprendre la suite de l’article.

Lorsqu’un client se connecte au serveur, il :

  • ouvre un port source sur sa machine, ce port est situé entre 1024 et 5000. Ce port restera ouvert en attente de réponse du serveur.
  • envoie un paquet à destination du serveur vers un port de destination.

Le paquet contient entre ces informations : l’IP du client, le port source et le port de destination.

Le serveur reçoit alors le paquet envoyé par le client, ce dernier va lui répondre :

  • Le port source du serveur sera le port de destination, le port sur lequel le service réseau tourne.
  • Le port de destination du client sera le port source.

En pratique cela donne, si on prend un utilisateur avec une IP 82.125.12.15 qui se connecte au site WEB de Google ( 216.239.59.99 ).
L’utilisateur à travers sont navigateur WEB va envoyer : un paquet avec comme port source 1052 et donc son IP 82.125.12.15, ce paquet sera à destination de Google 216.239.59.99 à destination du port 80 ( WEB ).

Google va recevoir le paquet et y répondre à partir de son port 80 et son IP 216.239.59.99 à destination de l’utilisateur 82.125.12.15 et du port 1052 qui sera restée ouvert en attente de réponse de la part de Google.

Schéma connexion au site GoogleSchéma d'une connexion au site Google

Le Principe du NAT Statique

Le NAT Statique ( très peu utilisé ) permet de faire correspondre à n IP locales du réseau n IP publiques. La correspondance se fera bien sûr dans les deux sens.

Si on prend deux machines sur le réseau ayant respectivement les IP 192.168.0.1 et si l’on considère une IP publique 82.125.12.15 le routeur va alors faire les translations suivantes :

Schéma d'une connexion NAT Statique

Schéma d'une connexion NAT Statique

En somme on peut résumer le NAT statique par l’égalité suivante : 1 adresse Privé = 1 adresse Public.

Comme vous pouvez l’imaginer, cela nécessite autant d’IP publiques qu’il y a IP locales. A l’heure où les IP publiques se font rares sur internet, il a fallu avoir recours à une autre système, c’est là que le NAT dynamique est né.

Le Principe du NAT dynamique

La différence entre le NAT statique et le NAT dynamique est la prise en compte des ports sources. Le principe reste le même, le routeur va remplacer l’IP locale par une IP publique MAIS AUSSI il va remplacer le port source de la machine par un port a lui ( généralement des ports hauts > 65000 ).
Le routeur va alors noter dans une table de routage ses informations et lors de la réponse du serveur, il va regarder dans sa table de routage pour savoir à quelle machine du réseau locale et à quel port source, il doit renvoyer le paquet.

Si l’on considère un client du réseau locale 192.168.0.1 et un routeur ayant une IP publique 82.125.12.15 cela donne :

Schéma d'une connexion NAT Dynamique

Schéma d'une connexion NAT Dynamique

De chaque côté ( client / serveur ) le routeur est invisible.

Ainsi à partir d’une adresse IP, on peut permettre à plusieurs machines d’un réseau local d’acceder à internet.

Il est important de noter qu’en terme de sécurité, le routeur qui fait du NAT, n’accepte que les connexions entrants que si elles ont été initialisées par une machine du réseau local. En effet, si le routeur ne retrouve pas dans sa table de routage vers quelle machine il doit envoyer la connexion, cette dernière sera dropée.

Le routeur fait donc office de firewall pour le réseau local.
Cependant, nous verrons que cela peut poser problème, si vous possédez des services sur le réseau local.

Le NAT logiciel sous Linux

Linux permet par l’intermédiaire de faire du NAT facilement.
Il vous suffit de : Positionner le fichier /proc/sys/net/ipv4/ip_forward à 1 afin de permettre le FORWARD des paquets entre les interfaces réseaux.

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE

Le Transfert de Ports (Forward de port)

On vient de voir que le routeur n’accepte que les connexions entrantes.
Ceci peut poser problème, si vous possédez des serveurs sur le réseau local, tels qu’un serveur WEB, FTP ou si vous désirez transférer des fichiers ( via IRC, MSNetc.. ).
En effet, lors des transferts de fichiers votre machine se transforme temporairement en serveur de fichiers avec la personne avec laquelle vous désirez envoyer des fichiers.

Comment faire pour que les services du réseau interne sous accessibles depuis l’internet ?

Il faut établir un transfert de ports.
On donne un port à transférer par exemple le port 80 dans le cas d’un serveur WEB et la machine du réseau local sur lequel le service tourne.
Toutes les connexions entrantes en direction du port 80 iront vers cette machine.Schéma d'un forward de port, ici le port 80

Pour un serveur FTP, il faut Transférer le port 20 ET 21.
Pour un serveur SSH, il faut transférer le port 22.

Note que le transfert de port peut-être automatique via le service UPnP (il faut que le programme qui fait office de serveur le gère), c’est notamment le cas de MSN lors des conversations vidéos ou transferts de fichiers.
Toutefois des applications de sécurité sont à prendre en compte avec UPnP, lire : UPnP et les risques de sécurité

Le forward de ports sur un routeur

Reportez-vous à notre article dédié : Transfert de ports sur un routeur

Liens autour des routeurs

Les liens du site autour des routeurs internet.

(Visité 1 010 fois, 3 visites ce jour)

Vous pouvez aussi lire...

Les Tags : #Windows10 - #Windows - #Tutoriel - #Virus - #Antivirus - #navigateurs WEB - #Securité - #Réseau - #Internet