Le NAT sert à relier des classes d'adresses IP
à un autre groupe d'adresse IP. Son utilisation principale est de relié un
réseau local à Internet. Le NAT va gérer les transmission entre une adresse
IP interne du réseau et une adresse externe. Ce type de translation est utilisé
dans les routeurs, mais la fonction logicielle existe dans les versions
professionnelles de Windows ou Linux. Ceci nécessite au niveau du routeur ou de
l'ordinateur 2 adresses distinctes (connexions réseaux), une interne et une
externe (pour Internet le plus souvent). A chaque transmission, le NAT va
mémoriser l'adresse de départ non routable et envoyer les informations via sa propre
adresse externe. Au retour, il va récupérer les informations via son port IP externe et les renvoyer vers le destinataire
associé. Ceci masque l'adresse
interne du réseau de l'extérieur, c'est un système de sécurité.
Le nombre d'adresses IP en IPV4 étant
relativement faible, une large partie des connexions Internet seraient
impossibles sans le NAT puisque chaque ordinateur connecté devrait avoir sa
propre adresse Internet. Un routeur utilise également 2 adresses
MAC.
Les adresses non routables, réservées aux
réseaux internes sont:
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.
On distingue le NAT statique du NAT
dynamique.
Dans le premier cas, le NAT fait uniquement la transition entre une adresse
privée interne et une adresse externe (typiquement un serveur WEB). Dans le
deuxième cas, il va permettre réellement de partager une connexion
Internet.
En statique, chaque adresse interne est associée
à une seule adresse externe. Cette solution est rarement implantée
et permet uniquement une configuration plus aisée des adresses de réseaux
internes.
En dynamique, on associe une adresse IP
externe à plusieurs adresses externe au niveau du routeur. En dynamique, le
routage va à la fois gérer les en-têtes IP, mais également les ports TCP et
UDP. Ce mécanisme s'appelle PAT (Port Adresse Translation). Le PAT va associer
un port externe (par exemple le port 80 TCP utilisé à la navigation)
à un port interne différent utilisé pour communiquer avec le réseau, par
exemple le 1562 (supérieur à 1024 et inférieur à 65535). Ces informations
(adresse IP, port TCP ou UDP) sont mémorisée dans une table de translation.
Utilisée pour le partage de connexion Internet, cette solution ne permet pas
directement de joindre un ordinateur de l'extérieur sans utiliser un VPN
(notamment NetBios), le
routeur ne sachant pas à quel ordinateur renvoyer les données. C'est donc une
solution de sécurité supplémentaire.
Le NAT dynamique pose également quelques
problèmes sur les protocoles utilisant le niveau 3 du modèle OSI (TCP
utilisant la couche 4). C'est le cas pour l'ICMP et le FTP. Le FTP (File
transfert protocol) utilise 2 ports pour la communication (ports TCP 20 et 21).
Il utilise également dans son en-tête l'adresse MAC des machines en
communications. L'utilisation du protocole FTP en NAT dynamique nécessite
l'utilisation d'un proxy, un gestionnaire de cache intelligent, si on
doit modifier les données ou un port forwarding (sans modification des
données) qui transmet simplement les données sans modifications de ports entre
2 adresses MAC (carte réseaux) différentes. C'est le cas le plus courant.
Ce mécanisme existe également pour le
protocole IPX mais est géré différamment.