Réseau local et routage externe

Lorsque l'utilisateur dispose de plusieurs ordinateurs il crée un réseau local. Les machines communiquent soit pas câbles reliés à un switch ou un hub, soient sans fil en WiFi via un point d'accès WiFi.

Si ce réseau est isolé (non relié à un autre réseau tel Internet), il est possible d'utiliser le protocole IP en attribuant à chaque poste une adresse IP différente. Généralement on utilise la plage 192.168.0.1 à 192.168.0.255.

Si le réseau local est connecté à un autre réseau, on utilise un équipement d'interconnexion : le routeur, qui dispose de sa propre adresse IP. Les machines du réseau local doivent distinguer les messages locaux qui sont transmis normalement sur le réseau des messages à destination de l'extérieur, ceux-ci sont envoyés au routeur. Cette distinction est réalisée par la configuration de la machine qui défini, outre son adresse IP, le masque de sous-réseau (permettant la distinction des adresses locales et distantes) et l'adresse IP du routeur;

Dans le cas de l'accès Internet, il y a un problème si l'on ne dispose pas d'autant d'accès que de machines (ce qui est généralement le cas). La solution consiste à créer un réseau local d'adresses IP distinct du réseau Internet. Le routeur, interface entre les réseaux, dispose de deux adresses IP, une côté réseau local et l'autre côté Internet.


Pour l'envoi d'information : machine locale vers Internet, il n'y a pas de problèmes, le processus est celui décrit plus haut. En revanche, pour la réception, les équipements du côté Internet ne voient qu'une adresse IP de notre système, celle du routeur : 200.10.21.3 dans l'exemple de la figure. Le routeur doit transmettre l'information au bon destinataire local. Le routeur associe à l'adresse IP de la machine réceptrice son numéro de port de réception. Voyons ceci sur un exemple.

Imaginons que l'équipement 192.168.0.11 envoie une demande à un serveur Internet d'adresse IP 10.1.100.200 avec un retour d'information sur son port 9000. Cette machine voit que cette adresse IP n'est pas dans le réseau local, elle transmet donc le message au routeur.

Le routeur vérifie si son port 9000 (côté Internet) est libre, imaginons que ce ne soit pas le cas (il a pu l'attribuer à un autre équipement du réseau local). Il choisi arbitrairement un de ses port libre, par exemple 4600, il marque dans sa table l'affectation de son port 4600 (côté Internet) au port 9000 de la machine 192.168.0.11 et il envoie la demande au serveur avec, bien sûr, comme adresse de retour la sienne : 200.10.21.3 sur le port 4600.

Lorsque le routeur recevra l'information sur son port 4600 il pourra, grâce à sa table, la transférer à la machine 192.168.0.11 sur le port 9000.

Cette méthode, nommée NAT (Network Adress Translation), n'est pas adaptée à un fonctionement de serveur sur le réseau local qui doit être joint sur un port bien précis. Dans ce cas on programme le routeur afin qu'il ne modifie pas ce port de la machine serveur.