DEV Community

Robert Orozco
Robert Orozco

Posted on

🔐 Cómo configurar una HA CLOUD VPN en Google Cloud paso a paso

En este artículo aprenderás a desplegar una VPN de Alta Disponibilidad (HA VPN) en Google Cloud con enrutamiento dinámico mediante BGP. Esta configuración es ideal para escenarios donde se requiere conectividad resiliente entre entornos on-premise simulados y redes VPC.

🎯 Objetivos del laboratorio
Crear dos redes VPC (una para cloud y otra que simula un entorno on-premise).

  1. Configurar puertas de enlace VPN HA en cada red.
  2. Crear túneles IPsec redundantes.
  3. Establecer emparejamientos BGP para enrutamiento dinámico.
  4. Probar conectividad entre ambas redes.

Arquitectura del laboratorio.

Image description

*🧱 Paso 1: Crear red VPC y máquinas virtuales
*

gcloud compute networks create vpc-demo --subnet-mode custom

gcloud compute networks subnets create vpc-demo-subnet1 \
  --network vpc-demo --range 10.1.1.0/24 --region us-central1

gcloud compute networks subnets create vpc-demo-subnet2 \
  --network vpc-demo --range 10.2.1.0/24 --region us-east1

gcloud compute firewall-rules create vpc-demo-allow-custom \
  --network vpc-demo --allow tcp:0-65535,udp:0-65535,icmp \
  --source-ranges 10.0.0.0/8

gcloud compute firewall-rules create vpc-demo-allow-ssh-icmp \
  --network vpc-demo --allow tcp:22,icmp

gcloud compute instances create vpc-demo-instance1 \
  --machine-type=e2-medium --zone us-central1-c --subnet vpc-demo-subnet1

gcloud compute instances create vpc-demo-instance2 \
  --machine-type=e2-medium --zone us-east1-b --subnet vpc-demo-subnet2
Enter fullscreen mode Exit fullscreen mode

📸 Instancia creada en la subred vpc-demo-subnet1

Image description

📸 Instancia creada en la subred vpc-demo-subnet2

Image description

🧪 Paso 2: Crear VPC para entorno on-premise simulado

gcloud compute networks create on-prem --subnet-mode custom

gcloud compute networks subnets create on-prem-subnet1 \
  --network on-prem --range 192.168.1.0/24 --region us-central1

gcloud compute firewall-rules create on-prem-allow-custom \
  --network on-prem --allow tcp:0-65535,udp:0-65535,icmp \
  --source-ranges 192.168.0.0/16

gcloud compute firewall-rules create on-prem-allow-ssh-icmp \
  --network on-prem --allow tcp:22,icmp

gcloud compute instances create on-prem-instance1 \
  --machine-type=e2-medium --zone us-central1-b --subnet on-prem-subnet1

Enter fullscreen mode Exit fullscreen mode

📸 Instancia creada en la subred on-prem-subnet1

Image description

🌐 Paso 3: Crear VPN Gateways y Cloud Routers

gcloud compute vpn-gateways create vpc-demo-vpn-gw1 \
  --network vpc-demo --region us-central1

gcloud compute vpn-gateways create on-prem-vpn-gw1 \
  --network on-prem --region us-central1
Enter fullscreen mode Exit fullscreen mode

📸 VPN gateways creados para demo y on-prem.

Image description

Image description

gcloud compute routers create vpc-demo-router1 \
  --region us-central1 --network vpc-demo --asn 65001

gcloud compute routers create on-prem-router1 \
  --region us-central1 --network on-prem --asn 65002
Enter fullscreen mode Exit fullscreen mode

📸 Cloud Routers creados para demo y on-prem.

Image description

Image description

🔄 Paso 4: Crear túneles HA VPN (Usa la misma clave compartida [SHARED_SECRET] para todos los túneles.)

# Desde VPC-DEMO
gcloud compute vpn-tunnels create vpc-demo-tunnel0 \
  --peer-gcp-gateway on-prem-vpn-gw1 --region us-central1 \
  --ike-version 2 --shared-secret [SHARED_SECRET] \
  --router vpc-demo-router1 --vpn-gateway vpc-demo-vpn-gw1 --interface 0

gcloud compute vpn-tunnels create vpc-demo-tunnel1 \
  --peer-gcp-gateway on-prem-vpn-gw1 --region us-central1 \
  --ike-version 2 --shared-secret [SHARED_SECRET] \
  --router vpc-demo-router1 --vpn-gateway vpc-demo-vpn-gw1 --interface 1

# Desde ON-PREM
gcloud compute vpn-tunnels create on-prem-tunnel0 \
  --peer-gcp-gateway vpc-demo-vpn-gw1 --region us-central1 \
  --ike-version 2 --shared-secret [SHARED_SECRET] \
  --router on-prem-router1 --vpn-gateway on-prem-vpn-gw1 --interface 0

gcloud compute vpn-tunnels create on-prem-tunnel1 \
  --peer-gcp-gateway vpc-demo-vpn-gw1 --region us-central1 \
  --ike-version 2 --shared-secret [SHARED_SECRET] \
  --router on-prem-router1 --vpn-gateway on-prem-vpn-gw1 --interface 1
