NAT son las siglas de Network Address Translation, traducción de direcciones de red. El RFC 2663 lo define como un método para hacer corresponder direcciones IP de un ámbito con las de otro. En la práctica, es el motivo por el que los equipos de tu red usan direcciones que no existen en internet y aun así navegan.
Cómo funciona
Tu red interna usa direcciones privadas. El RFC 1918 reserva tres rangos para ello:
- 10.0.0.0 a 10.255.255.255
- 172.16.0.0 a 172.31.255.255
- 192.168.0.0 a 192.168.255.255
Estas direcciones se repiten en millones de redes, así que no sirven para hablar con internet. Cuando un equipo sale, el router o el cortafuegos cambia su dirección privada por la pública y apunta el cambio en una tabla. Cuando vuelve la respuesta, consulta la tabla y la entrega al equipo correcto.
Ejemplo de una tabla de NAT (las direcciones son inventadas)
| Equipo interno | Sale a internet como |
| 192.168.1.20, puerto 50000 | 203.0.113.5, puerto 40001 |
| 192.168.1.21, puerto 50000 | 203.0.113.5, puerto 40002 |
Los dos equipos comparten dirección pública. Lo que los distingue es el puerto, y por eso no se confunden las respuestas.
Los tipos de NAT
Variantes de NAT
| Tipo | Qué traduce | Para qué se usa |
| NAT básico | Solo la dirección IP | Cuando se dispone de un bloque de direcciones públicas |
| NAPT, o PAT | La dirección y el puerto | Compartir una dirección pública entre muchos equipos: es lo habitual en una oficina |
| Correspondencia estática o reenvío de puertos | Una dirección o un puerto fijos hacia un equipo interno | Publicar un servicio, como un servidor web o una VPN |
| CGNAT | Lo mismo que NAPT, pero en el operador | Que varios clientes compartan una dirección pública |
El RFC 3022 describe los dos primeros como «NAT tradicional», en el que las sesiones salen de la red privada, y admite las de sentido contrario como excepción, con correspondencias estáticas para equipos concretos. Eso es lo que hace el reenvío de puertos.
Los nombres cambian de un fabricante a otro: SNAT o enmascaramiento para la salida, DNAT o «servidor virtual» para la entrada. Conviene mirar lo que hace cada opción, no cómo se llama.
Por qué NAT no es un cortafuegos
La confusión viene de un efecto secundario. Como no hay entrada en la tabla hasta que alguien de dentro sale, un equipo de fuera no puede iniciar una conexión con uno interno. El propio RFC 2663 reconoce que mucha gente ve el NAT como un filtro de un solo sentido.
La guía de cortafuegos del NIST es más tajante:
- Dice que NAT es una tecnología de encaminamiento, aunque a veces se tome por una de cortafuegos.
- Dice que no forma parte de las funciones de seguridad de un cortafuegos, por mucho que la idea esté extendida.
- Y explica que el beneficio de que nadie pueda entrar desde fuera se logra igual con un cortafuegos con estado, sin los problemas que NAT causa a algunos protocolos.
Lo que NAT no hace, y un cortafuegos sí, es decidir con reglas qué sale y qué entra, ni registrar lo que ocurre. Además, no sirve de nada ante lo que ya empieza dentro: un equipo infectado que conecta hacia afuera pasa por el NAT como cualquier otro.
El reenvío de puertos deja un servicio interno al alcance de internet. Si no hay más remedio que publicarlo, lo normal es aislarlo en una DMZ para que un fallo en ese equipo no dé paso al resto de la red.
Los problemas que da
- VPN IPsec: NAT y la autenticación de IPsec chocan, porque cambiar direcciones altera los paquetes. Para eso existe NAT-Traversal: el RFC 3947 detecta si hay NAT en el camino y pasa el tráfico al puerto UDP 4500. Si tu VPN no se levanta, es de lo primero que hay que mirar.
- Sesiones que se cortan: la tabla no guarda las entradas para siempre. El RFC 4787 pide que una correspondencia UDP no caduque en menos de dos minutos, con alguna excepción, y ese tiempo puede ser configurable.
- Averiguar quién fue: el RFC 3022 avisa de que ocultar las direcciones internas también complica investigar problemas, incluidas las infracciones de seguridad. Si quieres saber qué equipo hizo algo, necesitas guardar los registros del cortafuegos.
CGNAT: cuando el NAT lo pone tu operador
Con CGNAT (Carrier-Grade NAT), el operador comparte una dirección pública entre varios clientes. Tu router queda detrás de otro NAT que no controlas, y eso tiene una consecuencia práctica: el reenvío de puertos de tu router deja de bastar, porque desde internet nadie llega hasta él.
Para esto, el RFC 6598 reservó el rango 100.64.0.0/10, pensado para conectar los equipos CGN del operador con el router del cliente. Si la dirección WAN de tu router empieza por 100.64 a 100.127, es muy probable que estés en ese caso. Si necesitas recibir conexiones desde fuera, por ejemplo una VPN entre sedes, pregunta a tu operador si puede darte una dirección pública.
Qué mirar en tu cortafuegos
Esta lista es criterio de esta web, no de ninguna de las normas citadas:
- Repasa los reenvíos de puertos. Cada uno es una puerta abierta: quita los que ya no se usen y limita el origen de los que queden, si puedes.
- No des por hecho que el NAT te protege. Comprueba que hay reglas de cortafuegos, y también de salida.
- Si tienes varias sedes, evita que dos usen el mismo rango privado. Con el típico 192.168.1.0/24 en ambas, enlazarlas por VPN se complica.
- Guarda los registros, con el tiempo suficiente para poder relacionar una conexión con el equipo que la hizo.