IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

Question NAT + communication web !


Sujet :

Développement

  1. #1
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut Question NAT + communication web !
    Bonjour,

    Je voudrais savoir si ce que je tente de faire à une chance de fonctionner.

    Le but de est de pouvoir créer un pc sur un réseau local (A) joignable à tout instant par une machine extérieure (B) connaissant son adresse publique.

    Pour cela, j'ai un script php qui tourne sur un serveur perso (S).

    Le pc A contacte le serveur S pour lui envoyer son adresse publique et son port "public" (port externe du routeur) à sa connexion au réseau. Le serveur S enregistre dans un fichier le nom du pc A et lui associe l'adresse publique récupérée.
    Maintenant, une machine B veut contacter la machine A. La machine B contacte le serveur S en lui demandant l'adresse publique de A. Ensuite, B envoie son message avec l'adresse publique de A comme destination et A est censée le recevoir !!!

    Est ce que cela fonctionne si la machine A passe par un serveur NAT dynamique pour accèder au web : : :

    Merci pour votre future aide !
    Nico

  2. #2
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut Re: Question NAT + communication web !
    Citation Envoyé par niglo
    Le but de est de pouvoir créer un pc sur un réseau local (A) joignable à tout instant par une machine extérieure (B) connaissant son adresse publique.
    Fastoche.
    Citation Envoyé par niglo
    Pour cela, j'ai un script php qui tourne sur un serveur perso (S).
    Mauvaise solution.
    Citation Envoyé par niglo
    Le pc A contacte le serveur S pour lui envoyer son adresse publique et son port "public" (port externe du routeur) à sa connexion au réseau.
    Ce ci est inutile. Le PC A n'est capable que de comprendre 1 adresse IP (celle en locale).
    Citation Envoyé par niglo
    Le serveur S enregistre dans un fichier le nom du pc A et lui associe l'adresse publique récupérée.
    Si cela etait possible alors votre reseaux local serai egale/equivalent au PC A et toutes les autres machines n'aurait plus d'acces vers l'exterieur.
    Citation Envoyé par niglo
    Maintenant, une machine B veut contacter la machine A. La machine B contacte le serveur S en lui demandant l'adresse publique de A.
    Il est situe ou exactement votre serveur S ? Il est contactable sur Internet par consequent a une adresse public mais pas la meme que le PC A. Il y a un probleme la.
    Citation Envoyé par niglo
    Ensuite, B envoie son message avec l'adresse publique de A comme destination et A est censée le recevoir !!!

    Est ce que cela fonctionne si la machine A passe par un serveur NAT dynamique pour accèder au web : : :
    La j'ai rien compris.

    Bon resumons. Oui c'est possible d'avoir acces a un PC dans un reseaux local depuis l'internet. Cependant avec votre idee: NON. Ce qui m'etonne le plus c'est que vous mentionez le NAT, or vous n'avez pas du faire de recherche car il y a plein de tutoriels qui expliquent comment mettre en place ce genre de solution. Je l'ai pour mon universite pas plus tard que la semaine derniere.

    J'ai une station Windows 2000 Server Series avec 2 interfaces, 1 sur le reseaux publique et une autre en prive. J'ouvre certain port et configure Win2k afin que lorsque une connexion est recu sur ce port celle ci soit transfere vers un PC bien specific sur mon reseau local. Par exemple, depuis mon office je peux faire, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ssh ipWin2k:60001
    et je me retrouve connecte a ma machine FreeBSD en SSH sur mon reseau prive .

    Certes contrairement a vous je n'ai pas de probleme d'adressage publique puisque mon universite est aussi un FAI. Dans votre cas, vous avez besoin de souscrire a un service du style no-ip ou bien myDNS, qui vous permettrons d'atteindre votre interface public (router ou autre) meme ci celle change d'adresse IP. La technique decrite ci-dessus marche avec Win2k mais il est aussi possible de le faire avec un routeur domestique. J'ai un NetGear a la maison et il est parfaitement capable de le faire. Qui plus est dans l'interface de configuration il y a tout ce qu''il faut pour souscrire a un service du style myDNS. Si jamais vous voulez le faire avec un routeur domestique, examinez bien ces capacites ca peux aider .

    Pour terminer, vous devez bien etre consicient qu'un tel systeme est TRES vulnerable. La mettre en place correctement demande a ouvrir des ports dans votre firewall et du coup votre systeme est exploitable. Faites donc tres attention. Il y a aussi le fait que si une machine est accessible depuis le net cela ne veut pas dire que celle ci peut naviger le web mais chaque chose en son temps.

    Bon courage,

    Ar@mi$
    Avant de Poster Lire les Regles! Merci
    -------------------------------------------------
    "The only Way for Evils to Triumph is for Good Men to Do Nothing"
    Edmund Burke (1729 - 1797)

  3. #3
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Merci d'avoir répondu, mais je crois que vous n'avez pas compris mon problème,e t je ne suis pas vraiment surpris.

    Disons que la machine B (quelconque) veut contacter la machine A (qui est derrière un routeur NAT dynamique).

    Pour que B puisse contacter A, il lui connaitre l'adresse "internet" (=publique) de A. Non??

    Pour que B connaisse cette adresse, il va la demander à une machine S qui ne sert qu'à associer un nom de machine à une adresse publique. L'adresse publique est récupérée par un script php. Donc sur le serveur S j'aurais un fichier du genre :
    machineA 111.222.333.444:2000
    machineB 222.333.444.111:2004
    machineC 111.222.333.444:2006
    D'après ce fichier, je sais que pour contacter A, il faut envoyer un message à l'adresse 111.222.333.444:2000 !!
    Pour remplir ce fichier, la machine A contacte S par une requête HTTP (avec le nom de machine en argument) sur la page php qui extrait l'adresse et le port et l'enregistre dans le fichier.

    Maintenant, sachant que A passe par du NAT dynamique pour atteindre S, est ce que l'adresse récupérée par S peut être utilisée par B pour envoyer un message à A ???

    J'espère que vous avez mieux compris ! En fait, je veux juste savoir si l'adresse que je récupère sur S est utilisable !

  4. #4
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Il s'agit d'un probleme classique de p2p si j'ai bien compris ? Comment contacter les différents peers ?

    L'adresse que le serveur S va récuperer sera bien l'adresse public de A. Par contre, je ne sais pas comment vous comptez récupérer el port ? N'oubliez pas que ce port doit être redirigé du routeurA vers l'adresse privée de A. Vous devez donc a priori choisir un port constant que vous enverrez au travers de votre requête

  5. #5
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Merci pour la réponse.

    Le serveur NAT dynamique va crée une table de "routage" où il fait l'association entre le port interne (vers A) et le port externe (vers internet). Cette "table de routage" est elle gardée en mémoire tant que le client A est connecté, où est elle mise à jour à chaque couple message envoyé/réponse reçue par A ???

  6. #6
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par niglo
    Merci d'avoir répondu, mais je crois que vous n'avez pas compris mon problème,e t je ne suis pas vraiment surpris.


    Citation Envoyé par niglo
    Disons que la machine B (quelconque) veut contacter la machine A (qui est derrière un routeur NAT dynamique).

    Pour que B puisse contacter A, il lui connaitre l'adresse "internet" (=publique) de A. Non??
    Comme je l'ai mentione ci-dessus le mieux est de souscrire a service du style no-ip ou bien myDNS. Et du coup depuis n'importe quelle location dans le monde vous pourriez faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    connect monSuper.domaine.de.fou.net
    et vous arriverez sur votre reseau local.
    Citation Envoyé par niglo
    Pour que B connaisse cette adresse, il va la demander à une machine S qui ne sert qu'à associer un nom de machine à une adresse publique. L'adresse publique est récupérée par un script php. Donc sur le serveur S j'aurais un fichier du genre :
    machineA 111.222.333.444:2000
    machineB 222.333.444.111:2004
    machineC 111.222.333.444:2006
    Inutile de re-inventer la roue, un service du style no-ip le fait deja.
    Citation Envoyé par niglo
    D'après ce fichier, je sais que pour contacter A, il faut envoyer un message à l'adresse 111.222.333.444:2000 !!
    Attention ! Normalement l'application definit quel port va etre utiliser. 21 pour FTP, 80 pour HTTP. 22 pour SSH et etc. Maintenant, si, pour des raisons de securite, vous voulez deplacer un port alors il vous faudrai configure votre passerelle comme il se doit. C'est pourquoi il est tout a fait possible pour un routeur de recevoir une requete sur le port 2000 de son interface public et de la rediriger vers le port 80 d'une machine de votre choix dans le reseaux local. Une fois la communication etablie le par-feu laissera passer tout le traffic entre les 2 parties communicantes.

    Citation Envoyé par niglo
    Pour remplir ce fichier, la machine A contacte S par une requête HTTP (avec le nom de machine en argument) sur la page php qui extrait l'adresse et le port et l'enregistre dans le fichier.

    Maintenant, sachant que A passe par du NAT dynamique pour atteindre S, est ce que l'adresse récupérée par S peut être utilisée par B pour envoyer un message à A ???

    J'espère que vous avez mieux compris ! En fait, je veux juste savoir si l'adresse que je récupère sur S est utilisable !
    C'est quoi exactement un NAT dynamique??

    A.
    Avant de Poster Lire les Regles! Merci
    -------------------------------------------------
    "The only Way for Evils to Triumph is for Good Men to Do Nothing"
    Edmund Burke (1729 - 1797)

  7. #7
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Aramis
    C'est quoi exactement un NAT dynamique??
    C'est une question piège ??

    Routage NAT dynamique "classique" : http://www.lalitte.com/nat#4_-_La_NAT_dynamique_

  8. #8
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Oh non ! un cours de reseaux en francais, au secours

    bon serieusement, ce n'est pas grave. Ce qu'il vous faut faire par exemple c'est d'ecrire proprement vos regles de traduction correctement. Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ipExtern:2001  ----> ipPrivee:21 (FTP)
    Et le tour est joue. Ce n'est pas tres dur en fait. Cependant, cela prend du temps de tout bien configurer et documenter!

    A.
    Avant de Poster Lire les Regles! Merci
    -------------------------------------------------
    "The only Way for Evils to Triumph is for Good Men to Do Nothing"
    Edmund Burke (1729 - 1797)

  9. #9
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Ok !!

    Je ne veux pas configurer le routeur NAT.
    Je veux juste savoir si la communication entre la machine A et la machine B est réalisable en utilisant l'adresse récupérée par le serveur S ???

    Merci d'avoir pris le temps d'essayer de comprendre mon soucis
    pour aramis :

  10. #10
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par niglo
    Je ne veux pas configurer le routeur NAT.
    C est dommage de cette facon vous pourriez etre sure de pouvoir completer votre systeme.
    Citation Envoyé par niglo
    Je veux juste savoir si la communication entre la machine A et la machine B est réalisable en utilisant l'adresse récupérée par le serveur S ???
    Comme mentione ci-dessus a plusieur reprises: Non! Vous essayez de re-inventer la roue. A mes yeux, beaucoup d'efforts pour un resultats plus qu'improbable.
    Citation Envoyé par niglo
    Merci d'avoir pris le temps d'essayer de comprendre mon soucis
    pour aramis :
    No problem , non?

    Ar@mi$
    Avant de Poster Lire les Regles! Merci
    -------------------------------------------------
    "The only Way for Evils to Triumph is for Good Men to Do Nothing"
    Edmund Burke (1729 - 1797)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Communication web - pc
    Par ouar dans le forum Services Web
    Réponses: 6
    Dernier message: 20/06/2007, 11h14
  2. Question sur le Web.xml
    Par maloups dans le forum JSF
    Réponses: 4
    Dernier message: 05/06/2007, 15h32
  3. Appli communication web
    Par cerede2000 dans le forum C++
    Réponses: 18
    Dernier message: 02/04/2006, 11h19
  4. une autre question niveau communication
    Par gctom dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 15/01/2006, 23h25
  5. [Jdialog] Question sur communication entre fenetre
    Par Oreste dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 17/03/2005, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo