En este tutorial se da por hecho que conoces los conceptos básicos de las redes de nube privada virtual (VPC), el protocolo de pasarela fronteriza (BGP), las redes privadas virtuales (VPN) y los túneles IPsec.
Google Cloud proporciona un servicio de VPN de alta disponibilidad altamente disponible para conectar tu red VPC con entornos que se ejecutan fuera de Google Cloud, como entornos on-premise o en AWS, a través de una conexión VPN IPSec. Las VPN de alta disponibilidad ofrecen un acuerdo de nivel de servicio del 99,99% de disponibilidad del servicio cuando se configuran según las prácticas recomendadas de Google. Para obtener más información, consulta el Acuerdo de Nivel de Servicio de Cloud VPN.
Información general sobre la arquitectura
La arquitectura descrita en esta página incluye los siguientes componentes:
- Cloud Router: un servicio totalmente distribuido y gestionado Google Cloud que proporciona enrutamiento dinámico mediante BGP para tus redes de VPC.
- Pasarela de VPN de alta disponibilidad: una pasarela de VPN gestionada por Google que se ejecuta en Google Cloud. Cada pasarela VPN de alta disponibilidad es un recurso regional que tiene dos interfaces, cada una con sus propias direcciones IP externas: la interfaz 0 y la interfaz 1.
- Túneles VPN: conexiones desde la pasarela de VPN de alta disponibilidad a la pasarela de VPN de par en AWS a través de las cuales pasa el tráfico cifrado.
- Pasarela VPN de par: dos endpoints de VPN de sitio a sitio de AWS, que pueden ser de una pasarela privada virtual de AWS o de una pasarela de tránsito de AWS. Para obtener más información, consulta ¿Qué es la VPN de sitio a sitio de AWS?
Cada una de las conexiones de la pasarela de VPN de par incluye dos túneles preconfigurados para que apunten a una única pasarela de cliente, que en este caso es unaGoogle Cloud interfaz de VPN de alta disponibilidad. Con esta configuración, el número mínimo de túneles para cumplir el SLA de disponibilidad del servicio del 99,99% es cuatro.
Las opciones de enrutamiento y el ancho de banda combinado de los túneles VPN varían en función de la opción de VPN de sitio a sitio que se utilice en AWS:
Pasarela de tránsito: si creas la pasarela de tránsito de AWS sin preferencia de BGP, ECMP distribuye el tráfico por igual entre los túneles activos.
Para usar la conectividad VPN en varias redes de nube privada virtual de Google, utiliza una red de VPC de conectividad para escalar una arquitectura de concentrador y radios con varias redes de VPC.
Para obtener más información sobre las pasarelas de tránsito de AWS, consulta el artículo ¿Qué son las pasarelas de tránsito de Amazon VPC?
Pasarela privada virtual: si usas una pasarela privada virtual de AWS, solo se selecciona un túnel de todas las conexiones de la pasarela. Para usar más de un túnel, utiliza una pasarela de tránsito de AWS para que esté disponible el multipath de igual coste (ECMP).
Para obtener información sobre la prioridad de las rutas de VPN con AWS, consulta las opciones de enrutamiento de VPN de sitio a sitio.
Para obtener más información sobre las pasarelas privadas virtuales de AWS, consulta Opciones de túnel para tu conexión VPN de sitio a sitio.
En el siguiente diagrama se muestra la arquitectura.
Objetivos
- Crea una red de VPC en Google Cloud.
- Crea una pasarela de VPN de alta disponibilidad y un Cloud Router enGoogle Cloud.
- Crea pasarelas de cliente en AWS.
- Crea una conexión VPN con enrutamiento dinámico en AWS.
- Crea una pasarela de VPN externa y túneles de VPN en Google Cloud.
- Verifica y prueba la conexión VPN entre redes VPC enGoogle Cloud y AWS.
- Usa Cloud Location Finder para identificar las regiones Google Cloud más cercanas.
Ejemplo de módulo de Terraform
Puedes usar el módulo gcp-to-aws-ha-vpn-terraform-module
para aprovisionar una VPN de alta disponibilidad entre Google Cloud y AWS.
Costes
En este tutorial se usan componentes facturables de Google Cloud, incluidos los siguientes:
Para obtener una estimación de los costes de los Google Cloud componentes, usa la Google Cloud calculadora de precios.
En este tutorial se usan componentes facturables de Amazon Web Services, incluidos los siguientes:
- AWS Transit Gateway
- VPN de sitio a sitio de AWS
Para obtener una estimación de los costes de los componentes de AWS, usa la calculadora de precios de AWS.
Antes de empezar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, activate Cloud Shell.
-
Asegúrate de que tienes los roles de administrador necesarios para configurar los componentes de red:
- Administrador de red:
compute.networkAdmin
- Administrador de seguridad:
compute.securityAdmin
- Administrador de Compute:
compute.admin
Para obtener más información sobre los objetivos de estos roles, consulta Roles de gestión de identidades y accesos para funciones de tareas relacionadas con redes.
- Administrador de red:
En Cloud Shell, asegúrate de que estás trabajando en elGoogle Cloud proyecto que has creado o seleccionado.
gcloud config set project YOUR_PROJECT_ID export PROJECT_ID=`gcloud config list --format="value(core.project)"`
Sustituye
YOUR_PROJECT_ID
por elGoogle Cloud ID de tu proyecto.Para crear una red VPC personalizada con una sola subred, usa el comando
gcloud compute networks create
:gcloud compute networks create NETWORK \ --subnet-mode SUBNET_MODE \ --bgp-routing-mode BGP_ROUTING_MODE
Haz los cambios siguientes:
NETWORK
: el nombre de la red.SUBNET_MODE
: el modo de subredBGP_ROUTING_MODE
: El modo de enrutamiento BGP
Por ejemplo, el siguiente comando crea una red VPC personalizada llamada
gc-vpc
con una sola subred:gcloud compute networks create gc-vpc \ --subnet-mode custom \ --bgp-routing-mode global
Para crear una subred que aloje las VMs de prueba, usa el comando
gcloud compute networks subnets create
:gcloud compute networks subnets create SUBNET_NAME \ --network NETWORK \ --region SUBNET_REGION \ --range IP_ADDRESS_RANGE
Haz los cambios siguientes:
SUBNET_NAME
: el nombre de la subredSUBNET_REGION
: la región en la que se creará la subred.IP_ADDRESS_RANGE
: intervalo de direcciones IP de la subred.Por ejemplo, el siguiente comando crea una subred llamada
subnet-east4
en la red de VPCgc-vpc
.
gcloud compute networks subnets create subnet-east4 \ --network gc-vpc \ --region us-east4 \ --range 10.1.1.0/24
Para crear una pasarela de VPN de alta disponibilidad, usa el comando
gcloud compute vpn-gateways create
:gcloud compute vpn-gateways create HA_VPN_GATEWAY_NAME \ --network NETWORK \ --region REGION
Sustituye
HA_VPN_GATEWAY_NAME
por el nombre de la pasarela de VPN de alta disponibilidad.Para crear un router de Cloud Router, usa el comando
gcloud compute routers create
:gcloud compute routers create ROUTER_NAME \ --region REGION \ --network NETWORK \ --asn GOOGLE_ASN \ --advertisement-mode custom \ --set-advertisement-groups all_subnets
Haz los cambios siguientes:
ROUTER_NAME
: nombre de Cloud RouterGOOGLE_ASN
: el ASN privado (número de sistema autónomo) del router de Cloud que vas a crear. Puede ser cualquier ASN privado del intervalo64512-65534
o4200000000-4294967294
que no estés usando ya como ASN de par en la misma región y red.
Por ejemplo, el siguiente comando crea un Cloud Router llamado
cloud-router
.gcloud compute routers create cloud-router \ --region us-east4 \ --network gc-vpc \ --asn 65534 \ --advertisement-mode custom \ --set-advertisement-groups all_subnets
Para crear dos pasarelas de cliente con el siguiente comando de AWS, usa el
create-customer-gateway
comando de la CLI de AWS:aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_0_IP_ADDRESS --bgp-asn GOOGLE_ASN aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_1_IP_ADDRESS --bgp-asn GOOGLE_ASN
Sustituye
INTERFACE_0_IP_ADDRESS
yINTERFACE_1_IP_ADDRESS
por las direcciones IP externas del último paso de la sección anterior.Para crear una pasarela de destino y adjuntarla a tu VPC de Amazon, haz lo siguiente:
La pasarela de destino puede ser una pasarela privada virtual o una pasarela de tránsito. Para obtener más información, consulta el artículo Crear una pasarela de destino.
Pasarela privada virtual
Crea una gateway privada virtual con un ASN específico del lado de AWS mediante el
create-vpn-gateway
comando de la CLI de AWS:aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn AWS_SIDE_ASN
Sustituye
AWS_SIDE_ASN
por el ASN del lado de AWS.Este comando debería ser similar al siguiente ejemplo:
aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001
Asocia la gateway privada virtual a tu red de VPC mediante el comando de la CLI de AWS
attach-vpn-gateway
:aws ec2 attach-vpn-gateway --vpn-gateway-id VPN_GATEWAY_ID --vpc-id VPC_ID
Pasarela de tránsito
Crea una transit gateway con el
create-transit-gateway
comando de la CLI de AWS:aws ec2 create-transit-gateway --description TRANSIT_GATEWAY_DESCRIPTION \ --options=AmazonSideAsn=65001,AutoAcceptSharedAttachments=enable,DefaultRouteTableAssociation=enable,DefaultRouteTablePropagation=enable,VpnEcmpSupport=enable,DnsSupport=enable
Sustituye
TRANSIT_GATEWAY_DESCRIPTION
por una descripción de tu pasarela de transporte.Adjunta tu red de VPC a la pasarela de tránsito mediante el
create-transit-gateway-vpc-attachment
comando de la CLI de AWS:aws ec2 create-transit-gateway-vpc-attachment \ --transit-gateway-id TRANSIT_GATEWAY_ID \ --vpc-id VPC_ID \ --subnet-ids "SUBNET_ID"
Haz los cambios siguientes:
TRANSIT_GATEWAY_ID
: el ID de la pasarela de tránsitoVPC_ID
: ID de la VPC.SUBNET_ID
: los IDs de una o varias subredes.
Para crear una conexión VPN con enrutamiento dinámico, haz lo siguiente:
El método para crear una conexión VPN con enrutamiento dinámico varía en función de si la pasarela de destino es una pasarela privada virtual o una pasarela de tránsito. Para obtener más información, consulta Crear una conexión VPN.
Pasarela privada virtual
Crea una conexión VPN con enrutamiento dinámico entre la pasarela privada virtual y las pasarelas del cliente, y aplica etiquetas a la conexión VPN:
aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_1 \ --vpn-gateway-id VPN_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]' aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_2 \ --vpn-gateway-id VPN_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'
Haz los cambios siguientes:
CUSTOMER_GATEWAY_1
: interfaz 0 de la puerta de enlace de Google Cloud VPNCUSTOMER_GATEWAY_2
: Google Cloud VPN gateway, interface 1AWS_T1_IP
: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 1AWS_T2_IP
: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 2AWS_T3_IP
: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 1AWS_T4_IP
: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 2SHARED_SECRET_1
: clave precompartida para la conexión 1, túnel 1SHARED_SECRET_2
: clave precompartida para la conexión 1, túnel 2SHARED_SECRET_3
: clave precompartida para la conexión 2, túnel 1SHARED_SECRET_4
: Clave precompartida para la conexión 2, túnel 2
Pasarela de tránsito
Crea una conexión VPN con enrutamiento dinámico entre la pasarela de tránsito y las pasarelas del cliente:
aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_1 \ --transit-gateway-id TRANSIT_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]' aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_2 \ --transit-gateway-id TRANSIT_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'
Haz los cambios siguientes:
CUSTOMER_GATEWAY_1
: interfaz 0 de la puerta de enlace de Google Cloud VPNCUSTOMER_GATEWAY_2
: Google Cloud VPN gateway, interface 1TRANSIT_GATEWAY_ID
: el ID de la pasarela de tránsito asociada a la conexión VPNAWS_T1_IP
: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 1AWS_T2_IP
: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 2AWS_T3_IP
: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 1AWS_T4_IP
: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 2SHARED_SECRET_1
: clave precompartida para la conexión 1, túnel 1SHARED_SECRET_2
: clave precompartida para la conexión 1, túnel 2SHARED_SECRET_3
: clave precompartida para la conexión 2, túnel 1SHARED_SECRET_4
: Clave precompartida para la conexión 2, túnel 2CUSTOMER_GATEWAY_1
: interfaz 0 de la puerta de enlace de Google Cloud VPNCUSTOMER_GATEWAY_2
: Google Cloud VPN gateway, interface 1TRANSIT_GATEWAY_ID
: el ID de la pasarela de tránsito asociada a la conexión VPNAWS_T1_IP
: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 1AWS_T2_IP
: dirección IP interna de la pasarela privada virtual de la conexión 1, túnel 2AWS_T3_IP
: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 1AWS_T4_IP
: dirección IP interna de la pasarela privada virtual de la conexión 2, túnel 2SHARED_SECRET_1
: clave precompartida para la conexión 1, túnel 1SHARED_SECRET_2
: clave precompartida para la conexión 1, túnel 2SHARED_SECRET_3
: clave precompartida para la conexión 2, túnel 1SHARED_SECRET_4
: Clave precompartida para la conexión 2, túnel 2
AWS reserva algunos intervalos CIDR, por lo que no puedes usar valores de estos intervalos como direcciones IP internas (
AWS_T1_IP
,AWS_T2_IP
,AWS_T3_IP
yAWS_T4_IP
). Para obtener información sobre los bloques CIDR que reserva AWS, consulta Opciones de túnel para tu conexión VPN de sitio a sitio.Crea cuatro túneles para Google Cloud con estos comandos.
Descarga el archivo de configuración de las dos conexiones VPN.
En los pasos siguientes, utilizará los valores del archivo de configuración que ha descargado para crear y configurar recursos en el lado de Google Cloud.
En Cloud Shell, crea una pasarela de VPN externa con cuatro interfaces para las direcciones IP externas de AWS.
Antes de crear la puerta de enlace de VPN externa, comprueba que las direcciones IP externas de AWS coincidan con los valores del archivo de configuración que has descargado. No puedes modificar estas direcciones IP después de crear la pasarela de VPN externa. Si las direcciones no coinciden, no se podrá establecer la conexión del túnel VPN de alta disponibilidad.
gcloud compute external-vpn-gateways create PEER_GATEWAY_NAME --interfaces \ 0=AWS_GW_IP_1,1=AWS_GW_IP_2,2=AWS_GW_IP_3,3=AWS_GW_IP_4
Haz los cambios siguientes:
AWS_GW_IP_1
: dirección IP externa de la pasarela privada virtual de la conexión 1, túnel 1AWS_GW_IP_2
: dirección IP externa de la pasarela privada virtual de la conexión 1, túnel 2AWS_GW_IP_3
: dirección IP externa de la pasarela privada virtual de la conexión 2, túnel 1AWS_GW_IP_4
: dirección IP externa de la pasarela privada virtual de la conexión 2, túnel 2
Crea cuatro túneles VPN.
Túnel 1:
gcloud compute vpn-tunnels create tunnel-1 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 0 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_1 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 0
Túnel 2:
gcloud compute vpn-tunnels create tunnel-2 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 1 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_2 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 0
Túnel 3:
gcloud compute vpn-tunnels create tunnel-3 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 2 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_3 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 1
Túnel 4:
gcloud compute vpn-tunnels create tunnel-4 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 3 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_4 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 1
Haz los cambios siguientes:
PEER_GATEWAY_NAME
: nombre de la pasarela de par externa que ha creado en el paso 1REGION
: la Google Cloud región en la que creas el túnelSHARED_SECRET
: tu clave precompartida (PSK), que debe corresponderse con la clave precompartida del túnel de la otra parte que crees en tu gateway peer. Para generar una clave precompartida segura, consulta Generar una clave precompartida segura.ROUTER_NAME
: el nombre de la pasarela de Cloud Router que has creado en la sección Crear la pasarela de VPN de alta disponibilidad y Cloud Router Google Cloud.HA_VPN_GATEWAY_NAME
: el nombre de la pasarela de VPN de alta disponibilidad que has creado en la sección Crear la pasarela de VPN de alta disponibilidad y el Cloud Router en Google Cloud.
Crea cuatro interfaces de Cloud Router.
En los siguientes comandos, sustituye cada marcador de posición
GOOGLE_BGP_IP_TUNNEL
por la dirección IP interna del túnel en el lado Google Cloud . Puedes encontrar los valores en los archivos de configuración de VPN de AWS como la dirección de la gateway del cliente de cada túnel. Cada una de estas direcciones debe estar en el intervalo/30
CIDR dentro del intervalo de la red169.254.0.0/16
.Interfaz de Cloud Router 1:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-1 \ --vpn-tunnel tunnel-1 \ --ip-address GOOGLE_BGP_IP_TUNNEL_1 \ --mask-length 30 \ --region REGION
Interfaz de Cloud Router 2:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-2 \ --vpn-tunnel tunnel-2 \ --ip-address GOOGLE_BGP_IP_TUNNEL_2 \ --mask-length 30 \ --region REGION
Interfaz de Cloud Router 3:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-3 \ --vpn-tunnel tunnel-3 \ --ip-address GOOGLE_BGP_IP_TUNNEL_3 \ --mask-length 30 \ --region REGION
Interfaz de Cloud Router 4:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-4 \ --vpn-tunnel tunnel-4 \ --ip-address GOOGLE_BGP_IP_TUNNEL_4 \ --mask-length 30 \ --region REGION
Añade peers de BGP.
En los siguientes comandos, sustituye
PEER_ASN
por el ASN del lado de AWS de la sesión de BGP.Conexión 1 de AWS, túnel 1:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn1-tunn1 \ --peer-asn PEER_ASN \ --interface int-1 \ --peer-ip-address AWS_T1_IP \ --region REGION
Conexión de AWS 1, túnel 2:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn1-tunn2 \ --peer-asn PEER_ASN \ --interface int-2 \ --peer-ip-address AWS_T2_IP \ --region REGION
Conexión de AWS 2, túnel 1:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn2-tunn1 \ --peer-asn PEER_ASN \ --interface int-3 \ --peer-ip-address AWS_T3_IP \ --region REGION
Conexión de AWS 2, túnel 2:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn2-tunn2 \ --peer-asn PEER_ASN \ --interface int-4 \ --peer-ip-address AWS_T4_IP \ --region REGION
En Cloud Shell, comprueba el estado de Cloud Router:
gcloud compute routers get-status ROUTER_NAME \ --region REGION \ --format='flattened(result.bgpPeerStatus[].name, result.bgpPeerStatus[].ipAddress, result.bgpPeerStatus[].peerIpAddress)'
El resultado debería ser similar al siguiente:
result.bgpPeerStatus[].peerIpAddress)' result.bgpPeerStatus[0].ipAddress: 169.254.171.18 result.bgpPeerStatus[0].name: aws-conn1-tunn1 result.bgpPeerStatus[0].peerIpAddress: 169.254.171.17 result.bgpPeerStatus[1].ipAddress: 169.254.156.154 result.bgpPeerStatus[1].name: aws-conn1-tunn2 result.bgpPeerStatus[1].peerIpAddress: 169.254.156.153 result.bgpPeerStatus[2].ipAddress: 169.254.123.38 result.bgpPeerStatus[2].name: aws-conn2-tunn1 result.bgpPeerStatus[2].peerIpAddress: 169.254.123.37 result.bgpPeerStatus[3].ipAddress: 169.254.48.186 result.bgpPeerStatus[3].name: aws-conn2-tunn2 result.bgpPeerStatus[3].peerIpAddress: 169.254.48.185
Mostrar todos los túneles:
gcloud compute vpn-tunnels list
El resultado debería ser similar al siguiente:
NAME REGION GATEWAY PEER_ADDRESS tunnel-1 us-east4 ha-vpn-gw 34.205.x.x tunnel-2 us-east4 ha-vpn-gw 52.203.x.x tunnel-3 us-east4 ha-vpn-gw 3.208.x.x tunnel-4 us-east4 ha-vpn-gw 52.204.x.x
Comprueba el estado del túnel:
gcloud compute vpn-tunnels describe tunnel-1 \ --region REGION \ --format='flattened(status,detailedStatus)'
El resultado debería ser similar al siguiente:
detailed_status: Tunnel is up and running. status: ESTABLISHED
Lista de rutas dinámicas aprendidas por Cloud Router:
gcloud compute routers get-status ROUTER_NAME \ --region REGION \ --format="flattened(result.bestRoutes)"
El resultado debería ser similar al siguiente:
result.bestRoutes[0].creationTimestamp: 2021-01-19T20:42:07.366-08:00 result.bestRoutes[0].destRange: 10.2.2.0/24 result.bestRoutes[0].kind: compute#route result.bestRoutes[0].nextHopIp: 169.254.171.17 result.bestRoutes[0].priority: 100 result.bestRoutes[1].creationTimestamp: 2021-01-19T20:42:07.366-08:00 result.bestRoutes[1].destRange: 10.2.2.0/24 result.bestRoutes[1].kind: compute#route result.bestRoutes[1].nextHopIp: 169.254.156.153 result.bestRoutes[1].priority: 100 result.bestRoutes[2].creationTimestamp: 2021-01-19T20:56:26.588-08:00 result.bestRoutes[2].destRange: 10.2.2.0/24 result.bestRoutes[2].kind: compute#route result.bestRoutes[2].nextHopIp: 169.254.123.37 result.bestRoutes[2].priority: 100 result.bestRoutes[3].creationTimestamp: 2021-01-19T20:56:26.588-08:00 result.bestRoutes[3].destRange: 10.2.2.0/24 result.bestRoutes[3].kind: compute#route result.bestRoutes[3].nextHopIp: 169.254.48.185 result.bestRoutes[3].priority: 100
Crea máquinas virtuales de prueba en cada extremo de los túneles para probar las solicitudes de ping.
Asegúrate de que tienes reglas de cortafuegos de VPC para permitir el tráfico ICMP.
Para obtener instrucciones sobre cómo crear máquinas virtuales de Compute Engine, consulta el artículo Crear e iniciar una instancia de Compute Engine.
Para obtener instrucciones sobre cómo crear instancias de EC2 en AWS, consulta el artículo Lanzar una instancia de Amazon EC2.
Prueba la conexión con el comando
ping
.- Si la prueba
ping
falla, consulta los registros en Google Cloud y los registros de la VPN de sitio a sitio de AWS. Los mensajes de error de los registros pueden ayudarte a identificar el problema. Para saber cómo solucionar problemas con tu conexión VPN, consulta los siguientes recursos:
- Si la prueba
Mide el ancho de banda entre tus máquinas de prueba con iperf.
Lado del servidor:
iperf3 -s
Lado del cliente:
iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- Eliminar una conexión VPN de sitio a sitio
- Elimina la pasarela de tránsito.
- Finalizar instancias de Amazon EC2
- Consulta más información sobre Google Cloud VPN.
- Consulta más información sobre las prácticas recomendadas y las arquitecturas de referencia para el diseño de VPCs.
Crea la pasarela de VPN de alta disponibilidad y el Cloud Router en Google Cloud
En esta sección, crearás una red de VPC, una pasarela de VPN de alta disponibilidad y un Cloud Router en Google Cloud.
Para crear una pasarela VPN con dos interfaces, anota las direcciones IP externas. Necesitas estas direcciones para configurar tu entorno en AWS.
Crear pasarelas y conexiones VPN en AWS
En esta sección, creará pasarelas de cliente, una pasarela de destino y conexiones VPN con enrutamiento dinámico.
Los comandos de AWS se ejecutan mediante la interfaz de línea de comandos de AWS.
Crea túneles de VPN e interfaces de Cloud Router en Google Cloud
En esta sección, utilizarás la información de la conexión VPN de AWS que has creado en la sección anterior para crear una pasarela de VPN externa, túneles VPN e interfaces de Cloud Router en Google Cloud.
Cuando configures túneles de Cloud VPN en AWS, debes usar el protocolo IKEv2 y seleccionar solo un conjunto de cifrado IKE para asegurarte de que el túnel se establece correctamente. Por ejemplo, selecciona un algoritmo de cifrado de la fase 1 y otro de la fase 2, un algoritmo de integridad y un grupo Diffie-Hellman (DH). Los conjuntos de transformación predeterminados de AWS crean una carga útil de asociación de seguridad (SA) de gran tamaño, lo que puede provocar la fragmentación de IP de los paquetes IKE. Cloud VPN no admite paquetes IKE fragmentados.
Verificar la configuración
Probar la conexión VPN
Limpieza
Elimina los recursos de Google Cloud y AWS que hayas creado durante este tutorial.
Eliminar el Google Cloud proyecto
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en este tutorial, puedes eliminar tu proyecto: