¿Se puede reenviar el mismo número de puerto a 2 direcciones IP internas diferentes?


14

Si transfiero el puerto 80 UDP en mi PC, ¿puedo acceder al puerto 80 desde mi otra computadora portátil?


1
No; Cuando reenvía un puerto, envía todo el tráfico a una sola dirección. Si necesita 2 dispositivos para recibir los datos en el mismo puerto, debe reenviarlos a un solo dispositivo que conecte esos 2 dispositivos adicionales a la red (por ejemplo, otro enrutador).
Ramhound

1
El puerto 8080 se puede usar de forma segura como alternativa al 80 en el sistema secundario. Reenvíe 80 a PC y 8080 a notebook si eso es lo que necesita para sus requisitos.
Overmind

Escribe "Si transfiero el puerto 80 UDP en mi PC, ¿puedo acceder al puerto 80 desde mi otra computadora portátil?" <--- Bueno, obviamente, de lo contrario, ¿cuál es el punto del puerto hacia adelante?
barlop

AT Ramhound Realmente eh, ok, entonces ¿Por qué no explicas cómo lo harías?
barlop

1
Te recomiendo que aceptes la respuesta de VL-80. Su respuesta es muy buena. Responde a lo que realmente preguntaste: nadie puede hablar sobre cómo responde lo que querías preguntar.
David Betz

Respuestas:


14

Estás haciendo dos preguntas diferentes aquí.

¿Se puede reenviar el mismo número de puerto a 2 direcciones IP internas diferentes?

No. Piensa en eso. Si llega un paquete a su dirección externa y al puerto UDP 80 (suponiendo que solo tenga una dirección IP externa), ¿cómo sabría su enrutador a cuál de las dos direcciones IP internas debe reenviarse?

Si desea alojar dos servicios diferentes, necesitará un puerto separado para cada uno.

Si transfiero el puerto 80 UDP en mi PC, ¿puedo acceder al puerto 80 desde mi otra computadora portátil?

Si. El reenvío de puertos generalmente solo afecta a los paquetes que tienen el puerto 80 de su lado. Cuando alguien intenta conectarse con usted, su enrutador verá:

  • paquete entrante del puerto aleatorio X de otra computadora a su puerto 80
  • respuesta saliente desde su puerto 80 al puerto X de otro

Sin embargo, las conexiones salientes (cuando se visita una página web en otro lugar) tendrán que invertirse desde la perspectiva de su router.

  • paquete saliente desde su puerto aleatorio X al puerto 80 de la otra computadora (servidor web)
  • respuesta entrante desde el puerto 80 del otro a su puerto X

Por lo tanto, el reenvío de puertos no afectará a esos en absoluto.

(Por cierto, HTTP generalmente se ejecuta en TCP . Solo los experimentos QUIC de Chrome usan UDP).


Re "a cuál de las dos direcciones IP internas se debe reenviar ", ¿por qué no enviar tanto al servidor 192.168.1.100 como al servidor 192.168.1.101?
Pacerier

1
@Pacerier: ¿Qué hará el cliente cuando reciba dos respuestas completamente diferentes? No realizará automáticamente dos conexiones donde un programa solicitó solo una. En el mejor de los casos, aceptará un paquete de respuesta y descartará el otro, lo cual es inútil ya que no puede decirle qué servidor desea ... a menos que .100 y .101 proporcionen exactamente los mismos servicios (equilibrio de carga). En el peor de los casos, la segunda respuesta incluso evitará que finalice el primer intento de conexión (por ejemplo, si el segundo servidor sigue recibiendo paquetes destinados al primero, seguirá respondiendo con TCP RST)
user1686

1
@Pacerier: Entonces, en el caso de equilibrio de carga específico (con servidores casi idénticos), eso se puede hacer; consulte la respuesta de VL-80 a continuación para obtener más detalles. De hecho, hay programas de equilibrio de carga que duplican el paquete inicial y usan el servidor que respondió más rápido. Pero si quisiera alojar dos sitios web diferentes de esa manera, no funcionaría porque el navegador no envía el nombre de host del sitio web hasta mucho después de que se haya realizado la conexión TCP.
usuario1686

4

¿Se puede reenviar el mismo número de puerto a 2 direcciones IP internas diferentes?

Sí, absolutamente puedes hacerlo con UDP y hasta cierto punto con TCP .

Como UDP es un protocolo sin estado sin conexión, puede escuchar un puerto en particular y una vez que llega el paquete, puede copiarlo y enviarlo a dos destinos internos diferentes. Como no hay apretones de manos o seguimiento de estado, todos los destinos podrán recibir esos paquetes con éxito. Samplicator es uno de los programas que puede hacerlo por usted. Tenga en cuenta que esto no es un reenvío de puertos puro según su definición.

Esto es posible para TCP , pero con algunas limitaciones: puede escuchar un puerto en particular y una vez que llega el paquete, puede reenviarlo a un host interno particular en un grupo. TCP utiliza conexiones, por lo que una vez que reenvió un paquete inicial a un host interno particular, ahora es necesario reenviar el resto de los paquetes de esta sesión al mismo host interno.

