Le Principe du
NAT
- Le Principe du
NAT
- Les
connexions et sockets
- Le
Principe du NAT
Statique
- Le
Principe du NAT
Dynamique
- Le NAT
logiciel sous Linux
- Le
Transfert de Ports (
Forward de port )
- Le
forward de port sur la
livebox
Le 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
à se connecter internet.
- Classe A : plage de 10.0.0.0 à
10.255.255.255 ;
- Classe B : plage de 172.16.0.0 à
172.31.255.255 ;
- Classe C : plage de 192.168.0.0 à
192.168.255.55 ;
Le NAT est notamment utiliser par les routeurs. Nous allons voir ici
comment il fonctionne.
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 :
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.
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 :
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 necessite 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 :
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.
NOTE :
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 correspondant à une connexion
initialisée par
le réseau local.
Ceci peut poser problème, si vous possédez des
services
sur le réseau local, tels qu'un serveur WEB, FTP ou si vous
désirez transférer des fichiers ( via IRC, MSN
etc.. ).
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. Le principe est
simple.
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.
Pour un serveur FTP, il faut transférer le port 20 ET 21.
Pour un serveur SSH, il faut transférer le port 22.
Le forward de port sur la
livebox
- Connectez vous à partir de votre navigateur
à son interface graphique : http://192.168.1.1
- Cliquez dans le menu en haut Serveur LAN
- Cliquez en bas sur ajouter
- Dans le champs nom du serveur, saisir le type de serveur,
web, ftp etc..
- Mettre Accès activé sur oui
- Sélectionnez le protocole dans la liste, pour
ftp et http, choisir TCP
- Choisir le port de départ et
d'arrivée dans les
champs du et haut, pour un serveur web mettre 80 dans les deux champs,
pour un serveur ftp mettre 20 et 21.
- Dans le champs adresse IP locale saisir l'adresse IP de la
machine où le serveur WEB ou FTP tourne.
Pour les transferts de fichiers avec MSN, il faut forwarder les
port 6891 à 6900 (en cas d'émission de
DCC, pas en
réception).

Sur
le client IRC, il faut faire des manipulations pour définir
les
ports qui seront utilisés lors de l'envoie de DCC (en
réception ça pose pas de problème,
c'est la
personne qui envoie qui fait office de serveur).
Sur mIRC, allez dans Tools / Connect / Options / Advanced puis firts
mettez 1024 et dans last 1030. Forwardder ensuite ces ports, vers la
machine d'où seront exécutés les DCC.
Le nombre
port forwaddé équivaut au nombre de DCC que vous
pourrez
établir.
Sur X-Chat, il faut aller dans
Paramètres/Préférences puis en bas sur
Réseau/Transferts de fichiers. Vous avez alors "premier port
du
DCC send" et "Dernier port du DCC send"
Retour à la page
d'accueil