web-dev-qa-db-fra.com

Pouvez-vous transférer le même numéro de port vers 2 adresses IP internes différentes?

Si je porte le port UDP 80 sur mon PC, puis-je accéder au port 80 à partir de mon autre ordinateur portable?

11
Octocat

Vous posez deux questions différentes ici.

Pouvez-vous transférer le même numéro de port vers 2 adresses IP internes différentes?

Non, réfléchis-y. Si un paquet arrive à votre adresse externe et au port UDP 80 (en supposant que vous n’ayez qu’une adresse IP externe), comment votre routeur saurait-il lequel des deux Les adresses IP internes doivent-elles être transférées?

Si vous souhaitez héberger deux services différents, vous aurez besoin d'un port distinct pour chacun.

Si je porte le port UDP 80 sur mon PC, puis-je accéder au port 80 à partir de mon autre ordinateur portable?

Oui. La redirection de port ne concerne généralement que les paquets dont le port 80 est situé sur votre côté . Lorsque quelqu'un essaie de se connecter à vous, votre routeur verra:

  • paquet entrant du port aléatoire X d'un autre ordinateur à votre port 80
  • réponse sortante de votre port 80 vers le port X d'une autre

Mais les connexions sortantes (lorsque vous visitez une page Web ailleurs) l'inverseront du point de vue de votre routeur.

  • paquet sortant de votre port aléatoire X vers le port 80 de l'autre ordinateur (serveur Web)
  • réponse entrante du port 80 de l'autre à votre port X

Donc, la redirection de port ne les affectera pas du tout.

(A propos, HTTP est généralement exécuté sur TCP. Seules les expériences QUIC de Chrome utilisent UDP.)

12
grawity

Pouvez-vous transférer le même numéro de port vers 2 adresses IP internes différentes?

Oui, vous pouvez absolument le faire avec UDP et dans une certaine mesure avec TCP.

Puisque UDP est un protocole sans état et sans connexion, vous pouvez écouter un port particulier et, une fois le paquet reçu, vous pouvez le copier et l'envoyer vers deux destinations internes différentes. Comme il n’ya ni poignée de main ni suivi d’état, toutes les destinations pourront recevoir ces paquets avec succès. Samplicator est l'un des programmes qui peuvent le faire pour vous. Notez qu'il ne s'agit pas d'un transfert de port pur selon sa définition.

Ceci est possible pour TCP, mais avec certaines limitations - vous pouvez écouter un port particulier et, une fois le paquet reçu, vous pouvez le transférer vers un hôte interne particulier dans un pool. TCP utilise des connexions. Ainsi, une fois que vous avez transféré un paquet initial à un hôte interne particulier, il est maintenant nécessaire de transférer le reste des paquets de cette session au même hôte interne.

En utilisant cette technologie, vous pouvez avoir plusieurs serveurs backend traitant des demandes vers une destination externe.

Si je porte le port UDP 80 sur mon PC, puis-je accéder au port 80 à partir de mon autre ordinateur portable?

Cette question n'est pas claire. Si vous transférez le trafic de votre adresse externe vers l'un des hôtes internes, cela ne vous empêche pas d'accéder au même port à partir du réseau interne.

Supposons que vous transmettiez le port 80 de A à B. Dans le même temps, C pourra accéder directement au port 80 sur B sans aucun problème.

     A (external IP)
     |
 ---------
 |       |
 B       C
3
VL-80

Vous ne pouvez pas transférer simultanément le même port vers plusieurs adresses IP. Je n'ai même pas vu de routeur/commutateur géré qui vous permettra même de le faire sans renvoyer un message d'erreur de configuration. Vous pouvez le configurer pour plusieurs adresses IP, mais une seule des règles de transfert peut être activée à la fois. Vous pouvez donc en désactiver une autre, et inversement, mais vous perdez du temps. Vous devez vous inquiéter de la redirection de ports si vous souhaitez accéder à des ports/services spécifiques sur un ordinateur LAN via son adresse IP externe. Si vous vouliez utiliser deux serveurs Web sur deux de vos PC LAN et pouvoir y accéder tout le temps, le moyen le plus simple de le faire est de changer les ports des services, d’écouter le port 80 et l’autre. sur 8080 ou le port que vous voulez. 99% des services vous permettront d’héberger/d’écouter le port de votre choix. Si vous ne spécifiez pas de port, le service par défaut sera utilisé. Il existe d'autres moyens plus avancés de faire les choses, mais c'est le moyen le plus simple. Les méthodes avancées ne sont pas considérées ni dénommées "redirection de port".

1
JohnRB