Skip to content

Traduction d'adresses et de ports

I- Problématique

Ipv4 ne permet plus de donner des adresses pour tous les équipements du monde. Dans la plupart des réseaux de petites tailles, les routeurs, utilisent une adresse publique par connexion à Internet mais le reste du réseau utilise des adresses privées.

La fonction NAT ou PAT est utilisée quand le routeur transmet des informations d'un réseau public à un réseau privé et inversement.

II- NAT statique :

Le NAT statique permet à un routeur de traduire une adresse publique vers un adresse privée.

           Réseau privé                         Réseau public
<------------------------------------> <----------------------------->
                                      |
                                      |
 ----------------           _________ |                   ---------
( LAN            )_____.254| Routeur ||212.23.4.8/29     (  Inter  )
( 192.168.3.0/24 )         |_________||------------------(   net   )
 ----------------              |      |                   ---------
                               |      |
    +-----------------------------+   |
    |        DMZ                  |   |
    |        192.168.1.0/24       |   |
    |                             |   |
    | Serveur 1 :                 |   |
    | 192.168.1.1 <-> 212.23.4.9  |   |
    |                             |   |
    | Serveur 2 :                 |   |
    | 192.168.1.2 <-> 212.23.4.10 |   |
    +-----------------------------+   |

Dans l'exemple, une plage d'adresses IP publiques a été demandée au fournisseur d'accès. Il s'agit de 212.23.45.8/29

Les serveurs ont deux adresses, l'une privée leur permet de communiquer avec les clients locaux, l'autre publique leur permet de communiquer avec les machines d'Internet.

Le rôle du routeur dans ce cas est de connaître les adresses publiques et les adresses privées utilisées pour faire le lien entre elles.

Pour cela il utilise une table NAT renseignée manuellement par l'administrateur :

-------------- -------------
IP publique    IP privée
212.23.45.9    192.168.1.1
212.23.45.10   192.168.1.2
...           ...
-------------- -------------

III- NAT dynamique et masquage d'adresses

Quand un client du réseau local va sur Internet, il ne peut pas utiliser son adresse privée. Le routeur fait donc du masquage d'adresses pour remplacer les adresses privées du LAN par son adresse publique.

Ce processus est également appelé overload ou surcharge.

Le problème est que plusieurs machines peuvent communiquer en même temps. On est donc obligé d'utiliser le socket complet pour distinguer toutes les machines.

La table NAT se complique :

-------------------- --------------------- ---------------------- ---------- --------------- --------
Socket privé local   Socket public local   Socket public global                              
192.168.0.1          TCP 1340              212.23.45.13           TCP 1340   156.144.14.80   TCP 80
192.168.0.2                                                                                  
...                  ...                   ...                    ...        ...             ...
-------------------- --------------------- ---------------------- ---------- --------------- --------

IV- Translation de ports : PAT

Le port du client est aléatoire, il peut varier entre 1024 et 65535. Il peut arriver que deux clients utilisent le même port. Cela pose problème car le socket public local sera le même pour les deux clients différents.

Il faut donc que le routeur distingue les machines en leur affectant un port différent. Cette fonction est appelée translation de port (PAT).

Cette table NAT ne peut pas fonctionner :

-------------------- --------------------- ---------------------- ---------- --------------- --------
Socket privé local   Socket public local   Socket public global                              
192.168.0.1          TCP 1340              212.23.45.13           TCP 1340   156.144.14.80   TCP 80
192.168.0.2          TCP 1340              212.23.45.13           TCP 1340   156.144.14.80   TCP 80
-------------------- --------------------- ---------------------- ---------- --------------- --------

Le routeur va alors changer le port d'une des machines de façon dynamique :

-------------------- --------------------- ---------------------- ---------- --------------- --------
Socket privé local   Socket public local   Socket public global                              
192.168.0.1          TCP 1340              212.23.45.13           TCP 1340   156.144.14.80   TCP 80
192.168.0.2          TCP 1340              212.23.45.13           TCP 1341   156.144.14.80   TCP 80
-------------------- --------------------- ---------------------- ---------- --------------- --------

Le PAT est donc un complément du NAT dynamique.

Ces deux fonctions vont toujours de pair.

V- Redirection de ports : Port forwarding

Pour rendre disponible un serveur qui utilise une adresse publique, on peut utilisée la fonction NAT décrite en première page.

Quand une entreprise ou un particulier n'a qu'une adresse publique et que les autres sont privées, le routeur va devoir utiliser la fonction de redirection de ports.

Le routeur connecté à Internet est le seul à avoir une adresse publique. Quand une machine d'Internet veut accéder à un serveur local il faut donc que le routeur transmette au bon serveur. Pour cela, l'administrateur réseau définit de façon statique un port qui sera toujours redirigé vers une machine précise.

Quand le routeur reçoit une requète à destination du port UDP 53, il ne faut pas qu'il essaye d'ouvrir son propre port 53 mais qu'il transmette la requête au 192.168.1.1

Table de translation de ports :

----------------- -------------------- ------------------
Port du routeur   Redirigé vers ...    ... sur le port
UDP 53            192.168.1.1          UDP 53               
TCP 80            192.168.1.2          TCP 80               
...               ...                  ...                 
----------------- -------------------- ------------------

Tout logiciel fonctionnant comme serveur doit donc faire l'objet d'une entrée dans la table de translation de ports. Tous les routeurs (domestiques comme professionnels le permettent).