jedg_logo

VPN Site-to-Site

VPN Site-to-Site con Tailscale detrás de CG-NAT

En este despliegue se ha configurado una VPN site-to-site entre una red local y una red en la nube (AWS).
Dado que el entorno local está detrás de CG-NAT y no es posible abrir puertos ni establecer túneles IPsec o WireGuard tradicionales, se ha optado por Tailscale, que utiliza una red privada basada en WireGuard y permite el paso del tráfico sin depender del reenvío de puertos.

Tailscale permite anunciar y aceptar subredes de forma automática, de modo que ambas redes se interconectan y se comportan como una sola red privada.

Esquema de la red

Diagrama oficial AWS

Subredes configuradas

  • Nube (AWS): 192.168.14.0/25
  • Local: 192.168.14.128/25

Cada una de estas subredes tiene su propia puerta de enlace, y a través de Tailscale se les ha permitido publicar sus rutas internas.

Instalación de Tailscale

Se ha instalado Tailscale en ambas máquinas (nube y local) para que cada una funcione como gateway de su red.

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

Tras ejecutar el comando anterior, se ha iniciado sesión con la cuenta del dominio de Tailscale correspondiente para vincular ambos nodos a la misma red privada.

Publicación de las subredes

Una vez enlazadas las máquinas, cada una publica su propia subred para que el otro extremo pueda enrutar el tráfico hacia ella.

  • En la nube (AWS):
sudo tailscale up --advertise-routes=192.168.14.0/25
  • En la red local:
sudo tailscale up --advertise-routes=192.168.14.128/25

Aceptación de rutas

Desde el panel de administración de Tailscale, en la sección Routes, se han aceptado las rutas anunciadas por ambas máquinas.
Esto permite que Tailscale actúe como un puente entre las dos subredes y gestione automáticamente la comunicación entre ellas.

Enrutamiento entre ambas redes

Finalmente, se han añadido rutas manuales para asegurar que el tráfico de una red se dirija correctamente hacia la otra a través de los nodos de Tailscale:

# En la red local: enviar tráfico hacia la nube
sudo ip route add 192.168.14.0/25 via 192.168.14.129

# En la nube: enviar tráfico hacia la red local
sudo ip route add 192.168.14.128/25 via 192.168.14.1

Con estas rutas, cualquier equipo de la red local puede acceder a los recursos en la nube, y viceversa, sin configuraciones adicionales.

Resultado final

El resultado es una VPN site-to-site totalmente funcional, establecida con Tailscale, sin abrir puertos ni exponer servicios.
Ambas subredes (192.168.14.0/25 y 192.168.14.128/25) se comportan como una sola red privada extendida.
El tráfico viaja cifrado mediante WireGuard y Tailscale se encarga de mantener la conexión activa incluso ante cambios de IP o reinicios de red.

Proyectos relacionados

Red de JEDG

Red de JEDG es la infraestructura de red que conecta y organiza los servicios de JEDG, diseñada para ofrecer conectividad segura, segmentada y escalable entre entornos virtualizados, contenedores y redes públicas.

IT Funcionando

Generador SSL

Sistema en Node.js que genera certificados SSL locales mediante una Autoridad Certificadora propia. Permite crear, firmar y descargar certificados para dominios o IPs sin depender de servicios externos, ideal para entornos de desarrollo o redes internas.

Herramientas Funcionando

Página de bloqueo

Página de bloqueo de página web que se muestrá cada vez que se quiere acceder a un dominio bloqueado por el mismo administrador, en vez de mostrar la web original se muestra esa página.

Herramientas Funcionando