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).
- Configurar puertas de enlace VPN HA en cada red.
- Crear túneles IPsec redundantes.
- Establecer emparejamientos BGP para enrutamiento dinámico.
- Probar conectividad entre ambas redes.
Arquitectura del laboratorio.
*🧱 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
📸 Instancia creada en la subred vpc-demo-subnet1
📸 Instancia creada en la subred vpc-demo-subnet2
🧪 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
📸 Instancia creada en la subred on-prem-subnet1
🌐 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
📸 VPN gateways creados para demo y on-prem.
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
📸 Cloud Routers creados para demo y on-prem.
🔄 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
📸 Interfaz Virtual de creación de Tuneles VPN.
🔁 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
📸 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.
✅ 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):
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.
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
🧩 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)