Configura la pila doble (IPv4 e IPv6)

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

  1. Ve a la Google Cloud consola y habilita la API de Compute Engine:

    Habilitar la API de Compute Engine

  2. Navega a la página Redes de VPC:

    Ir a las redes de VPC

  3. 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.

  4. 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.

  5. En la pestaña Subredes, haz clic en Agregar subred. En el panel que aparece, haz lo siguiente:

    1. Proporciona un Nombre.
    2. Selecciona una Región.
    3. En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble).
    4. Ingresa un rango IPv4. Este es el rango IPv4 principal de la subred.
    5. 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.

    6. Haz clic en Agregar.

gcloud

  1. 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 /48 que pertenece al rango fd20::/20 que 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.

  2. 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.

  3. Para crear una subred de pila doble con un rango IPv6, ejecuta el subnets create comando 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 internal o external.
    • 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:

  1. En tu archivo app.yaml, especifica la red y la subred en el campo vpc_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.
  2. 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