Accéder à plusieurs devices derrière un même routeur

Bonjour,

Voilà j'ai créé un WebSocket depuis un ESP32 accessible depuis l'extérieur (internet).
Je suis très satisfait du résultat, très peu de latence, c'est TOP.

J'ai fait une redirection de port dans ma box pour y accéder depuis n'importe où.
Maintenant, je désire ajouter plusieurs ESP pour d'autres fonctions mais sur le même réseau.
Et bien sûr je souhaiterai aussi y accéder d'internet.

Je ne vois pas comment faire sinon de paramétrer un port pour chaque ESP.
Ainsi chaque device à son port de com, mais ça ne me plait pas ...

L'idée finale est d'avoir plusieurs ESP connectés à la même box ou routeur.
Le code de l'ESP serait aussi identique dans tous les ESP, avec seulement les données d'identification personnalisée par ESP, du style en fonction du n° de série.

Il existe forcément une astuce, que j'ignore, pour faire en sorte que depuis une page web j'accède l'un ou l'autre des ESP même s'ils sont derrière un même routeur.

Des idées sur le sujet ?
Merci d'avance.

Bonjour sly37
Le principe est justement un numéro de port dédié, tu pourrais l'inscrire en EEPROM, ainsi tu ne changes pas le programme.
Sans cette "mécanique" comment pourrais-tu accéder sélectivement à tes ESP depuis l'extérieur ?

Cordialement
jpbbricole

Ton adresse IP WAN est unique, donc la seule manière d'accéder à plusieurs services est de configurer plusieurs ports NAT.
Les adresses des services LAN sont forcément différentes, mais ces services peuvent très bien écouter sur le même port.
Exemple :
WAN LAN -> PORT
111.222.333.444:8080 192.168.1.100:80
111.222.333.444:8081 192.168.1.101:80
111.222.333.444:8082 192.168.1.102:80

L'autre solution est d'avoir un seul service visible de l'extérieur, et ce service redirige les requêtes HTTP en fonction des URLs vers les services concernés, et renvoie les réponses de ces services.

Merci pour vos réponses.

Si les services écoutent tous le même port, je devrais personnaliser le code des services pour qu'ils répondent aux requêtes de leur adresse et pas celle du voisin ?
En écrivant ces lignes, je pense que c'est possible sans personnalisation mais là en 2s j'ai pas la solution ...

L'autre solution effectivement sera d'avoir un ESP en Wifi qui redirige vers les autres ESP en ESP-NOW par exemple.
Du coup, vu de l'extérieur il n'y a qu'un seul service.
Là encore l'ESP "maître" devra faire le tri des requêtes, mais j'imagine que ça devrait fonctionner.

Ils écoutent sur le même port mais avec des adresses IP différentes. C'est comme habiter dans deux RUES différentes mais au même NUMÉRO.

Bonjour sly37

Pas forcément, c'est à toi d'indiquer, dans chaque ESP quel port il écoute. Si par défaut HTML écoute 80 ou 8080, tu peux dire à l'ESP1, écoutes 5080. Tu rediriges le port 5080 sur l'IP d'ESP1 et l'URL pour l'atteindre sera HTTP://urlTonServeur:5080

Cordialement
jpbbricole

ça fonctionne dans l'autre sens - ce n'est pas du broadcast. Pour qu'ils entendent quelque chose, il faut que la requête leur soit routée (une trame émise à destination de l'adresse IP de votre ESP)

il faut aussi se renseigner sur le NAT (➜ Network address translation — Wikipédia) pour comprendre comment deux ordinateurs derrière votre routeur peuvent eux faire des requêtes et que la réponse leur revient spécifiquement à eux.

J'ai bien saisi mais vu de l'extérieur, mon navigateur attaque "l'adresse de la box : le port".
Comment va-t-elle savoir à qui rediriger, s'ils sont tous sur le même port ?

Pour info que je n'ai pas dit, j'utilise le WebSocket pour une question de fluidité, mais ça ne doit rien changer à ma connaissance.

J'ai paramétré mon NAT de box pour le 1er ESP, je vais voir cet aprem pour le paramétrer pour le 2nd ESP. Les 2 sur le même port de redirection, mais je ne comprends toujours pas comment la box saura à qui (quelle adresse => quel ESP) rediriger la requête.

Je suis vraiment un boulet :wink:

J'ai paramétré mon NAT de box pour le 1er ESP,

Concrètement vous avez fait quoi ?

Vous ne pouvez rediriger que un port vers une IP. Un port n’aura pas 2 IP (2 ports différents peuvent aller sur la meme IP)

La distinction est faite sur l'adresse IP locale de chaque ESP.

Donc par exemple :

  • ESP1 : 192.168.1.18 : 5134
  • ESP2 : 192.168.1.19 : 5134
  • ESP3 : 192.168.1.20 : 5134

Mais du coup je suis perdu avec ce que dit J-M-L :

Un port WAN vers une IP LAN probablement.

je voulais dire que vous ne pouvez pas faire

WAN LAN -> PORT
111.222.333.444:8080 192.168.1.100:80
111.222.333.444:8080 192.168.1.101:80

le port 8080 de votre adresse WAN ne peut pas résulter en un dispatch vers 2 ESP, celui en xxx.100 et celui en xxx.101

Voilà.

D'autre part pour tester chaque service il faudra le faire depuis le WAN, pas en entrant l'adresse IP externe depuis un navigateur sur une machine locale.
Cela peut se faire depuis un tel mobile, mais sans utiliser le WIFI.
Mais cela dépend peut-être des box, en tous cas avec Orange, c'est le cas.

Bonjour

Ou depuis un outil en ligne.

Cordialement
jpbbricole

Encore merci pour vos retours.
Vos derniers posts m'ont permis de comprendre.

Oui je passe toujours par mon mobile, ou en vpn.

Déjà utilisé aussi.

Je vous tiens au jus sur mes essais ...
So long.

Oups j'ai changé de compte désolé :wink:

pourquoi avez vous plusieurs comptes ?
c'est le meilleur moyen de se faire bannir du forum...

Pour l'explication, j'ai dû créé un compte il y a qq temps et j'en ai créé un autre il y a qq jours comme un abru....
Bref, quand je me suis connecté sur le forum avec mon mobile, il m'a proposé l'autre compte et paf....
Je ne veux pas pourrir ce post, mais comment puis faire pour supprimer un compte ?
êtes-vous modérateur et dans ce cas, pouvez-vous le faire ?
J'aimerai supprimer celui-ci : sylvainalphatest

Encore désolé.

non je ne suis pas modérateur

vous pouvez supprimer vous même votre compte.
vous vous connectez sous le nom du compte que vous voulez supprimer
vous clickez sur votre avatar en haut à droite, choisissez le petit bonhomme puis Arduino Profile
image

il risque de vous demander de vous connecter à nouveau (problème de SSO chez Arduino...)

Dans le panneau ACCOUNT SETTINGS vous avez un lien pour détruire le compte
image

je ne l'ai jamais fait, mais je suppose qu'ensuite il y a demande de confirmation