Mise en place d'un routeur NAT
  1. Récapitulatif
  2. Rappel sur le partage d'une connexion unique
  3. Approfondissement sur le transport IP
  4. Le fonctionnement d'un routeur NAT
  5. Mise en place de Winroute
  6. Configuration des machines clientes
  7. Particularités de configuration

1. Récapitulatif sur le serveur proxy

Résumons la manière dont fonctionne un serveur proxy.
Considérons un réseau local connecté à un serveur proxy lui-même connecté à Internet :
Architecture générale d'un LAN devant être relié à Internet

Admettons qu'un ordinateur du réseau local veuille télécharger une page web sur Internet. Pour cela il ouvre une connexion vers le proxy, sur le port d'écoute (socket) défini pour le service concerné (ici http), et lui fait la demande de la page web. A son tour, le proxy ouvre une nouvelle connexion vers le serveur d'Internet concerné par la demande, récupère l'information et la retransmet aussitôt à l'ordinateur local.
Dans ce schéma, vous constatez que nous sommes en présence d'une connexion double. Comme je l'ai déjà mentionné, le modèle proxy, par principe, a de nombreuses limitations. Tous les services que l'on veut utiliser (http, ftp, pop, smtp, etc.), pour autant qu'ils soient possibles, doivent être configurés un par un sur le serveur proxy (avec un certain port d'écoute et des règles de "redirection" sur Internet), et toutes les applications sur les ordinateurs du réseau local doivent être en mesure d'utiliser le proxy et être configurées dans ce sens. Comme je l'avais déjà mentionné, de nombreuses applications ne peuvent utiliser un proxy; il s'agit généralement des applications travaillant simultanément sur plusieurs sockets, surtout si certains de ces derniers sont ouverts dynamiquement (par ex. Netmeeting, gaming-zones sur Internet, etc.). De même, toutes les commandes ICMP (par ex. ping) s'arrêtent net au proxy.

Up

2. Rappel sur le partage d'une connexion unique

Si vous avez bien lu mon chapitre sur le protocole TCP-IP et le point 2 de la mise en place d'un serveur proxy, vous avez compris le gros problème qui survient dans le partage d'une connexion unique vers Internet, puisque vous ne pouvez identifier de manière univoque sur Internet les ordinateurs du LAN.
A ce problème, il existe deux solutions bien différentes :

 

  1. Mettre en place un serveur proxy
  2. Mettre en place un routeur NAT (Network Address Translation)
C'est de cette deuxième solution, très élégante, dont je vais traiter ici.
Cependant, avant de se lancer immédiatement dans le vif du sujet, il me faut détailler un peu plus la manière dont les ordinateurs s'échangent des données sur Internet.
Up

3. Approfondissement sur le transport IP

Si vous avez lu le point 6 de la mise en place d'un serveur proxy, vous avez compris qu'une connexion Internet contient les paramètres suivants :

 

  1. l'adresse IP du "destinataire" (serveur)
  2. le socket de l'application serveur
  3. l'adresse IP de "l'expéditeur" (votre ordinateur)
  4. le socket de l'application client
Notez que je n'aime pas trop les termes "destinataire" et "expéditeur", vu que toute connexion sur Internet voit des paquets IP aller dans les deux sens.

Exemple : vous ouvrez une page web dans votre navigateur (ex. http://www.joliepageweb.fr). Votre browser tente alors de se connecter à l'adresse IP du serveur distant (résolue par le serveur DNS) sur le port 80 (généralement utilisé par les serveurs web). A titre indicatif, je vous rappelle ici les ports les plus courants.
Application/Service Port usuel
HTTP 80
FTP 21
POP3 110
SMTP 25
NNTP (News) 119
Telnet 23
DNS 53
Voici une liste plus exhaustive pour les intéressés.

Vous noterez que je n'ai pas encore précisé le port utilisé par l'application cliente. Contrairement à ce que vous auriez pu penser, le port sur lequel l'application cliente fait sa requête n'a pas à être identique au port de l'application serveur.

 

Par exemple, un paquet IP envoyé par votre navigateur au site Microsoft aurait les paramètres suivants :

 

        IP du destinataire :  207.46.131.135  (Microsoft)
        port serveur web :    80
        IP de l'expéditeur :  195.2.200.149   (votre adresse IP)
        port client web :     7597
Ces quelques points un peu éclaircis, il me reste encore à vous dire quelques mots sur les types de protocoles IP présents sur Internet. Comme vous ne le savez peut-être pas, il y a deux types fondamentaux de protocoles IP : le protocole TCP et le protocole UDP.

 

Up

4. Le fonctionnement d'un routeur NAT

Il vous est maintenant facile de comprendre comment fonctionne un routeur NAT (Network Address Translation).

Le routeur NAT, tout comme un serveur proxy, est une machine à cheval sur le réseau Internet et sur le réseau local que vous voulez y connecter; il fait office de passerelle (gateway). Le routeur NAT, comme son nom l'indique, fait réellement du routage de paquets IP, c'est à dire qu'il transmet bien les paquets reçus par un ordinateur du LAN vers Internet (et inversément), contrairement à un serveur proxy qui ouvre une seconde connexion.

L'ingéniosité du routage NAT vient de sa manière de gérer plusieurs ordinateurs locaux d'adresses IP de type 192.168.0.x, de transmettre leurs paquets spécifiques vers Internet, et de leur redistribuer spécifiquement les paquets reçus. L'astuce est la suivante :

Lorsque le routeur NAT reçoit un paquet IP d'un des ordinateurs du LAN, il en modifie :

 

  1. l'adresse IP de l'expéditeur pour y mettre sa propre adresse (l'IP "légale" de votre connexion
  2. le port de l'application cliente par une valeur particulière
Le routeur NAT logge ensuite ces informations dans une table.

Lorsque le serveur d'Internet répond à la requête et renvoie des paquets IP sur le routeur, ce dernier vérifie dans ses tables qu'il possède bien l'entrée correspondante (par rapport au port de l'application cliente), puis y réécrit les coordonnées (IP + socket) de l'ordinateur du LAN. Le paquet IP peut ainsi rejoindre sa destination dans le LAN.

Exemple : votre ordinateur du LAN d'adresse IP 192.168.0.7 veut accéder à la page web du serveur www.machin.com (d'adresse IP 124.40.67.43) via un routeur NAT travaillant sur l'IP 192.168.0.1 (locale) et l'IP 195.200.2.149 (Internet). Les deux tableaux suivants montrent précisément ce qui se passe.

Etablissement de la connexion

 
Ordinateur Interface Coordonnées du paquet IP
 
ordinateur
 
192.168.0.7
destinataire : 124.40.67.43,  80
expéditeur :   192.168.0.7,   7364
LAN  
 
routeur NAT
 
192.168.0.1
destinataire : 124.40.67.43,  80
expéditeur :   192.168.0.7,   7364
 
195.200.2.149
destinataire : 124.40.67.43,  80
expéditeur :   195.200.2.149, 61005
Internet  
 
www.machin.com
 
124.40.67.43
destinataire : 124.40.67.43,  80
expéditeur :   195.200.2.149, 61005
 
 

Transfert des données

 
Ordinateur Interface Coordonnées du paquet IP
 
www.machin.com
 
124.40.67.43
destinataire : 195.200.2.149, 61005
expéditeur :   124.40.67.43,  80
Internet  
 
routeur NAT
 
195.200.2.149
destinataire : 195.200.2.149, 61005
expéditeur :   124.40.67.43,  80
 
192.168.0.1
destinataire : 192.168.0.7,   7364
expéditeur :   124.40.67.43,  80
Internet  
 
ordinateur
 
192.168.0.7
destinataire : 192.168.0.7,   7364
expéditeur :   124.40.67.43,  80
 
 

Quelques remarques s'imposent :

 

  1. Les routeurs NAT travaillent souvent sur des ports "élevés". A titre d'exemple, le logiciel Winroute (http://www.winroute.com) utilise des ports de 61000 à 61600.
  2. On peut se demander pourquoi le routeur NAT modifie le port de l'expéditeur puisqu'il retient de toute façon le port sur lequel l'application cliente a fait sa requête. En fait, cette modification est nécessaire pour éviter des désagréments dans le cas où plusieurs ordinateurs du LAN feraient une requête sur le même port.
  3. L'inconvénient du routeur NAT est d'être très pointilleux sur les connexions entrantes : si le routeur NAT n'a pas dans ses tables une entrée concernant une connexion, il ne laisse rien "entrer". C'est en quelque sorte une mesure de sécurité, et aussi une conséquence de sa façon de fonctionner : si vous voulez faire tourner sur un ordinateur du LAN un serveur (par ex. http ou ftp) qui soit accessible par Internet, il vous faudra configurer le routeur NAT pour accepter et rediriger correctement une connexion entrante.
Trêve de bavardages, installons sans tarder un routeur NAT sur notre gateway !
Up

5. Mise en place de Winroute

Sachez tout d'abord que vous pouvez acquérir un routeur NAT hardware pour un prix relativement modique. Pour la suite de ce chapitre, c'est d'un routeur NAT logiciel dont je vais parler : il s'agit de Winroute, disponible sur le site http://www.winroute.com.

Comme je le disais pour Wingate (serveur proxy), je n'ai nullement envie de faire de la réclame pour le produit Winroute; j'utilise uniquement ce programme à titre d'exemple. La page http://www.winfiles.com/apps/nt/servers-proxy.html valable pour les solutions proxy permet aussi de trouver des routeurs NAT (même si ces solutions sont moins nombreuses). Pour ne pas faire de jaloux, allez voir aussi le produit de Vicomsoft qui doit être tout à fait équivalent (et est disponible pour Macintosh). Je continue avec Winroute parce que c'est le premier programme que j'ai découvert et parce que je le trouve facile à mettre en place.

Notez tout de suite que Winroute tourne aussi bien sur Windows 9x que sous Windows NT. Sous ce dernier, Winroute fonctionne comme un service (et non un programme), tout comme le fait Wingate. Bien évidemment, je vous recommande toujours d'utiliser NT sur le gateway pour des raisons de stabilité. Cela dit, je n'ai pas encore testé Winroute sur Windows 9x; j'attends donc que quelqu'un m'infirme ou me confirme sa stabilité sous ce système.
Retenez encore qu'il vaut mieux ne pas faire cohabiter Wingate et Winroute; choisissez l'un ou l'autre, Winroute ayant la fâcheuse tendance de crasher Wingate (du moins chez moi).
 

Préliminaires

Avant d'installer Winroute, je suppose que vous avez lu mon chapitre sur la mise en place d'un serveur proxy, et que les points suivants sont respectés :

 

  1. Comme TCP-IP est le langage d'Internet, vous avez correctement configuré votre LAN sous ce protocole après avoir assigné à chaque ordinateur une adresse IP propre de type 192.168.0.1, 192.168.0.2, etc... (masque de sous-réseau : 255.255.255.0) et créé le fichier host adéquat sur chaque ordinateur.
  2.  

  3. Vous savez que votre ISP (Internet Service Provider) vous attribue une et une seule adresse IP lorsque vous vous connectez à Internet.

  4. Cette adresse est souvent fixe (on dit "statique") dans le cas d'un câble-opérateur, et variable (on dit "dynamique") dans le cas d'une connexion par modem (votre ISP a une fourchette d'adresses IP disponibles et vous en attribue une de libre lorsque vous vous connectez).
 
 

Installation de Winroute

Vous pouvez maintenant installer Winroute sur votre gateway. Il n'y a pratiquement rien à y configurer.

NB : les explications et illustrations qui suivent concernent l'utilisation de Winroute sur un ordinateur connecté à Internet par une carte réseau (câble). Si vous faites cette installation avec un modem, la mise en place est légèrement plus compliquée (configuration RAS), mais ne change pas dans le fond.

 

C'est tout !

Si vous êtes un peu parano, vous pouvez donner des règles plus strictes sur le routage des paquets IP. Référez-vous pour cela au manuel on-line (très clair) de Winroute, chapitre "Packet filtering".
Notez aussi que vous pouvez faire en sorte que Winroute ne fasse pas de NAT pour certains ordinateurs. Cela peut être utile si une partie de votre LAN possède des adresses IP règlementaires sur Internet. Dans ce cas, Winroute peut agir comme un routeur simple (sans translation d'adresses). Je ne parle pas ici de ces réglages très particuliers, mais le manuel on-line est très clair sur ces points.

NB : Point curieux que je me dois de vous signaler. Si vous êtes câblé sur Internet, et que vous utilisez un modem HF connecté à votre carte réseau, il se peut que vous deviez faire un reset sur ce dernier après avoir installé Winroute pour le "recalibrer" sur les nouveaux réglages de la carte Ethernet (Winroute travaillant "très proche" de la carte Ethernet).

Up

6. Configuration des machines clientes

Contrairement aux réglages parfois subtils qu'il fallait faire pour chaque application des ordinateurs du LAN si vous utilisiez Wingate, il n'y a presque rien à faire si vous utilisez Winroute. Il vous faut simplement spécifier au système le serveur DNS et la passerelle.

 

  1. Dnas les propriétés du protocole TCP-IP (Panneau de configuration->Réseau->Protocole TCP-IP), sélectionnez l'onglet 'Configuration DNS' et ajouter l'adresse IP (LAN) de l'ordinateur qui fait tourner Winroute.
  2. Paramètres du DNS
  3. Dans l'onglet 'Passerelle', ajouter l'adresse IP (LAN) de l'ordinateur qui fait tourner Winroute.
  4. Paramètres de la Passerelle
C'est tout ! Rebootez la machine; vous êtes sur Internet !
Up

6. Particularités de configuration

 
 

Voilà, je m'arrête ici. Si vous avez des questions plus spécifiques, n'hésitez pas à me les poser.

Up

© Pierre, 1998 - pierre.delavallaz@bigfoot.com