networking routing ip nat

networking - ¿Cómo se conectan dos computadoras a la misma dirección externa a través de NAT?



routing ip (5)

Si tengo dos computadoras internas conectadas a la misma dirección IP externa a través de un enrutador NAT, ¿cómo puede el enrutador hacer llegar el tráfico a la computadora interna correcta? Tengo entendido que NAT reenvía los paquetes entrantes a la computadora que recientemente envió los paquetes salientes a la dirección IP del remitente [paquete entrante]. Dado que ambas computadoras están enviando a la misma dirección, ¿el enrutador reenvía el paquete a ambas? Si ese es el caso, ¿es responsabilidad del software del cliente determinar qué paquetes son relevantes?

¿Es posible si ambas computadoras intentan conectarse al mismo puerto?


Cuando abre un zócalo, debe dirigirse a un puerto del sistema de destino y abrir un puerto de escucha conjugada en su propio sistema para recibir cualquier respuesta. Tienes que enviar al sistema de destino tu puerto de escucha.

Tener más de un sistema usando el mismo módem.

Cuando inicia un navegador web y accede a www.google.com:80, su navegador obtiene / busca un puerto conjugado que no sea del sistema del sistema para escuchar. Digamos que el puerto conjugado es 10000. El puerto de escucha es para recibir el flujo http de Google.

Luego, su hijo sentado a su lado también busca www.google.com:80 y su sesión de Google de la Play Station o Xbox, sea cual sea, también se le asigna el puerto conjugado 10000.

Ambos están sentados detrás de un módem por cable, y detrás del módem por cable está su enrutador inalámbrico. Y ambos sistemas están detrás del enrutador inalámbrico: todos están en esa secuencia, en cuanto a topología de red.

Para evitar la colisión de la dirección del puerto en el enrutador / módem

Digamos que su compañía de cable DHCP asigna su módem dirección IP4 72.72.72.72. Pero el enrutador inalámbrico DHCP asigna 192.168.0.10 a su sistema y 192.168.0.11 al sistema de su hijo.

Cuando el marco que lleva la información de sus puertos de escucha pasa a través de su enrutador NAT, traduciría uno o ambos puertos de escucha. Digamos el puerto 15000 para su página y el puerto 16000 para la página de su hijo.

Su enrutador inalámbrico envía sus solicitudes al servidor de Google desde 72.72.72.72:15000 y 72.72.72.72:16000.

El servidor de Google responde individualmente a 72.72.72.72:15000 y 72.72.72.72:16000 y cuando el enrutador inalámbrico encuentra la respuesta, accede a la asignación que ha almacenado y traduce 72.72.72.72:15000 a 192.168.0.10:10000 para llegue a su sistema, pero traduce 72.72.72.72:16000 a 192.168.0.11:10000 para alcanzar el sistema de su hijo.

Ejecutando servidores web / game / ftp / etc

Pero qué pasa si tiene un servidor web o un servidor ftp ejecutándose en su sistema. ¿Qué sucede si tiene dos sistemas y ambos tienen un servidor web y ambos servidores web están escuchando en el puerto 80?

Digamos que las direcciones IP locales registradas / asignadas con su enrutador inalámbrico de su primer sistema de servidor web es 192.168.0.30 y su segundo sistema de servidor web es 192.168.0.40.

El enrutador inalámbrico tendría una página web de configuración, por lo general, por defecto 192.168.0.1:80, a menos que lo haya cambiado. Habría una pestaña en la página donde podría definir / reservar asignaciones de puertos de aplicaciones.

Podrías registrarte con tu enrutador inalámbrico para reservar el mapeo.

192.168.0.30:80 => outgoing port 8080 192.168.0.40:80 => outgoing port 8088

Para que tenga que llamar a sus amigos, sus servidores de juegos / web son direccionables a través de 72.72.72.72:8080 y 72.72.72.72:8088 respectivamente, donde el enrutador inalámbrico excluiría a su puerto 8080 y 8088 de su propio uso de NAT dinámico.

Por supuesto, 72.72.72.72 es tan bueno como solo antes de que su ISP DHCP decida renovar la dirección ip4 de su módem para decir, 72.72.90.200. Después de lo cual tendría que llamar por teléfono / correo electrónico a sus amigos y decirle "Hey", las direcciones de los servidores cambiaron a 72.72.90.200:8080 y 72.72.90.200:8088 respectivamente. O puede suscribirse al servicio dinámico de dns (ddns) para usar un dominio con nombre donde el servicio de ddns necesitará que instale una sencilla utilidad de latido en su sistema para ayudarles a monitorear la variación de la dirección. La traducción de DDNS es un tema / estrategia por separado.

Modems NAT

Los contratos de ISP más nuevos le proporcionan un módem que tiene NAT. Si es así, debe apagar el que está en su módem o el de su enrutador inalámbrico. No debe usar ambos: ¿qué sentido tiene traducir dos veces porque NAT es simplemente para evitar la colisión de direcciones? Cuando desactiva NAT de su enrutador inalámbrico, puede funcionar como un conmutador central y no como un enrutador para que pueda conectarlo al módem utilizando uno de sus conectores LAN en lugar de su conector WAN.


El enrutador administra los puertos "fuente" que están separados para cada computadora. Mientras se está conectando al puerto 80 en el "destino", el enrutador puede asignar el puerto de origen a algún puerto de número alto.

Wikipedia resume como

La traducción de direcciones de red implica volver a escribir las direcciones IP de origen y / o destino y, por lo general, también los números de puerto TCP / UDP de los paquetes IP a medida que pasan a través del NAT. Las sumas de comprobación (tanto IP como TCP / UDP) también deben reescribirse para tener en cuenta los cambios.


RFC3022 proporciona mucha información sobre cómo funciona esto


Utiliza diferentes puertos para el tráfico externo entrante, y el NAT luego enruta los paquetes en un puerto a una dirección IP interna, y los paquetes desde el otro puerto a la otra dirección IP interna ... La solicitud inicial de cada computadora interna, cuando Pasa a través del NAT a la salida, establece qué puerto se utilizará para el tráfico entrante desde la dirección IP externa, y le indica al servidor externo qué puerto enviará nuevamente el tráfico para esa conexión.


Ya se proporcionan buenas respuestas, pero aquí hay otro ejemplo:

HOST A addr HOST B addr 10.1.0.2:4040 10.1.0.3:4040 ----------------------------------------- NAT 200.50.50.28:4040 200.50.50.28:4041 (what external host sees)

200.50.50.28 es la IP global (internet) del enrutador.

Cada número de puerto es único en la tabla NAT. Y, por supuesto, el enrutador hace todo el trabajo de modificar las direcciones de origen y destino de forma transparente.