NAT
Cómo toda una casa u oficina comparte una sola dirección IP pública en internet.
NAT (network address translation, traducción de direcciones de red) es lo que permite que muchos dispositivos compartan una sola dirección IP pública. En tu casa, el celular, la notebook y la tele reciben cada uno una dirección privada como 192.168.0.12 que les da el router. Esas direcciones no significan nada en internet; se repiten en millones de casas. Tu proveedor de internet le da al router una única dirección pública, y el router traduce entre los dos mundos.
Cuando tu notebook manda un paquete a un sitio, el router reescribe el remitente de 192.168.0.12, puerto 51000 a su propia dirección pública y un puerto que elige él, por ejemplo 200.45.10.7, puerto 40001, y anota ese par en una tabla. Cuando la respuesta vuelve al puerto 40001, el router lo busca, reescribe el destino de nuevo hacia tu notebook y la deja pasar. Cada conversación tiene su propia fila, así el celular y la notebook nunca reciben las respuestas del otro.
NAT existe porque IPv4 tiene apenas unos 4300 millones de direcciones, muchas menos que los dispositivos conectados, y las estiró durante décadas. Un efecto secundario es que a los dispositivos detrás de NAT no se los puede contactar desde afuera salvo que hayan empezado ellos la conversación, lo que funciona como un escudo básico pero complica las videollamadas, los juegos online y tener un servidor propio (de ahí el port forwarding). Hoy los proveedores muchas veces suman una segunda capa, el carrier-grade NAT, e IPv6, con direcciones para cada dispositivo, lo vuelve innecesario. En la nube, un NAT gateway deja que servidores privados salgan a internet sin quedar expuestos.
Para quedarse
- Las direcciones privadas (como 192.168.x.x o 10.x.x.x) se repiten en todos lados y no son accesibles desde internet.
- El router reescribe direcciones y puertos, y guarda una tabla para devolver las respuestas.
- Los dispositivos detrás de NAT solo aceptan tráfico entrante de conversaciones que ellos empezaron.
- Existe porque a IPv4 le faltaron direcciones; IPv6 lo vuelve innecesario.
Para seguir leyendo
- Traducción de direcciones de red en Wikipedia
- RFC 1918, los rangos de direcciones privadas (en inglés)