Las subredes de pila doble permiten que tus recursos de App Engine envíen tráfico IPv4 e IPv6 a una red de VPC con salida de VPC directa. Puedes cambiar una subred existente solo IPv4 (pila única) a una subred de pila doble.
Tipos de subredes
Las redes de VPC admiten los siguientes tipos de subredes de Compute Engine:
Subredes solo IPv4 (pila única) con solo rangos de subred IPv4
Subredes IPv4 e IPv6 (pila doble) con rangos de subred IPv4 e IPv6
Limitaciones de la pila doble
Antes de cambiar el tipo de pila en un recurso de App Engine existente, ten en cuenta las siguientes limitaciones:
La compatibilidad con pila doble solo está disponible con subredes en una red de VPC de modo personalizado. Para que el tipo de acceso interno esté disponible para las subredes de pila doble, se debe habilitar el rango de IPv6 interno de la red de VPC. Configura o convierte la red de VPC al modo personalizado.
En comparación con las subredes solo IPv4, las subredes de pila doble pueden experimentar latencias de inicio en frío elevadas, lo que limita la rapidez con la que se puede escalar tu aplicación.
NAT64 no es compatible.
Antes de comenzar
Asegúrate de que el agente de servicio de App Engine tenga el rol de administrador de IP pública de Compute (roles/compute.publicIpAdmin) para usar la subred con IPv6 externa.
Configura una subred de pila doble
Las subredes de pila doble tienen rangos de direcciones IPv4 e IPv6.
Para configurar una subred de pila doble, puedes usar la consola de Google Cloud o Google Cloud CLI:
Console
Ve a la consola de Google Cloud y habilita la API de Compute Engine:
Navega a la página Redes de VPC:
Haz clic en Crear red de VPC si estás creando una nueva red en modo personalizado. Si usas una red de VPC existente, haz clic en el nombre de la red de VPC para ver su página de detalles de la red de VPC.
Si creas una red nueva o conviertes una existente, ingresa el nombre y asegúrate de que el Modo de creación de subred esté configurado como Personalizado. Luego, selecciona Configurar un rango de IPv6 interno de ULA para esta red de VPC.
En la pestaña Subredes, haz clic en Agregar subred. En el panel que aparece, haz lo siguiente:
- Proporciona un Nombre.
- Selecciona una Región.
- En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble).
- Ingresa un rango IPv4. Este es el rango IPv4 principal de la subred.
Selecciona el tipo de acceso IPv6.
Si la opción Interno no está disponible y la necesitas, verifica que se haya asignado un rango de IPv6 interno en la red.
Haz clic en Agregar.
gcloud
Para crear una red de modo personalizado que admita subredes de pila doble, ejecuta el comando
gcloud compute networks create.Para configurar los rangos de IPv6 internos en cualquier subred de esta red, usa la marca
--enable-ula-internal-ipv6. Esta opción asigna un prefijo ULA/48que pertenece al rangofd20::/20que usa Google Cloud para los rangos de subred IPv6 internos.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Reemplaza NETWORK por el nombre de la red de VPC que contendrá la subred nueva.
Para convertir una red de modo automático o actualizar una red de modo personalizado de modo que admita subredes de pila doble, sigue estos pasos:
Si conviertes una red de modo automático, cambia la red al modo de subred personalizado:
gcloud compute networks update NETWORK \ --switch-to-custom-subnet-mode
Habilita un rango de IPv6 interno en la red:
gcloud compute networks update NETWORK \ --enable-ula-internal-ipv6
Reemplaza NETWORK por el nombre de la red de VPC que contiene la subred nueva.
Para crear una subred de pila doble con un rango IPv6, ejecuta el comando
subnets createcon la configuración de pila doble:gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
Reemplaza lo siguiente:
- SUBNET: Es un nombre para la subred nueva.
- NETWORK: Es el nombre de la red de VPC que contendrá la subred nueva.
- PRIMARY_IPv4_RANGE: Es el rango IPv4 principal para la subred nueva, en notación CIDR. Para obtener más información, consulta Rangos de subredes IPv4.
- IPV6_ACCESS_TYPE: Es el tipo de acceso IPv6 para la subred nueva, ya sea
internaloexternal. - REGION: Es la región de Google Cloud en la que se creará la subred nueva.
Agrega la subred de pila doble a un recurso de App Engine
Después de crear una subred de pila doble, agrégala a tu servicio de App Engine con YAML o Terraform. Para habilitar la salida de VPC directa en un servicio que aún no la usa, implementa una versión nueva y migra el tráfico a ella. También puedes borrar primero la versión implementada, en lugar de reemplazar un ID de versión existente.
YAML
En el archivo
app.yaml, especifica la red y la subred en el campovpc_access:vpc_access: network_interface: network: NETWORK subnet: SUBNET vpc_egress: EGRESS_SETTING
Reemplaza lo siguiente:
NETWORK: Es el nombre de la red que creaste en el paso anterior.
SUBNET: Es el nombre de la subred que creaste en el paso anterior.
Opcional: EGRESS_SETTING controla cómo se enruta el tráfico saliente. Este campo admite los siguientes parámetros de configuración:
all-traffic: Todas las solicitudes salientes se enrutan a través de la red de VPC.private-ranges-only(predeterminado): Solo el tráfico a direcciones IP internas se enruta a través de la red de VPC. El tráfico de Internet usa la ruta predeterminada de App Engine.
Ejecuta el siguiente comando para implementar en App Engine:
gcloud app deploy
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega el siguiente bloque
vpc_accessa un recursogoogle_app_engine_standard_app_versionen tu configuración de Terraform:vpc_access { vpc_egress = "EGRESS_SETTING" network_interfaces { network = "NETWORK" subnetwork = "SUBNET" } }
Reemplaza lo siguiente:
- NETWORK: Es el nombre de la red de VPC que creaste en el paso anterior.
- SUBNET: Es el nombre de la subred que creaste en el paso anterior.
- Opcional: EGRESS_SETTING controla cómo se enruta el tráfico saliente. Este campo admite los siguientes parámetros de configuración:
ALL_TRAFFIC: Todas las solicitudes salientes se enrutan a través de la red de VPC.PRIVATE_IP_RANGES(predeterminado): Solo el tráfico a direcciones IP internas se enruta a través de la red de VPC. El tráfico de Internet usa la ruta predeterminada de App Engine.
Si la versión ya se implementó sin la salida de VPC directa, actualiza el campo
version_ida un valor nuevo. No puedes habilitar la salida de VPC directa en una versión existente.Aplica la configuración:
terraform apply
Cambia una subred de pila única a pila doble
Para agregar un rango de subred IPv6 a una subred solo IPv4 existente en una red de VPC de modo personalizado, consulta Cambia el tipo de pila de una subred a pila doble. Luego, implementa el servicio de App Engine en la subred de pila doble.
Cambia una subred de pila doble a pila única
Para cambiar la subred de pila doble de un recurso a una subred de pila única, consulta Cambia una subred de pila doble a solo IPv4. Luego, implementa el servicio de App Engine en la subred de pila única.
Verifica la red y la subred
Para verificar que tu recurso esté en la red de VPC, ejecuta el siguiente comando:
gcloud app versions describe VERSION --service=SERVICE
Reemplaza lo siguiente:
- VERSION: la versión implementada de tu servicio
- SERVICE: el servicio implementado
En el siguiente resultado de ejemplo, se muestran tu red y subred:
vpcAccess:
networkInterfaces:
- network: projects/YOUR_PROJECT/global/networks/YOUR_NETWORK
subnet: projects/YOUR_PROJECT/regions/YOUR_REGION/subnetworks/YOUR_SUBNET
vpcEgress: ALL_TRAFFIC/PRIVATE_IP_RANGES