¿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.
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