Descargo de responsabilidad: esto se simplifica. Ignora por completo el concepto de máscara de red y hace algunas suposiciones (que, para ser justos, son ciertas en la mayoría de los casos).
Mi respuesta es bastante larga y compleja, ya que no es una explicación genérica de NAT como la mayoría de las otras. Específicamente construye el conocimiento necesario para comprender el escenario y luego explica cómo hacerlo funcionar.
Tenga en cuenta que, como señaló Paolo Ciarrocchi, este escenario solo es posible con direcciones IP privadas (RFC 1918). La dirección IP pública es asignada por IANA y sus subsidiarias. A menos que alguien decida usar indebidamente el espacio de direcciones públicas, este escenario es imposible.
Antes de responder la pregunta, tenemos que aclarar qué significa “red”.
Una red es:
- Un grupo de computadoras que comparten el número de red, por ejemplo, todas las computadoras que pertenecen a la red numeradas 192.168.0.0. Esta es una red en el sentido lógico .
- Un grupo de computadoras físicamente conectadas entre sí, hablando entre sí sin un enrutador en el medio. Esta es una red en el sentido físico .
Una red física podría, en teoría, transportar múltiples redes lógicas. Esto, en IP sobre redes Ethernet (su red habitual de hogar / oficina), casi nunca se hace debido a varias complejidades en la forma en que IP opera a través de Ethernet.
Como según la primera definición, dos computadoras con la misma dirección IP pertenecen a la misma red, supondré que la pregunta significa “dos computadoras que comparten la misma configuración IP en dos redes físicas separadas”.
Entonces, ¿cómo funciona la comunicación entre diferentes redes?
Las diferentes redes lógicas, para comunicarse, necesitan computadoras entre ellas que actúen como puertas de enlace . Podrían ser enrutadores, servidores o incluso computadoras personales. Una puerta de enlace está conectada directamente a la red a la que sirve (es decir, tiene una dirección IP), y también está conectada a las redes a las que se debe llegar a través de ella, ya sea directamente o a través de otras puertas de enlace.
Cuando una computadora quiere enviar datos a una computadora que no es de la misma red lógica, en su lugar la envía a la puerta de enlace. La puerta de enlace luego decide cómo enrutar los datos a la otra red. Esto depende en gran medida de la implementación, pero podría hacerlo enviando los datos a través de otro puerto físico, un túnel VPN, un puente inalámbrico, un puerto óptico, etc. El elemento de configuración que determina lo que sucede se denomina tabla de enrutamiento .
Pero, ¿qué sucede si una computadora intenta enviar datos a otra computadora en otra red física con la misma dirección IP?
Bueno, dado que la forma en que las computadoras toman decisiones de enrutamiento se basa en la dirección IP (¡están aquí por este motivo!), Esto no funcionaría. Ningún dato abandonaría la computadora, ya que todos los sistemas operativos simplemente reconocerían que el destino de los datos es la misma computadora. Incluso si el sistema operativo fuera, por alguna razón, lo suficientemente tonto como para enviar los datos a la puerta de enlace, la puerta de enlace simplemente lo enviaría de vuelta.
¿Y si las dos computadoras realmente necesitaran enviarse datos entre ellas y no fuera posible reconfigurar una de las redes?
Solo dije que no funcionaría, pero … Hay una solución. Por lo general, los ingenieros de redes lo consideran astuto y peligroso por varias razones. Una de esas razones es universalmente reconocida, y es que hace que las cosas sean mucho más complicadas de lo que deben ser.
La solución es NAT o traducción de direcciones de red . Puede que ya hayas oído hablar de eso. La aplicación más habitual de NAT es compartir una dirección IP pública entre varias computadoras con direcciones IP privadas. Esto se hace en pequeñas oficinas y hogares, porque simplemente no hay suficientes direcciones IP para cada dispositivo conectado. (IPv6, que resuelve este problema, apenas comienza a usarse, pero pasará mucho tiempo antes de que todos se den cuenta).
Entonces, ¿qué puede hacer NAT por mí?
En general, NATting significa tomar un paquete que sale de una red y cambia su dirección de origen o de destino. Esto tiene infinitas posibilidades.
Ahora, imaginemos que nuestras dos computadoras pertenecen a dos redes físicas diferentes, y que ambas tienen la misma dirección IP 192.168.50.1, y que, por simplicidad, la puerta de enlace está conectada directamente a ambas redes físicas también con la misma dirección IP 192.168. 50.2.
Elija un número de red arbitrario, diferente del que ya tenemos, como 192.168.51.0. Decidimos que cada una de las dos redes verá la otra red como si tuviera este número de red en lugar de la misma.
Todo lo que queda es configurar la puerta de enlace para aplicar correctamente la traducción: si un paquete proviene de una red con el origen 192.168.50.1 y el destino 192.168.51.1, envíelo a la otra red, pero cambie el origen a 192.168.51.1 y el destino a 192.168.50.1. De esta manera, la computadora en la otra red verá que la fuente del paquete es 192.168.51.1, y cuando intente responder al paquete, lo usará como su destino, y la puerta de enlace se traducirá en reversa.
En otras palabras, cada red ve a la otra red como si tuviera direcciones diferentes a las suyas, y la puerta de enlace mantiene esta ilusión real al cambiar las direcciones a medida que los paquetes la atraviesan.
¡Espera un segundo! ¿No significa esto que tengo que volver a configurar mi software para usar las nuevas direcciones IP? (esto ya no responde la pregunta, está aquí para los más curiosos)
Absolutamente. Y además, no todos los protocolos de red están contentos con las puertas de enlace que traducen direcciones en tránsito. Tales protocolos hacen uso del llamado principio de extremo a extremo , según el cual las puertas de enlace entre redes son solo máquinas tontas que transmiten paquetes solo de acuerdo con sus direcciones, de manera fija y sin manipularlos de ninguna manera.
Esto es algo manejable cuando tiene una traducción de 1 a 1 como en nuestro escenario, pero en los casos en que varias direcciones IP se traducen a una sola (o algunas) direcciones IP, como en el escenario de hogar / oficina, obtiene más Complicado. Cosas como juegos en línea, Skype y servidores web de alojamiento se rompen y necesitan una configuración adicional (aunque hoy en día el software y las puertas de enlace pueden comunicarse entre sí para resolverlo automáticamente, con un sistema llamado UPnP, Universal Plug and Play ).
Gracias por leer. Me gustaría mejorar estas respuestas con esquemas y dibujos. Avíseme si alguna parte está ahora clara y no dude en sugerir modificaciones.