La redirection de ports ou port forwarding en anglais consiste à rediriger des paquets réseaux reçus sur un port donné d'un ordinateur ou un équipement réseau vers un autre ordinateur ou équipement réseau sur un port donné. Cela permet entre autre de proposer à des ordinateurs extérieur à un réseau d'accéder à des services répartis sur plusieurs ordinateurs de ce réseau.
Avec le développement de l'internet haut débit, beaucoup de gens sont amenés à abandonner leur modem 56k pour un modem ADSL qui fait également office de routeur. Avec l'émergence du Wi-Fi et le développement de ces boîtiers ADSL, la majorité des modems ADSL sont configurés par défaut en mode routeur, cela signifie que les ordinateurs reliés au modem ADSL ne seront pas directement "visibles" depuis l'extérieur du réseau, c’est-à-dire depuis l'internet.
Pour être plus précis, et par définition, un routeur permet de relier 2 réseaux (au moins) entre eux. En utilisant son modem ADSL comme un routeur, on se retrouve avec deux réseaux bien distincts :
Ce qui donne :
|--------Réseau 1----------|---------------Réseau 2----------------|-----------------------------
----------\ \_____________________ ______________________________ | modem ADSL routeur |---------------|Fournisseur d'accès à internet|----------------- internet /¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ----------/
Le NAT, acronyme de Network Address Translation (-> traduction d'adresses réseau) est un mécanisme de traduction d'adresses qui a été mis au point afin de répondre à la pénurie d'adresses IP avec le protocole IPv4.
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.
C'est le modem routeur qui fait office de passerelle de connexion internet, c'est lui qui doit faire la traduction d'adresses pour permettre à toute machine d'accéder à internet !
Tout individu distant peut seulement connaître l'adresse ip du modem ADSL, mais pas celles des ordinateurs au sein du réseau, ceux-ci sont donc protégés.
Sur votre ordinateur, de nombreux programmes peuvent utiliser le réseau. Pour communiquer avec un programme réseau de ce type, il faut donc autre chose que l'adresse IP, c'est là qu'interviennent les ports. Chaque programme qui fonctionne en réseau utilise un port particulier (les ports d'un ordinateur sont numérotés de 0 à 65535) sur votre ordinateur.
Pour faire une comparaison grossièrement, l'adresse IP peut être apparentée à l'adresse postale d'un immeuble. Un port peut être apparenté à une boîte aux lettres de cet immeuble. Et nous avons besoin de ces deux données pour que quelque chose puisse arriver à son destinataire.
Mais alors, si une application d'un utilisateur distant (individu connecté à internet) doit communiquer spécifiquement avec mon ordinateur qui est "caché" derrière mon modem adsl routeur, comment faire ?
La redirection de ports permet ce type de communications en créant une sorte de voie de communication bien précise.
Exemple : http://abeggi.altervista.org/blog/nat.gif]]
Le client 2 fait de même.
Dès lors, lorsque le serveur répondra en émettant depuis le port 2027, cela signifiera pour le routeur que le message est adressé au client 2, si il s'agit du port 2028, alors il faut transmettre le message au client 1.
Cela est valable dans les deux sens réseau interne<->externe.
La traduction d'adresse est effectué par la NAT (Network Address Translation).
Le "port-forwarding" ou "port-mapping" consiste en 2 étapes : il faut d'abord configurer le port à ouvrir (numéro de début et de fin des ports à ouvrir, protocole utilisé) et ensuite le rediriger vers la machine sur laquelle le port doit être ouvert.
Typiquement, les logiciels qui ont besoin de connexion directe entre divers ordinateurs à travers le monde nécessite une redirection de port. Exemples : jeux, logiciels de peer 2 peer.
Des programmes comme msn messenger/irc ne nécessitent pas de redirection de ports car il ne s'agit pas d'une connexion directe entre utilisateurs. Chaque trame transmise passe par un intermédiaire : le serveur.
Chaque utilisateur ne parle qu'au serveur. Et c'est le serveur qui parle à tous les utilisateurs. Il retransmet les messages de tout le monde à chaque client connecté.
Dans le cas d'un réseau p2p, les clients se parlent directement entres eux, il faut donc préciser sur quel port précis la redirection s'applique afin que les logiciels communiquent correctement entres eux. Remarque : les serveurs de type eMule sont utilisés uniquement pour l'indexation et la recherche de fichiers sur le réseau.