Network address translation

Intérêt
NAT est l’acronyme de Network Address Translation, soit translation d’adresse réseau en français.

C'est un mécanisme qui, implanté sur un routeur, permet de faire correspondre les adresses IP internes non-uniques d'un domaine avec un ensemble d'adresses externes uniques et routables.

Table des matières

1. Illustration

Un campus est composé de 1 000 hôtes, dont des imprimantes, scanners, etc. répartis dans 4 sous-réseaux. Sans utilisation de la translation d'adresses réseau, un tel campus nécessiterait l'attribution de presque 1 000 adresses IP uniques et routées.

Réseau sans NAT : les adresses des hôtes sont des adresses uniques et routées sur Internet.

En interfaçant un tel campus avec l'Internet via un routeur qui effectue la translation d'adresses réseau (qui « natte »), on peut changer le plan d'adressage interne et utiliser des adresses non uniques et non routées sur Internet (cf. RFC 1918).

Réseau avec NAT : les adresses des hôtes sont des adresses réutilisables. Le routeur de bordure fait la translation d’adresse. On notera que la modification du plan d’adressage alloue désormais un réseau /16 par sous-réseau, s’affranchissant de la limite des 254 adresses possibles avec un /24.

On n’assignera que quelques centaines d’adresses à l’ensemble des adresses externes de la NAT, sachant que les imprimantes (et certains autres équipements) n’ont pas besoin de communiquer avec l’extérieur de façon permanente (donc, leurs adresses n’ont pas besoin d’être translatées).

La NAT permet donc de diminuer significativement le nombre d'adresses IP uniques utilisées.

2. Implémentation de la translation d'adresse

Pour faire correspondre les adresses internes avec un groupe d’adresses externes, on se sert d’une table. Celle ci contient des paires (adresse interne, adresse externe (translatée)). Quand une machine sur le réseau interne émet une trame qui traverse le routeur chargé de la translation, l’adresse source est remplacée dans l’en-tête du paquet TCP/IP par une adresse IP externe qui lui correspond. Le remplacement inverse se fait quand l’adresse de destination d’une trame envoyée depuis l’extérieur doit être translatée vers l’adresse IP qui lui correspond sur le réseau interne.

Aussi, il est possible de réutiliser une entrée dans la table de correspondance de la NAT si aucun trafic avec les adresses de la paire n'a traversé le routeur pendant un certain temps (paramétrable).

IP interne IP externe Durée (s) Réutilisable ?
10.101.10.20 193.48.100.174 1200 non
10.100.54.271 193.48.101.8 3600 oui
10.100.0.89 193.48.100.46 0 non


Voici par exemple une table de NAT simplifiée. On supposera qu'une entrée pourra être reclamée si la translation n'a pas été utilisée depuis plus de 3 600 secondes.

La première ligne indique que l’adresse IP interne 10.101.10.20 est translatée en 193.48.100.174 quand la machine qui possède cette première adresse converse avec le monde extérieur. Elle n’a pas émis de paquet depuis 1200 secondes, mais la limite étant 3600, cette entrée dans la table lui est encore assignée. La deuxième machine est restée inactive pendant plus de 3600 secondes, peut-être parce qu’elle est éteinte : une autre machine peut alors reprendre cette entrée (la translation d’adresse pour celle-ci sera effectuée par une modification de la première colonne, puisque cette machine n’aura pas la même adresse IP interne). Enfin, la troisième et dernière machine est actuellement en conversation avec l’extérieur, la valeur du champ Durée étant égale à 0.

Actuellement, la plupart des firewalls et routeurs autorisent l’utilisation de la translation d’adresses selon ce schéma. La NAT est ainsi utilisée, par exemple, par les abonnées à l’ADSL qui connectent plusieurs ordinateurs à Internet via une ligne unique.

3. Bénéfices de la NAT

Les adresses « internes » peuvent être choisies parmi les adresses définies dans la RFC 1918. Ainsi, plusieurs sites peuvent avoir le même adressage interne et communiquer entre eux en utilisant ce mécanisme. Étant donné que les adresses internes sont réutilisées sur plusieurs sites, une économie substancielle d'adresses IP est réalisée : leur nombre (en IPv4) est limité.

On peut également par ce biais utiliser moins d'adresses dans l'ensemble des adresses translatées que d'adresses IP à l'intérieur du réseau, du moins si un mécanisme permettant de récupérer les adresses inutilisées après un certain temps est disponible. Plus précisément, si une entrée dans la table des translations n'est pas utilisée pendant un certain temps (paramétrable), cette entrée peut-être réutilisée : une autre machine avec une adresse « interne » différente va alors utiliser la même adresse externe pour communiquer.

La NAT masquant l'adresse IP de la machine interne, elle participe à la sécurité du site.

4. Problèmes inhérents

Le problème majeur se pose lorsqu'un protocole de communication transmet l'adresse IP de l'hôte source dans un paquet. Cette adresse n'étant pas valide après avoir traversé le routeur NAT, elle ne peut être utilisée par la machine destinatrice. Pour pallier à cet inconvénient, les routeurs NAT doivent savoir inspecter le contenu des paquets qui le traverse, et modifier les adresses IP spécifiées par les adresses translatées. Notez que cela implique de recalculer la somme de contrôle et la longueur du paquet. Les protocoles affectés sont, entres autres : ICMP, FTP, DNS, SNMP, etc.

Le NAT ne fait que participer à la politique de sécurité du site : une fois la translation établie, elle est bidirectionnelle.

5. Différents types de translation d'adresse

Différents types de translation d'adresse existent :

  • NAT simple : un ensemble d'adresses internes sont translatées vers un ensemble d'adresses externes.
  • PAT (Port Address Translation) : seule l’adresse de l’interface externe du routeur est visible depuis l’extérieur. Dans ce cas, ce sont les numéros de ports qui permettent d’identifier la translation active : l’adresse du port source (celui de la machine interne) est modifié par le routeur ; elle est utilisée pour identifier la machine/l’adresse source. Le multiplexage/démultiplexage des IP internes se fait grâce aux numéros de ports (modifiés par le routeur).

Cette méthode fait économiser encore plus d'adresses que la NAT classique, mais elle présente les même inconvénients.

6. Voir aussi

  • Adresse IP
  • Routeur
  • IP

7. Liens externes

  • RFC 1631 - The IP Network Address Translator (NAT)
  • RFC 1918 - Address Allocation for Private Internets
  • RFC 3022 - Traditional IP Network Address Translator (Traditional NAT)
  • NAT and Networks (document en anglais)

Copyright © les auteurs de l’article original sur le site Wikipédia : l’encyclopédie libre et gratuite pour les sections inaltérées et – dans le cas d’une version modifiée – les auteurs de ce document sur Libre Savoir. (Dans le cas où le nombre total de contributions est supérieur au nombre affiché sur la page d’historique du document, veuillez utiliser les liens de navigation pour obtenir la liste complète des auteurs.)
Thème:Réseau (informatique)







Taille du texte


Partager sur :



 


Catégorie (1) Systèmes et réseaux 
 
Mots-clef TCP/IP  NAT 
Contenu sous droits d'auteur — Dernière mise-à-jour : 2010-06-03 16:41:51




Découvrez nos contenus

par catégories

par mots-clés

par dates d'ajout et de modification

Index alphabétique

Partagez vos connaissances !
Pour publier durablement et librement sur Internet, contactez-nous.





/a>