Voy a actualizar este tema con los resultados "temporales" obtenidos.

En efecto gracias a la tecnica del UDP HOLE PUNCHING he podido connectar conectar un servidor y un cliente de VPN sin necesidad de abrir puertos, pero hay un PERO.

Como bien sabreis ultimamente a los ISP les ha dado por poner CG-NAT, el cual es una ENORME PUTADA, ya que la tecnica del UDP HOLE PUNCHING no funciona bajo un CG-NAT ya que hace un PORT RANDOMIZE y entonces el Source Port del servidor VPN cambia a cada conexion que hace, por ejemplo.

Si tengo un PC con el servidor VPN en el puerto 1194 UDP y detras de un CG-NAT, al lanzar paquetes hacia otro equipo seguramente ese 1194 sale del CG-NAT por otro puerto, el cual NO SABEMOS ya que aplica un PORT RANDOMIZE y quizas acaba saliendo por el 55123.

He probado a usar un 3r servidor donde el "server vpn" manda unos paquetes para poder descubrir el SRC PORT tras el CG-NAT, pero claro, esa asignacion a la espera de respuesta queda solo para ese 3r servidor, a la que el cliente intenta conectar por ese agujero el CG-NAT bloquea la conexion ya que no era el destinatario original, pues en eso consiste el HOLE PUNCHING.

Tenéis alguna idea o conocéis algun procedimiento para "saltar" esta barrera? Se que es posible pedir a la compañia que nos saque del CG-NAT, pero, eso no es una opcion valida porque al final el que correra el servidor VPN puede que este incluso detras de una conexion de movil compartida, donde no hay manera de abrir/redireccionar puertos tampoco.

Se que lo que pido es bastante complejo, pero bueno, nunca se sabe donde puede dar uno con la solución!

Un saludo.

P.D: @krampak te cito por si acaso 🙂