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 rangos de subred solo 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 tu aplicación puede escalar verticalmente.
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úblicas de Compute (roles/compute.publicIpAdmin) para usar la subred con IPv6 externo.
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 Google Cloud consola o el Google Cloud CLI:
Console
Ve a la Google Cloud consola y habilita la API de Compute Engine:
Navega a la página Redes de VPC:
Haz clic en Crear red de VPC si creas una red nueva en modo personalizado. Si usas una red de VPC existente, haz clic en el nombre de la red de VPC para mostrar su página 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 y, 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, comprueba 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 o actualizar una red de modo personalizado de modo que admita subredes de pila doble, ejecuta el siguiente comando:
gcloud compute networks update NETWORK \ --switch-to-custom-subnet-mode \ --enable-ula-internal-ipv6
Reemplaza NETWORK por el nombre de la red de VPC que contendrá la subred nueva.
Para crear una subred de pila doble con un rango IPv6, ejecuta el
subnets createcomando con 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 Google Cloud región 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, configura tu servicio de App Engine para que la use:
En tu 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: El nombre de la red que creaste en el paso anterior.
SUBNET: 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.
Para realizar una implementación en App Engine, ejecuta el siguiente comando:
gcloud beta app deploy
Cambia una subred de pila única a pila doble
Para agregar un rango de subred IPv6 a una subred existente solo IPv4 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 doble.
Verifica la red y la subred
Para verificar que tu recurso esté en la red de VPC, ejecuta el siguiente comando:
gcloud beta app versions describe VERSION --service=SERVICE
Reemplaza lo siguiente:
- VERSION: La versión implementada de tu servicio.
- SERVICE: El servicio implementado.
En el siguiente ejemplo de resultado, 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_RANGES_ONLY