Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être |
Que ce soit au travail ou au domicile nos ordinateurs ainsi que toutes les autres stations (imprimantes, téléphones, etc.) sont généralement connectés à un réseau local. Que cette connexion utilise ethernet ou le wifi chacune de ces stations est joignable grâce à son adresse IP. Sur un réseau local toutes les adresses IP appartiennent généralement à un seul et même groupe appelé sous-réseau IP. Chez les particuliers, par défaut, ce sous-réseau comprend le plus souvent toutes les adresses IP de la forme 192.168.1.n, ou 192.168.0.n.
On comprend donc que ces adresses IP sont réservées à un usage local puisque tout le monde a à peu près les mêmes. C'est comme les numéros de porte dans les bureaux, il doit y en avoir des millions d'identiques dans le monde.
Alors comment le monde extérieur peut-il communiquer avec nous si des millions de stations ont la même adresse IP que la nôtre ?
Quelques mots sur le routeur qui sert à communiquer via internet.
On l'appelle aussi "passerelle" car il fait le lien entre le réseau local et le réseau du FAI. Devant être vu d'un côté comme de l'autre il a donc une adresse IP distincte pour chacun de ces deux réseaux. On parle souvent d'adresse IP WAN (wide area network) côté FAI et d'adresse IP LAN (local area network) de l'autre.
Sauf cas particulier l'utilisateur a toute latitude pour le choix de l'adresse LAN alors que l'adresse WAN est attribuée par le FAI. Contrairement aux adresses IP LAN, les adresses IP WAN sont uniques et peuvent donc servir à communiquer via internet.
Autre dénomination, adresses IP publique pour celle qui est vue de l'extérieur, et adresse IP privée pour celle qui ne sert que sur le réseau local.
Pour mémoire, les applications communiquent entre elles en utilisant le protocole TCP. Les données à envoyer sont fragmentées pour former des ensembles de petite taille (environ 1500 octets) appelés segments. L'adresse du destinataire d'un segment est un numéro de port. Chaque segment est inséré dans un paquet IP comme lorsque l'on glisse une lettre à l'intérieur d'une enveloppe. C'est l'enveloppe qui portera l'adresse du destinataire, ici son adresse IP. De la même manière que l'on met sa propre adresse au dos de l'enveloppe le paquet IP contiendra aussi l'adresse IP de retour.
Mais quelle adresse IP quand on souhaite communiquer avec un site distant puisque celle de la station n'est pas significative ? C'est là qu'intervient le routeur.
Quand le paquet lui arrive pour être envoyé à l'extérieur via le réseau du FAI, l'adresse IP de l'expéditeur est encore celle de la station émettrice. Avant de transmettre le paquet le routeur va lui substituer son adresse IP WAN. Le site distant pourra ainsi répondre à cette adresse unique au monde. C'est ce qu'on appelle la fonction traduction d'adresse ou NAT (network address translation). Mais comment la réponse arrivera-t-elle sur la station émettrice puisque son adresse IP a été gommée ? On se sert pour cela d'une autre indication, le numéro de port TCP. L'adresse IP plus le numéro de port vont permettre d'identifier la station destinataire.
Prenons un exemple pour détailler ce mécanisme.
La station d'adresse IP L demande à accéder à un site dont l'adresse IP est D. La fonction NAT du routeur :
- remplace L par W, sa propre adresse IP WAN ;
- indique au site distant un numéro de port TCP N que celui-ci devra utiliser pour répondre ;
- crée une entrée dans un table associant N et L ;
- envoie le paquet sur le réseau du FAI.
.
Quand la réponse du site distant arrive sur W avec indication du port N, le routeur :
- recherche L dans sa table en fonction de N ;
- remplace W par L dans le paquet reçu ;
- envoie ce paquet sur le réseau local.
L'entrée dans la table disparaît à la fermeture de la connexion TCP.
On vient de voir comment une station d'un réseau local pouvait communiquer avec l'extérieur via internet mais quand est-il de l'inverse ? Est-il possible d'accéder à l'une des stations d'un réseau local depuis l'extérieur? Ce problème se pose notamment dans le cas de l'utilisation d'une caméra de surveillance ou d'un NAS (network access storage). A priori ce n'est pas possible et c'est ce qui fait d'un routeur NAT un pare-feu implicite.
Pour contourner ce problème la solution consiste à créer une entrée permanente dans cette fameuse table d'association adresse IP LAN / n° de port. Les menus de configuration du routeur possèdent une rubrique qui permet de créer une ou plusieurs de ces redirections.
Un exemple ci-dessous sur une Libebox 2 où la rubrique est baptisée "Configuration NAT/PAT)".
Depuis l'extérieur l'application appelante utilise l'adresse IP WAN du routeur et indique via quel port TCP elle va dialoguer. Grâce à la table le routeur peut alors transmettre à la station destinataire les paquets qui lui sont destinés.
Pour mettre en œuvre ce dispositif :
- l'adresse IP de la station qu'on souhaite atteindre depuis l'extérieur doit impérativement être fixe ;
- l'application distante devra utiliser le n° de port redirigé ;
- il est nécessaire de connaître l'adresse IP WAN du routeur.
On doit donc affecter manuellement une adresse IP à la station cible ou bien la laisser cliente DHCP et rendant son bail permanent.
L'adresse IP du routeur est généralement attribuée dynamiquement. Rien ne garanti donc qu'elle ne changera jamais. Pour contourner cet autre problème il suffit d'obtenir, auprès du fournisseur d'un service de type Dyndns, une URL qui pointera sur le routeur. La grande majorité des routeurs permettent d'effectuer cette opération au travers de leurs menus de configuration et chaque modification de leur adresse IP est alors répercutée automatiquement sur le serveur du prestataire.
Exemple d'une Livebox 2.
On a utilisé ici le terme de routeur dans un sens générique. Il peut bien sûr s'agir aussi bien d'un routeur pur que d'un modem routeur tel que ceux fournis par les FAI, mais on retrouve ailleurs cette fonction routeur NAT. Elle est bien sûr présente dans les téléphones sous Android ou Ios afin de pouvoir fournir un accès à internet à diverses station via la connexion 4/5G. Plus cachée, elle est aussi mise en œuvre par Windows lorsque l'on active le partage de connexion internet.
Dans ce chapitre il n'a été question que de communication via internet depuis une station locale avec un site distant ou de l'inverse, et uniquement dans le cas d'IP V4.
Le même mécanisme de traduction d'adresse s'applique en interne quand on cascade plusieurs routeurs. L'adresse IP WIN d'un routeur aval est une adresse IP LAN du routeur amont.
En IP V6 les mécanismes sont différents puisque qu'il n'y a plus la même distinction entre adresse IP WAN et adresse IP LAN et il qu'il n'y a pas obligation d'utiliser la traduction d'adresse.