CommentCaMarche
Recherche

NAT - Translation d'adresses, port forwarding et port triggering

Février 2015

Principe du NAT


Le mécanisme de translation d'adresses (en anglais Network Address Translation noté NAT) a été mis au point afin de répondre à la pénurie d'adresses IP avec le protocole IPv4 (le protocole IPv6 répondra à terme à ce problème).

En effet, en adressage IPv4 le nombre d'adresses IP routables (donc uniques sur la planète) n'est pas suffisant pour permettre à toutes les machines le nécessitant d'être connectées à internet.

Le principe du NAT consiste donc à utiliser une passerelle de connexion à internet, possédant au moins une interface réseau connectée sur le réseau interne et au moins une interface réseau connectée à Internet (possédant une adresse IP routable), pour connecter l'ensemble des machines du réseau.

Passerelle NAT



Il s'agit de réaliser, au niveau de la passerelle, une translation (littéralement une « traduction ») des paquets provenant du réseau interne vers le réseau externe.

Ainsi, chaque machine du réseau nécessitant d'accéder à internet est configurée pour utiliser la passerelle NAT (en précisant l'adresse IP de la passerelle dans le champ « Gateway » de ses paramètres TCP/IP). Lorsqu'une machine du réseau effectue une requête vers Internet, la passerelle effectue la requête à sa place, reçoit la réponse, puis la transmet à la machine ayant fait la demande.

Principe de la translation d\



Étant donné que la passerelle camoufle complètement l'adressage interne d'un réseau, le mécanisme de translation d'adresses permet d'assurer une fonction de sécurisation. En effet, pour un observateur externe au réseau, toutes les requêtes semblent provenir de l'adresse IP de la passerelle.

Espaces d'adressage


L'organisme gérant l'espace d'adressage public (adresses IP routables) est l'Internet Assigned Number Authority (IANA). La RFC 1918 définit un espace d'adressage privé permettant à toute organisation d'attribuer des adresses IP aux machines de son réseau interne sans risque d'entrer en conflit avec une adresse IP publique allouée par l'IANA. Ces adresses dites non-routables correspondent aux plages d'adresses suivantes :

  • 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 ;

Toutes les machines d'un réseau interne, connectées à internet par l'intermédiaire d'un routeur et ne possédant pas d'adresse IP publique doivent utiliser une adresse contenue dans l'une de ces plages. Pour les petits réseaux domestiques, la plage d'adresses de 192.168.0.1 à 192.168.0.255 est généralement utilisée.

Translation statique


Le principe du NAT statique consiste à associer une adresse IP publique à une adresse IP privée interne au réseau. Le routeur (ou plus exactement la passerelle) permet donc d'associer à une adresse IP privée (par exemple 192.168.0.1) une adresse IP publique routable sur Internet et de faire la traduction, dans un sens comme dans l'autre, en modifiant l'adresse dans le paquet IP.

La translation d'adresse statique permet ainsi de connecter des machines du réseau interne à internet de manière transparente mais ne résout pas le problème de la pénurie d'adresse dans la mesure où n adresses IP routables sont nécessaires pour connecter n machines du réseau interne.

Translation dynamique


Le NAT dynamique permet de partager une adresse IP routable (ou un nombre réduit d'adresses IP routables) entre plusieurs machines en adressage privé. Ainsi, toutes les machines du réseau interne possèdent virtuellement, vu de l'extérieur, la même adresse IP. C'est la raison pour laquelle le terme de « mascarade IP » (en anglais IP masquerading) est parfois utilisé pour désigner le mécanisme de translation d'adresse dynamique.

Afin de pouvoir « multiplexer » (partager) les différentes adresses IP sur une ou plusieurs adresses IP routables le NAT dynamique utilise le mécanisme de translation de port (PAT - Port Address Translation), c'est-à-dire l'affectation d'un port source différent à chaque requête de telle manière à pouvoir maintenir une correspondance entre les requêtes provenant du réseau interne et les réponses des machines sur Internet, toutes adressées à l'adresse IP du routeur.

Port Forwarding


La translation d'adresse ne permet de relayer que des requêtes provenant du réseau interne vers le réseau externe, ce qu'il signifie qu'il est impossible en tant que tel pour une machine externe d'envoyer un paquet vers une machine du réseau interne. En d'autres termes, les machines du réseau interne ne peuvent pas fonctionner en tant que serveur vis-à-vis de l'extérieur.

Pour cette raison, il existe une extension du NAT appelée « redirection de port » (en anglais Port Forwarding ou Port mapping) consistant à configurer la passerelle pour transmettre à une machine spécifique du réseau interne, tous les paquets réçus sur un port particulier. Ainsi, si l'on souhaite pouvoir accéder de l'extérieur à un serveur web (port 80) fonctionnant sur la machine 192.168.1.2, il sera nécessaire de définir une règle de redirection de port sur la passerelle, redirigeant tous les paquets TCP reçus sur son port 80 vers la machine 192.168.1.2.

Port Triggering


La plupart des applications client-serveur effectuent une requête sur un hôte distant sur un port donné et ouvrent un port en retour pour récupérer les données. Néanmoins, certaine applications utilisent plus d'un port pour échanger des données avec le serveur, c'est le cas par exemple du FTP, pour lequel une connexion est établie par le port 21, mais les données sont transférées par le port 20. Ainsi, avec le mécanisme NAT, après une demande de connexion sur le port 21 d'un serveur FTP distant, la passerelle attend une connexion sur un seul port et refusera la demande de connexion au port 20 du client.

Il existe un mécanisme dérivé du NAT, appelé « déclenchement de port » (en anglais port triggering), permettant d'autoriser la connexion à certains ports (port forwarding) si une condition (requête) est remplie. Il s'agit donc d'une redirection de port conditionnelle, permettant de ne pas laisser ouvert un port en permanence, mais uniquement lorsqu'une application en a besoin.

Plus d'informations


Pour plus d'information il est conseillé de se reporter à à cet autre article, consacré à la translation d'adresse :




Les RFC 1918 et 3022 (en anglais) décrivent en détail le principe d'espace d'adressage interne et de translation d'adresses :




Article écrit par Jean-François PILLOU

Pour une lecture illimitée hors ligne, vous avez la possibilité de télécharger gratuitement cet article au format PDF :
Nat-translation-d-adresses-port-forwarding-et-port-triggering.pdf

A voir également

Réalisé sous la direction de , fondateur de CommentCaMarche.net.


NAT- Network address translation, port forwarding and port trigg
NAT- Network address translation, port forwarding and port trigg
NAT- Conversión de direcciones de red, habilitación de puertos y
NAT- Conversión de direcciones de red, habilitación de puertos y
NAT - Adressenumsetzung, port forwarding und port triggering
NAT - Adressenumsetzung, port forwarding und port triggering
NAT - Traslazione di indirizzi, port forwarding e port triggerin
NAT - Traslazione di indirizzi, port forwarding e port triggerin
NAT - Network Address Translation, porta e encaminhamento porta
NAT - Network Address Translation, porta e encaminhamento porta
Ce document intitulé «  NAT - Translation d'adresses, port forwarding et port triggering  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.