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
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| NAT | el cambio de la dirección de un paquete al pasar por la puerta | |
| Dirección pública | una dirección única en todo internet | 203.0.113.9 |
| Puerta de enlace | el aparato que une la red interna con internet | |
| Puerto | el número que dice qué programa recibe una conexión | 80 |
| Tabla de traducción | la lista de conexiones que la puerta recuerda | |
| Reenvío de puerto | una 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ónde | Origen | Destino |
|---|---|---|
| Sale del portátil | 192.168.50.23:50001 | 198.51.100.7:80 |
| Sale de la puerta | 203.0.113.9:62001 | 198.51.100.7:80 |
| Llega la respuesta a la puerta | 198.51.100.7:80 | 203.0.113.9:62001 |
| Entra al portátil | 198.51.100.7:80 | 192.168.50.23:50001 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Mira las tres máquinas del laboratorio
netlab statusSe 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
| Dentro | Fuera |
|---|---|
| 192.168.50.23:50001 | 203.0.113.9:62001 |
| 192.168.50.24:50001 | 203.0.113.9:62002 |
| 192.168.50.23:50002 | 203.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
sudo ip netns exec gw sysctl net.ipv4.ip_forwardSe 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 fuera | Va a | Para qué |
|---|---|---|
| 8080 | 192.168.50.31:80 | La web de la tienda |
| 8443 | 192.168.50.31:443 | La misma web, cifrada |
| Cualquier otro | Cerrado | Nada entra |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Lee las reglas con que arranca la puerta
sudo ip netns exec gw nft list rulesetSe 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?