Enter fullscreen mode Exit fullscreen mode

📸 Interfaz Virtual de creación de Tuneles VPN.

Image description

🔁 Paso 5: Configurar interfaces de túnel y BGP Peers

# Interfaces y Peers para VPC-DEMO
gcloud compute routers add-interface vpc-demo-router1 \
  --interface-name if-tunnel0-to-on-prem \
  --ip-address 169.254.0.1 --mask-length 30 \
  --vpn-tunnel vpc-demo-tunnel0 --region us-central1

gcloud compute routers add-bgp-peer vpc-demo-router1 \
  --peer-name bgp-on-prem-tunnel0 --interface if-tunnel0-to-on-prem \
  --peer-ip-address 169.254.0.2 --peer-asn 65002 --region us-central1

gcloud compute routers add-interface vpc-demo-router1 \
  --interface-name if-tunnel1-to-on-prem \
  --ip-address 169.254.1.1 --mask-length 30 \
  --vpn-tunnel vpc-demo-tunnel1 --region us-central1

gcloud compute routers add-bgp-peer vpc-demo-router1 \
  --peer-name bgp-on-prem-tunnel1 --interface if-tunnel1-to-on-prem \
  --peer-ip-address 169.254.1.2 --peer-asn 65002 --region us-central1

# Interfaces y Peers para ON-PREM
gcloud compute routers add-interface on-prem-router1 \
  --interface-name if-tunnel0-to-vpc-demo \
  --ip-address 169.254.0.2 --mask-length 30 \
  --vpn-tunnel on-prem-tunnel0 --region us-central1

gcloud compute routers add-bgp-peer on-prem-router1 \
  --peer-name bgp-vpc-demo-tunnel0 --interface if-tunnel0-to-vpc-demo \
  --peer-ip-address 169.254.0.1 --peer-asn 65001 --region us-central1

gcloud compute routers add-interface on-prem-router1 \
  --interface-name if-tunnel1-to-vpc-demo \
  --ip-address 169.254.1.2 --mask-length 30 \
  --vpn-tunnel on-prem-tunnel1 --region us-central1

gcloud compute routers add-bgp-peer on-prem-router1 \
  --peer-name bgp-vpc-demo-tunnel1 --interface if-tunnel1-to-vpc-demo \
  --peer-ip-address 169.254.1.1 --peer-asn 65001 --region us-central1

#Reglas de firewall
gcloud compute firewall-rules create vpc-demo-allow-subnets-from-on-prem \
  --network vpc-demo --allow tcp,udp,icmp \
  --source-ranges 192.168.1.0/24

gcloud compute firewall-rules create on-prem-allow-subnets-from-vpc-demo \
  --network on-prem --allow tcp,udp,icmp \
  --source-ranges 10.1.1.0/24,10.2.1.0/24

Enter fullscreen mode Exit fullscreen mode

📸 Sesiones BGP establecidas entre Cloud Routers

La imagen muestra todas las sesiones BGP activas entre los routers vpc-demo-router1 y on-prem-router1, confirmando que los túneles de la VPN HA están operativos y enrutando tráfico dinámicamente mediante BGP.

Image description

✅ Paso 6: Verificar conectividad

Una vez configurados los túneles VPN y emparejamientos BGP, es momento de probar la conectividad entre las instancias de ambas VPC.

Primero, accedemos a la instancia que simula el entorno on-premise, ubicada en la zona us-central1-b:

gcloud compute ssh on-prem-instance1 --zone us-central1-b

Desde allí, realizamos una prueba de conectividad hacia una instancia en la subred vpc-demo-subnet1 (en la misma región):

Image description

Una respuesta satisfactoria confirma que el túnel y el enrutamiento dinámico están funcionando correctamente dentro de la región.

🌍 Habilitar enrutamiento global para alcanzar otras regiones

Por diseño, los routers de VPN HA son recursos regionales, lo que significa que solo tienen visibilidad de las rutas dentro de su propia región. Si necesitas alcanzar subredes ubicadas en regiones distintas, como en este caso la us-east1, es necesario activar el modo de enrutamiento global en la VPC.

Hagamos prueba de ping para validar la llegada a otra región.

Image description

Por el momento no se llega, por lo tanto ejecutamos:

gcloud compute networks update vpc-demo --bgp-routing-mode GLOBAL

📸 Prueba de conectividad entre regiones tras habilitar enrutamiento global

Image description

🧩 Conclusión

La implementación de una VPN de Alta Disponibilidad (HA VPN) en Google Cloud, junto con Cloud Router y BGP dinámico, permite establecer una conexión segura, escalable y resiliente entre redes VPC y entornos on-premise o simulados.

A través de este laboratorio, configuramos múltiples túneles redundantes, establecimos sesiones BGP para el intercambio dinámico de rutas y validamos la conectividad entre regiones activando el modo de enrutamiento global.

Top comments (0)