Al usar esta tecnología, puede tener múltiples servidores de back-end que manejan las solicitudes a un destino externo.

Si transfiero el puerto 80 UDP en mi PC, ¿puedo acceder al puerto 80 desde mi otra computadora portátil?

Esta pregunta es poco clara. Si reenvía el tráfico desde su dirección externa a uno de los hosts internos, este hecho por sí solo no le impide acceder al mismo puerto desde la red interna.

Digamos que reenvías el puerto 80 de Aa B. Al mismo tiempo C, podrá acceder directamente al puerto 80 Bsin ningún problema.

     A (external IP)
     |
 ---------
 |       |
 B       C

2
La pregunta es sobre los enrutadores. Ningún enrutador de grado de consumidor tiene las características de equilibrio de carga de copia UDP / TCP que usted describe, y nada de esto se llama "reenvío de puertos".
Jason C

44
1) La pregunta no especifica que debe ser un equipo a nivel del consumidor. 2) Independientemente de lo que haya escrito, la técnica que describí funciona.
VL-80

2
Ningún enrutador de nivel profesional tendría estas características tampoco, a menos que el paquete incluya más que solo un enrutador. No es reenvío de puertos y los enrutadores no realizan estas funciones. La pregunta se refería al "reenvío de puertos" y se etiquetaba como enrutador . Piensa en las personas que tendrían esta misma pregunta, encuéntrala, lee tu respuesta y considera si estás ayudando o confundiendo. Tu terminología está mal de todos modos.
Jason C

Escribe "Esto es posible para TCP, ....... una vez que reenvió un paquete inicial a un host interno particular, ahora es necesario reenviar el resto de los paquetes de esta sesión al mismo host interno". <--- Entonces, ¿cómo es esto posible con TCP? Usted menciona el muestreador para UDP, ok ... para que lo copie para UDP ... ¿Pero qué sugiere para TCP?
barlop

44
Esta respuesta es buena Estaba a punto de decir algo similar. Con UDP, de esto se trata la multidifusión e IGMP. TCP, sí, roundrobin, failover, etc. Sí, los enrutadores pueden hacer esto: los enrutadores de hoy no son los dispositivos ciegos de los años 90. La pregunta es lo suficientemente vaga como para permitir lecturas múltiples, pero así es como también leo la pregunta.
David Betz

1

No puede reenviar el mismo puerto a múltiples IP simultáneamente, ni siquiera he visto un enrutador / conmutador administrado que incluso le permita hacerlo sin enviar un mensaje de error de configuración. Puede configurarlo para varias IP, pero solo se puede habilitar una de las reglas de reenvío a la vez. Por lo tanto, puede deshabilitar uno habilitar otro y viceversa, pero eso es un desperdicio. Solo debe preocuparse por reenviar puertos si desea acceder a puertos / servicios específicos en una computadora LAN a través de su dirección IP externa. Digamos que si desea ejecutar 2 servidores web en 2 de sus PC LAN y poder acceder a ambos todo el tiempo, la forma más fácil de hacerlo es cambiar los puertos de los servicios, hacer que uno escuche en el puerto 80 y el otro en 8080 o puerto que desee. El 99% de los servicios le permitirán alojar / escuchar en cualquier puerto que desee. Si no especifica un puerto, volverá al valor predeterminado del servicio. Hay otras formas más avanzadas de hacer las cosas, pero esta es la forma más simple, y los métodos avanzados no se consideran ni se llaman "reenvío de puertos" a cualquiera que diga diferentes necesidades para volver a la escuela de redes.


1
"Ni siquiera he visto un enrutador / conmutador administrado que incluso le permita hacer eso ..." - El enrutador Technicolor TC7200.U de nivel de consumidor le permitirá agregar la configuración de reenvío para el mismo puerto (s) a diferentes direcciones IP. Sin embargo, no estoy seguro de si realmente reenvía.
Jonathan Cross

-2

No. Piensa en eso. Si un paquete llega a su dirección externa y al puerto UDP 80 (suponiendo que solo tenga una dirección IP externa), ¿cómo sabría su enrutador a cuál de las dos direcciones IP internas debe reenviarse?

Si desea alojar dos servicios diferentes, necesitará un puerto separado para cada uno.

¿Cómo sabe su enrutador reenviar direcciones? Por NAT.

Si compra un dominio, puede establecer ese nombre de dominio como el nombre de su computadora y el nombre de NETBIOS.

Por ejemplo, 2 computadoras diferentes que alojan sitios web en diferentes puertos internos pero en los mismos puertos externos deben tener nombres de dominios o debe configurar su servidor DNS interno con ambos dominios IP internos agregados a sus registros a los que se conecta el enrutador y cada vez que alguien intenta conectarse los enrutadores de nombre de dominio (no la dirección IP pública) NAT reenviarán la conexión en consecuencia.

No puede reenviar puertos exactamente idénticos a varias IP en la misma red, pero puede usar los mismos puertos externos siempre que los puertos internos sean diferentes, y viceversa cuando se habla del tráfico de red saliente


Por favor no copie otras respuestas.
Scott
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.