Saltar al contenido principal

¿Qué es el NAT traversal?

La mayoría de los dispositivos no tienen su propia dirección pública de internet; se encuentran detrás de la traducción de direcciones de red (NAT) en un router, que comparte una sola dirección pública entre muchos dispositivos internos. Esto está bien para conectarse con servidores, pero significa que dos de esos dispositivos no pueden simplemente comunicarse entre sí de forma directa. NAT traversal es el conjunto de técnicas que les permiten establecer una conexión directa de todos modos.

En resumen

El NAT traversal es el conjunto de técnicas que permiten a dos dispositivos detrás de routers (NAT) formar una conexión directa, aunque ninguno tenga una dirección pública a la que el otro pueda conectarse.

Cómo funciona NAT traversal

  • 01

    Un servicio de coordinación (señalización) ayuda a los dos pares a conocer la dirección y el puerto visibles externamente de cada uno: cómo los ve el mundo a través de sus NAT.

  • 02

    STUN es una forma habitual de que un par descubra su propia dirección y puerto de cara al exterior tal como se ven desde fuera de su NAT.

  • 03

    Con esa información, los pares intentan el «hole punching»: ambos envían paquetes hacia el otro al mismo tiempo, de modo que cada NAT abre una ruta para el tráfico del otro.

  • 04

    Cuando no se puede abrir una ruta directa (algunos NAT estrictos lo bloquean), un retransmisor (a menudo llamado TURN) puede reenviar el tráfico como respaldo, a costa de un salto adicional.

Hole punching UDP, paso a paso

En un flujo típico, cada par contacta con un servidor de señalización y, mediante STUN, conoce la dirección y el puerto públicos que su NAT está presentando. El servidor comparte el candidato externo de cada par con el otro. A continuación, ambos pares envían paquetes a la dirección externa del otro de forma aproximadamente simultánea. El primer paquete saliente de cada lado hace que su NAT cree una asignación temporal a la espera de una respuesta; cuando llega el paquete del otro lado, coincide con esa asignación y pasa. Una vez que cruzan unos cuantos paquetes en cada dirección, queda abierta una ruta directa y bidireccional, y el túnel cifrado se ejecuta sobre ella.

Cuándo se necesita un retransmisor

El hole punching tiene éxito con la mayoría de los tipos de NAT, pero algunos (los llamados NAT simétricos, o los cortafuegos corporativos estrictos) asignan puertos impredecibles o bloquean el intento, de modo que no se puede formar una ruta directa. La solución de respaldo es un retransmisor: un servidor que ambos pares pueden alcanzar y que reenvía su tráfico. En los sistemas bien diseñados, el retransmisor solo reenvía paquetes ya cifrados que no puede leer; añade latencia y un salto, pero no ve los datos. Una buena mesh trata los retransmisores como último recurso y solo los utiliza cuando un túnel directo es imposible.

Cómo se relaciona esto con Vexaro Mesh (en desarrollo)

Vexaro Mesh, actualmente en desarrollo, está diseñado con NAT traversal integrado: los pares detrás de NAT se conectan directamente siempre que la red lo permita, y solo a través de un retransmisor cuando no lo permite. Las pasarelas están diseñadas para levantar túneles cifrados sobre cualquier enlace, sin redirección de puertos ni direcciones públicas, manteniendo cortas las rutas sede a sede.

Ver las funciones previstas

Preguntas frecuentes

¿Por qué dos dispositivos detrás de NAT no pueden conectarse directamente sin más?
Porque ninguno tiene una dirección pública que el otro pueda alcanzar, y sus routers descartan por defecto el tráfico entrante no solicitado. NAT traversal sortea esto haciendo que ambos lados inicien la conexión a la vez (hole punching) después de que un servicio de señalización indique a cada uno cómo aparece el otro desde el exterior, de modo que cada router abra una ruta para los paquetes del otro.
¿NAT traversal requiere abrir puertos en mi cortafuegos?
Normalmente no. El objetivo de técnicas como la perforación de NAT es establecer conectividad sin redirección manual de puertos: los pares crean por sí mismos las asignaciones temporales necesarias al iniciar tráfico saliente. Los sistemas que se basan en ello están diseñados para funcionar detrás de NAT sin redirección de puertos ni direcciones públicas, y Vexaro Mesh está diseñado para no necesitar ni lo uno ni lo otro.

Siga cómo se construye Vexaro Mesh.

Vexaro Mesh está en desarrollo. Cuéntenos sobre sus sedes y le contactaremos sobre el acceso anticipado.