¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Compartir internet con NAT

Después de esta lección: Puedo conectar una oficina a internet de forma segura.

Lección de 50 min3 comandosLaboratorio de pasarela NAT: masquerade y reenvío de puertos con nftables en tu navegador

Qué es NAT y por qué se usa

NAT, la traducción de direcciones de red, permite que todos los equipos de una oficina salgan a internet con una sola dirección pública. Es lo que hace tu router de casa cuando el móvil, la tele y la consola navegan a la vez.

Hoy ves cómo la puerta de la oficina cambia las direcciones, cómo recuerda cada conexión y cómo deja entrar solo lo que tú decides.

Al final de esta lección

Nota

Puedo conectar una oficina a internet de forma segura.

Palabras clave

PalabraQué significaEjemplo
NATel cambio de la dirección de un paquete al pasar por la puerta
Dirección públicauna dirección única en todo internet203.0.113.9
Puerta de enlaceel aparato que une la red interna con internet
Puertoel número que dice qué programa recibe una conexión80
Tabla de traducciónla lista de conexiones que la puerta recuerda
Reenvío de puertouna regla que manda un puerto de fuera a un equipo de dentro

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Las direcciones privadas no viajan por internet

Las direcciones privadas, como 192.168.50.23, las repiten miles de oficinas. Internet no sabría a cuál contestar, así que las tira.

La puerta de enlace tiene una dirección pública. Antes de que el paquete salga, cambia en él la dirección de origen por la suya. Cuando llega la respuesta, hace el cambio contrario.

Ejemplo resuelto: una petición con NAT

DóndeOrigenDestino
Sale del portátil192.168.50.23:50001198.51.100.7:80
Sale de la puerta203.0.113.9:62001198.51.100.7:80
Llega la respuesta a la puerta198.51.100.7:80203.0.113.9:62001
Entra al portátil198.51.100.7:80192.168.50.23:50001

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Mira las tres máquinas del laboratorio

Comando
netlab status

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Qué hay en el laboratorio

Hay tres máquinas. lan es el equipo privado de la oficina. srv hace de servidor de internet. gw es la puerta de enlace entre los dos.

Fíjate en que gw tiene dos direcciones, una en cada red, y en qué páginas web sirven lan y srv. srv está en una red de documentación, que hace de internet.

La puerta recuerda cada conexión con un puerto

Muchos equipos salen con la misma dirección pública. ¿Cómo sabe la puerta a quién devolver cada respuesta?

Con el puerto. Para cada conexión, la puerta elige un puerto libre de fuera y lo apunta en su tabla de traducción. La respuesta llega a ese puerto y la tabla dice a quién va.

Ejemplo resuelto: una tabla de traducción

DentroFuera
192.168.50.23:50001203.0.113.9:62001
192.168.50.24:50001203.0.113.9:62002
192.168.50.23:50002203.0.113.9:62003

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Pregunta a la puerta si reenvía paquetes

Comando
sudo ip netns exec gw sysctl net.ipv4.ip_forward

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Reenviar y traducir son dos cosas

La respuesta acaba en = 1: la puerta pasa paquetes de una red a otra. Es lo mínimo para que sea un router.

Pasar paquetes no cambia sus direcciones. El cambio lo hace una regla de NAT, aparte. Sin ella, los paquetes salen con la dirección privada y nadie contesta.

Un reenvío de puerto abre una puerta concreta

La tabla de traducción nace cuando alguien de dentro empieza una conexión. Desde fuera, nadie puede empezar una hacia la oficina.

Imagina que la oficina tiene una web que debe verse desde internet. Entonces se crea un reenvío de puerto. Lo que llegue a un puerto de la puerta va a un equipo y un puerto de dentro. Solo ese puerto.

Ejemplo resuelto: los reenvíos de una tienda

Puerto de fueraVa aPara qué
8080192.168.50.31:80La web de la tienda
8443192.168.50.31:443La misma web, cifrada
Cualquier otroCerradoNada entra

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Lee las reglas con que arranca la puerta

Comando
sudo ip netns exec gw nft list ruleset

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Qué dice el filtro de la puerta

Busca la palabra policy drop en la lista. Quiere decir que todo paquete que cruza la puerta se tira, salvo que una regla lo deje pasar.

Ese es el filtro que protege la oficina. Cada reenvío de puerto debería ir acompañado de una regla que permita solo ese paso, y nada más ancho.

Un error frecuente

Advertencia

Mucha gente cree que NAT protege la red. Solo esconde las direcciones de dentro. Lo que protege es el filtro que tira lo que no se permite. Con un reenvío, quien llegue a ese puerto llega al equipo de dentro.

Para ir más lejos: una tabla casi llena

Una puerta solo tiene unos 64000 puertos libres para fuera. Si una oficina abre muchísimas conexiones a la vez, se acaban.

Prueba new_port con una tabla que ocupe 62001, 62002 y 62003, y pide el primer puerto libre desde 62001. ¿Qué devuelve cuando todos están ocupados hasta el 65535?

Sobre este laboratorio y su código: Laboratorio de pasarela NAT: masquerade y reenvío de puertos con nftables en tu navegador

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.