Adresse ip publique et adresse ip privée, Internet box et UPnP

Aller en bas

Adresse ip publique et adresse ip privée, Internet box et UPnP Empty Adresse ip publique et adresse ip privée, Internet box et UPnP

Message  Gus le Mer 9 Jan - 21:02

Je fais suite à mon précédent post dans cette section : "Connaitre les adresses IP de sa machine avec Java", que j'avais écrit en décembre 2010 (il y a plus de 2 ans). J'ai fait un peu de chemin depuis (un peu seulement) et j'ai pu clarifier quelques notions qui étaient floues à l'époque.

Tout d'abord, mettons les choses au point: une machine connectée à Internet par l'intermédiaire d'une box ne possède pas 2 adresses ip (une qui serait publique et une privée), mais une seule, celle du réseau local privé auquel elle est connecté. L'adresse ip dite publique (visible depuis Internet) n'est autre que l'adresse ip de la box, et n'a a priori rien à voir avec les différentes machines du coté réseau privé.

Une fois qu'on a bien compris ça, une question évidente se pose : comment un ordinateur connecté à Internet par une box fait-il pour identifier et démarrer une communication avec un autre ordinateur qui serait lui-aussi connecté à Internet soit par la même box soit par une autre box ??? Si les deux ordinateurs sont derrière une même box, leur communication passe directement par le réseau local sans qu'il y ait besoin d'une connexion Internet. Chaque ordinateur identifie l'autre par son adresse unique dans le réseau, laquelle commence généralement par 192.168.... Dans le cas contraire, il n'y a pas de solution simple malheureusement.

Le problème peut se résoudre en paramétrant une "redirection de port" au niveau de la box : disons que vous cherchez à rendre accessible par Internet le port 5000 de votre ordinateur qui possède l'adresse ip locale 192.168.0.7. Vous allez donc ajouter une règle de redirection de port dans votre box, qui va faire correspondre son port externe 5100 avec le port 5000 de votre ordinateur. Pour atteindre le port 5000 de votre ordi, il suffira alors d'atteindre depuis Internet le port 5100 de la box.

<ip_publique>:5100 -> 192.168.0.7:5000

Pour éviter à l'utilisateur la contrainte de paramétrer manuellement sa box pour chaque machine du réseau local et chaque port devant être accessible, des protocoles ont vu le jour, permettant notamment des mécanismes de "redirection de port dynamique". C'est notamment le cas du protocole UPnP (mais encore faut-il que la box supporte et autorise ce protocole...)

Une autre manière de résoudre le problème est le "Hole Punching", décrit sur ce site :
http://quentinloos.be/?p=441
J'avoue ne pas avoir encore eu le temps d'approfondir cette technique qui semble assez générale.

Concernant l'UPnP (Universal Plug and Play) en revanche, je me suis aidé du framework Java open source de cybergarage
http://www.cybergarage.org/twiki/bin/view/Main/UPnPFramework
pour créer ma propre implémentation en programmation gus05.

L'UPnP est un protocole réseau qui permet entre autres choses de communiquer avec la box de son réseau et de la contrôler pour faire du mapping dynamique de port ou récupérer l'adresse ip publique de celle-ci. L'UPnP permet aussi dans une certaine mesure de découvrir les différents équipements connectés au réseau local. Je vous présenterai prochainement le résultat de mes travaux concernant tout ceci.
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum