Qué es NAT (traducción de direcciones de red)

NAT (Network Address Translation, traducción de direcciones de red) es el proceso por el que un router reescribe las direcciones IP, y normalmente también los números de puerto, de los paquetes que pasan por él. Su función más habitual es que todos los dispositivos de tu red doméstica compartan una sola dirección IPv4 pública: el router cambia la dirección privada de cada dispositivo por la suya pública al salir y guarda la correspondencia para que las respuestas encuentren el camino de vuelta.

NAT es tan universal que casi todo el mundo lo usa a diario sin saber que existe. También está detrás de varias molestias conocidas, desde el reenvío de puertos hasta los avisos de «NAT estricto» en las consolas de videojuegos. Esta guía explica cómo funciona y por qué IPv6 se diseñó para prescindir de él.

Por qué existe NAT

Una dirección IPv4 tiene 32 bits, lo que permite unos 4300 millones de direcciones. Son muchas menos que la cantidad de móviles, portátiles, televisores y sensores conectados hoy. Para estirar las existencias, la RFC 1918 reservó tres bloques de direcciones privadas que cualquiera puede usar internamente, pero que nunca se enrutan en internet público:

RangoCIDRUso habitual
10.0.0.0 – 10.255.255.25510.0.0.0/8Redes corporativas, algunos routers de operadores
172.16.0.0 – 172.31.255.255172.16.0.0/12Redes corporativas, valores predeterminados de Docker
192.168.0.0 – 192.168.255.255192.168.0.0/16La mayoría de los routers domésticos

Millones de hogares pueden usar 192.168.1.0/24 al mismo tiempo porque esas direcciones nunca salen de casa. NAT es el puente entre ese mundo privado e internet público. Nuestra guía sobre direcciones IP públicas y privadas trata el tema de las direcciones con más detalle.

Cómo funciona NAT, paso a paso

Supón que tu portátil, en 192.168.1.20, abre una página web en un servidor en 198.51.100.80, y que la dirección pública de tu router es 203.0.113.7.

  1. El portátil envía un paquete desde 192.168.1.20:51000 a 198.51.100.80:443. El puerto de origen 51000 lo elige el portátil al azar.
  2. El router sustituye el origen por su propia dirección pública y un puerto que elige él, por ejemplo 203.0.113.7:40001, y anota la correspondencia en su tabla NAT.
  3. El servidor responde a 203.0.113.7:40001. No tiene ni idea de que el portátil existe.
  4. El router busca el puerto 40001 en su tabla, vuelve a escribir el destino como 192.168.1.20:51000 y entrega el paquete al portátil.

Una tabla NAT simplificada tiene este aspecto:

Dirección internaDirección externa (traducida)Host remotoProtocolo
192.168.1.20:51000203.0.113.7:40001198.51.100.80:443TCP
192.168.1.31:62210203.0.113.7:40002198.51.100.80:443TCP
192.168.1.45:5353203.0.113.7:40003192.0.2.53:53UDP

Las entradas caducan tras un periodo de inactividad. Las correspondencias TCP suelen eliminarse cuando se cierra la conexión; las UDP, que no tienen «cierre», caducan tras un breve periodo de inactividad. Por eso las conexiones inactivas de larga duración a veces se rompen en silencio detrás de un NAT y por eso las aplicaciones envían paquetes keepalive.

Tipos de NAT: SNAT, DNAT y PAT

NAT de origen (SNAT)

El NAT de origen reescribe la dirección de origen de los paquetes salientes. El ejemplo anterior es un NAT de origen. En los cortafuegos de Linux, la variante que usa automáticamente la dirección que tenga en ese momento la interfaz de salida se llama masquerading (enmascaramiento).

NAT de destino (DNAT)

El NAT de destino reescribe la dirección de destino de los paquetes entrantes. Así funciona el reenvío de puertos: una regla como «envía el puerto TCP 8080 que llega a 203.0.113.7 a 192.168.1.50:80» es una regla DNAT. Los balanceadores de carga usan la misma idea para repartir el tráfico entrante entre varios servidores.

PAT, también llamado NAPT o NAT overload

La traducción de direcciones de puerto (Port Address Translation) traduce los puertos además de las direcciones, y eso es lo que permite que muchos dispositivos internos compartan a la vez una única dirección externa. Cada conexión se distingue por su puerto traducido. Casi todos los routers domésticos hacen PAT, y cuando se habla de «NAT» en un entorno doméstico, se refiere a PAT.

NAT estático (uno a uno)

El NAT estático asigna de forma permanente una dirección interna a una dirección externa. Se usa en redes empresariales y plataformas en la nube, donde a una máquina virtual con dirección privada se le da una IP pública «elástica» o «flotante» dedicada.

Reenvío de puertos y conexiones entrantes

NAT gestiona automáticamente las conexiones salientes, pero un paquete entrante no solicitado que llega al router no tiene entrada en la tabla, así que el router no sabe qué dispositivo debe recibirlo y lo descarta. Para tener un servidor en casa debes crear una regla de reenvío de puertos:

  1. Dale al servidor una dirección local fija, idealmente con una reserva DHCP en el router.
  2. En la página de reenvío de puertos del router, reenvía el puerto externo (por ejemplo, el TCP 25565 para un servidor de Minecraft) a la IP y el puerto locales del servidor.
  3. Permite el puerto en el cortafuegos del propio servidor.
  4. Haz la prueba desde fuera de tu red con nuestro comprobador de puertos abiertos. Probar desde dentro suele fallar aunque la regla sea correcta, porque muchos routers no admiten el NAT loopback (hairpinning).

Las aplicaciones también pueden pedir reenvíos automáticamente con UPnP IGD o NAT-PMP/PCP. Es cómodo para juegos y aplicaciones de voz, pero permite que cualquier software de tu red abra puertos, así que mucha gente prefiere desactivar UPnP y añadir las reglas a mano. Consulta nuestra lista de puertos de red habituales para identificar para qué se usa un puerto.

Nota: Si el reenvío de puertos está bien configurado y aun así no funciona, comprueba si la dirección WAN de tu router coincide con la IP pública que aparece en la página ¿Cuál es mi número de IP?. Si no coincide, estás detrás de un segundo NAT: otro router en casa o el NAT de nivel de operador de tu proveedor de internet.

Tipos de NAT y atravesar NAT

Las aplicaciones punto a punto, como las videollamadas, los juegos en línea y WebRTC, necesitan que dos dispositivos, ambos detrás de un NAT, hablen directamente. Que funcione o no depende de cómo se comporte cada NAT. La terminología antigua (de la RFC 3489) clasifica los NAT en full cone, restricted cone, port-restricted cone y symmetric. La diferencia clave es si el NAT reutiliza el mismo puerto externo para todos los destinos (fácil de atravesar) o elige uno nuevo para cada destino (simétrico, difícil de atravesar). Las consolas de videojuegos lo resumen como NAT abierto, moderado o estricto.

El conjunto de herramientas estándar para atravesar NAT es:

  • STUN, que permite a un dispositivo descubrir su dirección y puerto públicos tal como se ven desde fuera.
  • Hole punching, en el que ambos extremos se envían paquetes a la vez, creando entradas NAT coincidentes en los dos lados.
  • TURN, un servidor de retransmisión que se usa como alternativa cuando la conexión directa es imposible.
  • ICE, que prueba todo lo anterior y elige la mejor ruta que funcione.

¿Es NAT un cortafuegos?

NAT no es una función de seguridad, pero tiene un efecto secundario que lo parece: como las conexiones entrantes no solicitadas no tienen correspondencia, se descartan. Un cortafuegos de verdad hace explícito ese comportamiento y añade reglas, registros y protección frente a cosas que NAT ignora. Los routers domésticos combinan ambos y aplican un cortafuegos con estado junto con NAT. No confíes solo en NAT; UPnP, los reenvíos de puertos y el malware que hace conexiones salientes lo eluden.

Por qué IPv6 no necesita NAT

Las direcciones IPv6 tienen 128 bits. Un hogar típico recibe un prefijo /64 o mayor, que contiene muchas veces más direcciones que todo el internet IPv4. Cada dispositivo puede tener su propia dirección única a nivel global, así que no hay escasez que NAT tenga que resolver.

Eso restaura el modelo extremo a extremo original de internet: los dispositivos pueden conectarse directamente entre sí, sin trucos de asignación de puertos, y las aplicaciones punto a punto se vuelven más sencillas. La seguridad la aporta el cortafuegos IPv6 con estado del router, que por defecto bloquea las conexiones entrantes no solicitadas igual que hacía NAT, y te permite abrir puertos concretos para dispositivos concretos. Un mecanismo relacionado, NPTv6 (RFC 6296), puede traducir un prefijo IPv6 a otro, pero rara vez hace falta en redes domésticas. Más información en nuestra comparación de IPv4 e IPv6.

Preguntas frecuentes

¿NAT ralentiza mi internet?

No de forma apreciable. Traducir cabeceras es una operación sencilla que los routers domésticos hacen por hardware o con software muy optimizado. Los problemas solo aparecen cuando la tabla NAT del router se llena, algo que puede pasar con un número muy grande de conexiones simultáneas en equipos modestos.

¿Qué es el doble NAT?

Doble NAT significa que tu tráfico se traduce dos veces, normalmente porque tienes tu propio router conectado a un módem del operador que también enruta. Navegar funciona bien, pero el reenvío de puertos requiere reglas en ambos dispositivos. Poner el equipo del operador en modo puente elimina una capa.

¿Pueden los sitios web ver mi IP privada?

No con las conexiones normales, porque NAT la sustituye por tu dirección pública. WebRTC en los navegadores puede exponer direcciones locales en algunas configuraciones, aunque los navegadores modernos ya las ocultan con nombres de host mDNS aleatorios.

¿Cómo sé si estoy detrás de un NAT?

Compara la dirección IP que aparece en los ajustes de red de tu dispositivo con tu IP pública. Si tu dispositivo tiene una dirección privada como 192.168.x.x o 10.x.x.x, se está usando NAT.

Pruébalo tú mismo

Pon en práctica esta guía con nuestras herramientas gratuitas.

Comentarios

Aún no hay valoraciones

Inicia sesión para valorar esta herramienta.

Comparte un consejo, haz una pregunta o cuenta cómo te funcionó la herramienta.

Aún no hay comentarios. Sé el primero en contar cómo te fue.

Sigue leyendo

Copiado al portapapeles