Convierte el balanceador de cargas de aplicaciones en IPv6

En este documento, se muestra cómo convertir los recursos y backends del balanceador de cargas de aplicaciones de solo IPv4 (pila única) a IPv4 e IPv6 (pila doble). En este documento, IPv4 solo (pila única) se refiere a los recursos que solo usan direcciones IPv4, y IPv4 e IPv6 (pila doble) se refiere a los recursos que usan direcciones IPv4 e IPv6.

Ventajas

Convertir tus balanceadores de cargas en una pila doble presenta varios beneficios:

  • La principal ventaja de IPv6 es que se puede asignar un grupo de direcciones IP mucho más grande.

  • Muchos clientes que ya usan balanceadores de cargas IPv4 solo pueden convertir recursos de IPv4 solo en recursos IPv4 e IPv6 (pila doble) mediante el uso de los métodos específicos de la nube.

  • Puedes configurar el balanceador de cargas para finalizar el tráfico IPv6 de entrada y usar un proxy en este tráfico a través de una conexión IPv4 o IPv6 para tus backends, según tu preferencia. Para obtener más información, consulta IPv6.

Limitaciones

  • No puedes actualizar el tipo de pila de IP de la subred de IPv4 y de IPv6 (pila doble) a solo IPv4.

  • Cuando configuras la política de selección de direcciones IP en el servicio de backend solo como IPv6, aún puedes configurar backends de IPv4 solo. Sin embargo, esta configuración da como resultado backends en mal estado, los clientes obtienen el código de respuesta 503 y el tráfico no fluye ascendente. Los registros muestran failed_to_pick_backend en los mensajes de error HTTP de statusDetails.

  • Puedes configurar la política de selección de direcciones IP del servicio de backend a IPv6 solo, pero el tipo de pila de IP de los backends siempre es IPv4 e IPv6 (pila doble).

  • Solo los backends de grupos de instancias de VM y los grupos de extremos de red (NEG) zonales con extremos GCE_VM_IP_PORT admiten IPv4 y IPv6 (pila doble).

  • Los balanceadores de cargas de aplicaciones internos entre regiones, los balanceadores de cargas de aplicaciones externos regionales y los balanceadores de cargas de aplicaciones internos regionales no son compatibles con las reglas de reenvío con IPv6. El tráfico de IPv4 de entrada se envía mediante un proxy a través de una conexión IPv4 o IPv6 a backends de pila doble.

  • Los balanceadores de cargas de aplicaciones clásicos no son compatibles con backends de pila doble. El balanceador de cargas finaliza el tráfico IPv6 de entrada recibido de los clientes IPv6 y usa un proxy en este tráfico a través de la conexión IPv4 para tus backends IPv4.

Antes de comenzar

Ya debes haber configurado un balanceador de cargas de aplicaciones con una pila IPv4 solo con un grupo de instancias o backends de NEG zonales.

Para obtener más información sobre cómo configurar balanceadores de cargas de aplicaciones externos globales, consulta la siguiente documentación:

Para obtener más información sobre cómo configurar balanceadores de cargas de aplicaciones externos regionales, consulta la siguiente documentación:

Para obtener más información sobre cómo configurar los balanceadores de cargas de aplicaciones internos entre regiones, consulta la siguiente documentación:

Para obtener más información sobre cómo configurar balanceadores de cargas de aplicaciones internos regionales, consulta la siguiente documentación:

Identifica los recursos que deseas convertir

Toma nota de los nombres de los recursos con los que está asociado tu balanceador de cargas. Tendrás que proporcionar estos nombres más adelante.

  1. Para enumerar todas las subredes, usa el comando gcloud compute networks subnets list:

    gcloud compute networks subnets list
    

    Ten en cuenta el nombre de la subred con direcciones solo IPv4 para convertirla a pila doble. Más adelante, se denominará SUBNET. Más adelante, la red de VPC se denominará NETWORK.

  2. Para enumerar todos los servicios de backend, usa el comando gcloud beta compute backend-services list:

    gcloud beta compute backend-services list
    

    Toma nota del nombre del servicio de backend para convertir la pila doble. Más adelante, se denominará BACKEND_SERVICE.

  3. Para enumerar todos los mapas de URL, usa el comando gcloud beta compute url-maps list:

    gcloud beta compute url-maps list
    

    Toma nota del nombre del mapa de URL asociado con tu balanceador de cargas. Más adelante, se denominará URL_MAP.

  4. Si ya tienes un balanceador de cargas, para ver el tipo de pila de IP de tus backends, usa el comando gcloud compute instances list:

    gcloud compute instances list \
        --format= \
        "table(
        name,
        zone.basename(),
        networkInterfaces[].stackType.notnull().list(),
        networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6,
        networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"
    
  5. Para enumerar todas las instancias de VM y las plantillas de instancias, usa el comando gcloud compute instances list y el comando gcloud compute instance-templates list:

    gcloud compute instances list
    
    gcloud compute instance-templates list
    

    Anota los nombres de las instancias y las plantillas de instancias que se convertirán en pila doble. Más adelante, se denominará como VM_INSTANCE y INSTANCE_TEMPLATES.

  6. Para enumerar todos los grupos de extremos de red (NEGs) zonales, usa el comando gcloud compute network-endpoint-groups list:

    gcloud compute network-endpoint-groups list
    

    Ten en cuenta los nombres de los backends de NEGs zonales para convertirlos en pila doble. Más adelante, se denominará ZONAL_NEG.

  7. Para enumerar todos los proxies de destino, usa el comando gcloud compute target-http-proxies list:

    gcloud compute target-http-proxies list
    

    Toma nota del nombre del proxy de destino asociado con tu balanceador de cargas. Más adelante, se denominará TARGET_PROXY.

Convierte backends de pila única a backends de pila doble

En esta sección, se muestra cómo convertir los recursos y backends del balanceador de cargas que usan direcciones solo IPv4 (pila única) a direcciones IPv4 e IPv6 (pila doble).

Actualiza la subred

Las subredes de pila doble solo son compatibles con las redes de VPC de modo personalizado. Las subredes de pila doble no son compatibles con redes de VPC de modo automático ni con redes heredadas. Aunque las redes en modo automático pueden ser útiles para la exploración temprana, las VPC en modo personalizado son más adecuadas para la mayoría de los entornos de producción. Te recomendamos que uses las VPC en modo personalizado.

Para actualizar la VPC a la configuración de pila doble, sigue estos pasos:

  1. Si usas una red de VPC de modo automático, primero debes convertir la red de VPC de modo automático al modo personalizado.

  2. Para habilitar IPv6, consulta Cambia el tipo de pila de una subred a pila doble.

  3. Opcional: Si deseas configurar rangos de direcciones IPv6 internos en subredes de esta red, completa estos pasos:

    1. En Rango de IPv6 interno de ULA de la red de VPC, selecciona Habilitado.
    2. En Asignar rango de IPv6 interno, selecciona Automáticamente o Manualmente.

      Si seleccionas Manualmente, ingresa un rango /48 que pertenezca al rango fd20::/20. Si el rango está en uso, se te solicitará que proporciones un rango diferente.

Actualiza la subred de solo proxy

Si usas un balanceador de cargas basado en Envoy, te recomendamos que cambies el tipo de pila de subred de solo proxy a pila doble. Para obtener información sobre los balanceadores de cargas que admiten subredes de solo proxy, consulta Balanceadores de cargas compatibles.

Para cambiar el tipo de pila de la subred de solo proxy a pila doble, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en el nombre de una red para ver la página Detalles de la red de VPC.

  3. Haz clic en la pestaña Subredes.

  4. En la sección Subredes de solo proxy reservadas para el balanceo de cargas, haz clic en el nombre de la subred de solo proxy que deseas modificar.

  5. En la página Detalles de la subred, haz clic en Editar.

  6. En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble). El tipo de acceso IPv6 es Interno.

  7. Haz clic en Guardar.

gcloud

Usa el comando subnets update

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=REGION

Reemplaza lo siguiente:

  • PROXY_ONLY_SUBNET: El nombre de la subred de solo proxy
  • REGION: la región de la subred.
  • IPv6_ACCESS_TYPE: El tipo de acceso IPv6 de la subred es INTERNAL.

Actualiza la instancia o las plantillas de VM

Puedes configurar direcciones IPv6 en una instancia de VM si la subred a la que está conectada la VM tiene configurado un rango IPv6. Solo los siguientes backends pueden admitir direcciones IPv6:

  • Backends de grupos de instancias: Uno o más backends de grupos de instancias administrados, no administrados o una combinación de ambos.
  • NEG zonales: Uno o más NEG zonales de tipo GCE_VM_IP_PORT

Actualiza instancias de VM

No puedes editar instancias de VM que forman parte de un servicio administrado grupo de instancias. Para actualizar las instancias de VM a la pila doble, sigue estos pasos:

  1. Borrar instancias específicas de un grupo
  2. Crea una VM de doble pila
  3. Crea instancias con nombres específicos en MIG

Actualiza plantillas de instancias de VM

No puedes actualizar una plantilla de instancias existente. Si necesitas hacer cambios, puedes crear otra plantilla con propiedades similares. Para actualizar las plantillas de instancias de VM a pila doble, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Plantillas de instancia.

    Ir a Plantillas de instancia

    1. Haz clic en la plantilla de instancias que deseas copiar y actualizar.
    2. Haz clic en Crear una similar.
    3. Expande la sección Opciones avanzadas.
    4. En Etiquetas de red, ingresa allow-health-check-ipv6.
    5. En la sección Interfaces de red, haz clic en Agregar una interfaz de red.
    6. En la lista Red, selecciona la red de VPC de modo personalizado.
    7. En la lista Subred, selecciona SUBNET.
    8. En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble).
    9. Haz clic en Crear.
  2. Inicia una actualización progresiva básica en el grupo de instancias administrada MIG asociado con el balanceador de cargas.

Actualiza el NEG zonal

Los extremos de NEG zonales no se pueden editar. Debes borrar los extremos IPv4 y crear un nuevo extremo de pila doble con direcciones IPv4 e IPv6.

Para configurar un NEG zonal (con extremos de tipo GCE_VM_IP_PORT) en la región REGION_A, primero crea las VM en la zona GCP_NEG_ZONE. Luego, agrega los extremos de red de VM al NEG zonal.

Crea las VM

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haga clic en Crear instancia.

  3. Configura el campo Nombre como vm-a1.

  4. En Región, elige REGION_A y elige cualquier valor para el campo Zona. En este procedimiento, se hace referencia a esta zona como GCP_NEG_ZONE.

  5. En la sección Disco de arranque, asegúrate de que Debian GNU/Linux 12 (bookWorm) esté seleccionado como las opciones del disco de arranque. Haz clic en Elegir para cambiar la imagen si es necesario.

  6. Expande la sección Opciones avanzadas y, a continuación, realiza los siguientes cambios:

    • Expande la sección Herramientas de redes.
    • En el campo Etiquetas de red, ingresa allow-health-check.
    • En la sección Interfaces de red, realiza los siguientes cambios:
      • Red: NETWORK
      • Subred: SUBNET
      • Tipo de pila IP: IPv4 e IPv6 (pila doble)
    • Haz clic en Listo.
    • Haz clic en Administración. En el campo Secuencia de comandos de inicio, copia y pega el siguiente contenido de la secuencia de comandos.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  7. Haz clic en Crear.

  8. Repite los siguientes pasos para crear una segunda VM mediante la siguiente combinación de nombre y zona:

    • Nombre: vm-a2, zona: GCP_NEG_ZONE

gcloud

Para crear las VMs, ejecuta el siguiente comando dos veces, con estas combinaciones para el nombre de la VM y su zona. El contenido de la secuencia de comandos es idéntico para ambas VMs.

  • VM_NAME de vm-a1 y cualquier zona GCP_NEG_ZONE que elijas
  • VM_NAME de vm-a2 y la misma zona de GCP_NEG_ZONE

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --stack-type=IPV4_IPV6 \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check \
        --subnet=SUBNET \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

Agrega extremos al NEG zonal.

Console

Agrega extremos al NEG zonal.

  1. En la consola de Google Cloud, ve a la página Grupos de extremos de red.

    Ir a Grupos de extremos de red

  2. En la lista Nombre, haz clic en el nombre del grupo de extremos de red (ZONAL_NEG). Verás la página Detalles del grupo de extremos de red.

  3. En la sección Extremos de red de este grupo, selecciona el extremo de NEG que se creó antes. Haz clic en Quitar extremo.

  4. En la sección Extremos de red de este grupo, haz clic en Agregar extremo de red.

  5. Selecciona la instancia de VM.

  6. En la sección Interfaz de red, se muestra el nombre, la zona y la subred de la VM.

  7. En el campo Dirección IPv4, ingresa la dirección IPv4 del nuevo extremo de la red.

  8. En el campo Dirección IPv6, ingresa la dirección IPv6 del extremo de red nuevo.

  9. Selecciona el tipo de puerto.

    1. Si seleccionas Predeterminado, el extremo usará el puerto predeterminado 80 para todos los extremos del grupo de extremos de red. Esto es suficiente para nuestro ejemplo, ya que el servidor Apache entrega solicitudes en el puerto 80.
    2. Si seleccionas Personalizado, deberás ingresar el número de puerto para el extremo que se usará.
  10. Para agregar más extremos, haz clic en Agregar extremo de red y repite los pasos anteriores.

  11. Después de agregar todos los extremos, haz clic en Crear.

gcloud

  1. Agrega extremos (extremos GCE_VM_IP_PORT) a ZONAL_NEG

    gcloud compute network-endpoint-groups update ZONAL_NEG \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80' \
        --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80'
    

Reemplaza lo siguiente:

IPv4_ADDRESS: es la dirección IPv4 del extremo de red. La IPv4 debe pertenecer a una VM en Compute Engine (ya sea la IP principal o como parte de un rango de IP con alias). Si no se especifica la dirección IP, se usa la dirección IP principal de la instancia de VM en la red a la que pertenece el grupo de extremos de red.

IPv6_ADDRESS es la dirección IPv6 del extremo de red. La dirección IPv6 debe pertenecer a una instancia de VM en la red a la que pertenece el extremo pertenece al grupo (dirección IPv6 externa).

Crea una regla de firewall de verificación de estado IPv6

Asegúrate de tener una regla de entrada aplicable a las instancias tiene balanceo de cargas y permite el tráfico desde Google Cloud, sistemas de verificación de estado (2600:2d00:1:b029::/64). En este ejemplo, se utiliza la etiqueta de destino allow-health-check-ipv6 para identificar las instancias de VM cómo se aplica.

Sin esta regla de firewall, la regla predeterminada de denegación de entrada bloquea el tráfico IPv6 entrante a las instancias de backend.

Console

  1. En la consola de Google Cloud, ve a la página Políticas de firewall.

    Ir a Políticas de firewall

  2. Para permitir el tráfico de subred de IPv6, vuelve a hacer clic en Crear regla de firewall y, luego, ingresa la siguiente información:

    • Nombre: fw-allow-lb-access-ipv6
    • Red: NETWORK
    • Prioridad: 1000
    • Dirección del tráfico: Entrada
    • Destinos: Etiquetas de destino especificadas
    • Etiquetas de destino: allow-health-check-ipv6
    • Filtro de fuente: Rangos de IPv6
    • Rangos de IPv6 de origen:

      • Para el balanceador de cargas de aplicaciones externo global y el balanceador de cargas de red de proxy externo global, ingresa 2600:2d00:1:b029::/64,2600:2d00:1:1::/64

      • Para el balanceador de cargas de aplicaciones interno entre regiones, el balanceador de cargas de aplicaciones externo regional, el balanceador de cargas de aplicaciones interno regional, el balanceador de cargas de red de proxy interno entre regiones, el balanceador de cargas de red de proxy externo regional y el balanceador de cargas de red de proxy interno regional, ingresa 2600:2d00:1:b029::/64

    • Protocolos y puertos: Permitirlos todos

  3. Haz clic en Crear.

gcloud

  1. Crea la regla de firewall fw-allow-lb-access-ipv6 para permitir la comunicación con la subred.

    Para el balanceador de cargas de aplicaciones externo global y el balanceador de cargas de red de proxy externo global, usa el siguiente comando:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
        --rules=all
    

    Para el balanceador de cargas de aplicaciones interno entre regiones, el balanceador de cargas de aplicaciones externo regional, el balanceador de cargas de aplicaciones interno regional, el balanceador de cargas de red de proxy interno entre regiones, el balanceador de cargas de red de proxy externo regional y el balanceador de cargas de red de proxy interno regional, usa el siguiente comando:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64 \
        --rules=all
    

Agrega una regla de firewall de subred de solo proxy

Si usas un balanceador de cargas basado en Envoy, actualizaste la regla de firewall de entrada fw-allow-lb-access-ipv6 para permitir el tráfico de la subred de solo proxy a los backends.

Para obtener el internalIpv6Prefix de la subred de solo proxy, ejecuta el siguiente comando:

gcloud compute networks subnets describe PROXY_ONLY_SUBNET \
    --region=REGION \
    --format="value(internalIpv6Prefix)"

Ten en cuenta la dirección IPv6 interna, que más adelante se denominará IPv6_PROXY.

Si deseas actualizar la regla de firewall fw-allow-lb-access-ipv6 para la subred de solo proxy, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Políticas de firewall.

    Ir a Políticas de firewall

  2. En el panel Reglas de firewall de VPC, haz clic en fw-allow-lb-access-ipv6.

    • Rangos de IPv6 de origen: 2600:2d00:1:b029::/64, IPv6_PROXY
  3. Haz clic en Guardar.

gcloud

  1. Actualiza la regla de firewall fw-allow-lb-access-ipv6 para permitir la comunicación con la subred de solo proxy:

    gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64,
          IPv6_PROXY \
    

Crea un servicio de backend y una regla de reenvío nuevos para IPv6

En esta sección, se describe el procedimiento a fin de crear un servicio de backend nuevo y una regla de reenvío para IPv6.

BACKEND_SERVICE y BACKEND_SERVICE_IPV6 pueden entregar tráfico. Para evitar la interrupción del tráfico, crea un nuevo servicio de backend con la política de selección de direcciones IP establecida en Prefer IPv6. Después de crear el servicio de backend nuevo, puedes enrutar el tráfico al servicio de backend IPv6 nuevo.

La regla de reenvío con IPv6 solo se puede crear para balanceadores de cargas de aplicaciones externos globales. La regla de reenvío con IPv6 no es compatible con balanceadores de cargas de aplicaciones internos entre regiones, balanceadores de cargas de aplicaciones externos regionales ni balanceadores de cargas de aplicaciones internos regionales.

Console

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas.

  3. Haz clic en Editar.

Configura el servicio de backend:

  1. Haz clic en Configuración de backend.
  2. En el campo Servicio de backend, selecciona Crear un servicio de backend.
  3. Establece el Nombre como BACKEND_SERVICE_IPV6.
  4. En Tipo de backend, selecciona Grupo de extremos de red zonal.
  5. En la lista Política de selección de direcciones IP, selecciona Preferir IPv6.
  6. En el campo Protocolo, selecciona HTTP.
  7. En el panel Backend nuevo, haz lo siguiente:
    1. En la lista grupo de extremos de red, selecciona ZONAL_NEG
    2. En Máximo de RPS, ingresa 10.
  8. En la lista Verificación de estado, selecciona una verificación de estado HTTP.
  9. Haz clic en Listo.

Configura el frontend de IPv6:

La regla de reenvío con IPv6 no es compatible con balanceadores de cargas de aplicaciones internos entre regiones, balanceadores de cargas de aplicaciones externos regionales ni balanceadores de cargas de aplicaciones internos regionales.

  1. Haga clic en Configuración de frontend.
  2. Haz clic en Agregar IP y puerto de frontend.
  3. En el campo Nombre, ingresa un nombre para la regla de reenvío.
  4. En el campo Protocolo, selecciona HTTP.
  5. Establece la Versión de IP como IPv6.
  6. Haz clic en Listo.
  7. Haz clic en Actualizar.

Configura reglas de enrutamiento

  1. Haz clic en Reglas de enrutamiento.
  2. Haz clic en Regla avanzada de host y ruta de acceso.
  3. Haz clic en Actualizar.

gcloud

  1. Crea una verificación de estado de la siguiente forma:

    gcloud compute health-checks create http HEALTH_CHECK \
       --port 80
    
  2. Crea el servicio de backend para el tráfico HTTP:

    global

    Para el balanceador de cargas de aplicaciones externo global, usa el siguiente comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --global
    

    Para el balanceador de cargas de aplicaciones interno entre regiones, usa el siguiente comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --global
    

    regional

    Para el balanceador de cargas de aplicaciones externo regional, usa el siguiente comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --region=REGION
    

    Para el balanceador de cargas de aplicaciones interno regional, usa el siguiente comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --region=REGION
    
  3. Agrega NEGs zonales como backend al servicio de backend:

    global

    Para el balanceador de cargas de aplicaciones externo global y el balanceador de cargas de aplicaciones interno entre regiones, usa el siguiente comando:

    gcloud beta compute backend-services add-backend BACKEND_SERVICE_IPV6 \
      --network-endpoint-group=ZONAL_NEG \
      --max-rate-per-endpoint=10 \
      --global
    

    regional

    Para el balanceador de cargas de aplicaciones externo regional y el balanceador de cargas de aplicaciones interno regional, usa el siguiente comando:

    gcloud beta compute backend-services add-backend BACKEND_SERVICE_IPV6 \
      --network-endpoint-group=ZONAL_NEG \
      --max-rate-per-endpoint=10 \
      --region=REGION
    
  4. Reserva una dirección IPv6 externa que tus clientes utilicen para comunicarse con tu balanceador de cargas HTTP(S) global externo.

    global

    Para el balanceador de cargas de aplicaciones externo global, usa el siguiente comando:

    gcloud compute addresses create lb-ipv6-1 \
       --ip-version=IPV6 \
       --network-tier=PREMIUM \
       --global
    
  5. Crea una regla de reenvío para el servicio de backend. Cuando crees la regla de reenvío, especifica la dirección IP externa en la subred.

    global

    Para el balanceador de cargas de aplicaciones externo global, usa el siguiente comando:

    gcloud beta compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --address=lb-ipv6-1 \
       --global \
       --target-https-proxy=TARGET_PROXY \
       --ports=443
    

Enruta el tráfico al nuevo servicio de backend IPv6

Actualiza el mapa de URL para dirigir una fracción del tráfico del cliente al nuevo servicio de backend IPv6 BACKEND_SERVICE_IPV6.

  1. Usa el siguiente comando para editar los mapas de URL:

    global

    Para el balanceador de cargas de aplicaciones externo global y el balanceador de cargas de aplicaciones interno entre regiones, usa el siguiente comando:

       gcloud compute url-maps edit URL_MAP \
           --global
       

    regional

    Para el balanceador de cargas de aplicaciones externo regional y el balanceador de cargas de aplicaciones interno regional, usa el siguiente comando:

       gcloud compute url-maps edit URL_MAP \
           --region=REGION
       
  2. En el editor de texto que aparece, agrega un elemento routeRule con una acción weightedBackendServices que dirige un porcentaje del tráfico IPv6 a BACKEND_SERVICE_IPV6.

    defaultService: global/backendServices/BACKEND_SERVICE
    hostRules:
    - hosts:
      - '*'
      pathMatcher: matcher1
    name: URL_MAP
    pathMatchers:
    - defaultService: global/backendServices/BACKEND_SERVICE
      name: matcher1
      routeRules:
      - matchRules:
        - prefixMatch: ''
        priority: 1
        routeAction:
          weightedBackendServices:
          - backendService: global/backendServices/BACKEND_SERVICE
            weight: 95
          - backendService: global/backendServices/BACKEND_SERVICE_IPV6
            weight: 5
    

Para implementar una migración gradual a IPv6, aumenta el porcentaje de peso del nuevo servicio de backend de BACKEND_SERVICE_IPV6 de forma incremental al 100% si se edita muchas veces el mapa de URL.

Configura la política de selección de direcciones IP

Este paso es opcional. Después de convertir los recursos y backends en pila doble, puedes usar la política de selección de dirección IP para especificar el tipo de tráfico que se envía desde el servicio de backend a tus backends.

Reemplaza IP_ADDRESS_SELECTION_POLICY con cualquiera de los siguientes valores:

Política de selección de direcciones IP Descripción
Solo IPv4 Solo envía tráfico IPv4 a los backends del servicio de backend, sin importar el tráfico del cliente al GFE. Solo IPv4 de estado se usan para comprobar el estado de los backends.
Preferir IPv6

Prioriza la conexión IPv6 del backend sobre el Conexión IPv4 (siempre que haya un backend en buen estado con direcciones IPv6).

Las verificaciones de estado supervisan de forma periódica las conexiones IPv6 e IPv4 de los backends. GFE primero intenta establecer la conexión IPv6. Si la conexión IPv6 está interrumpida o es lenta, GFE usa visitantes felices para recurrir y conectarse a IPv4.

Incluso si una de las conexiones IPv6 o IPv4 está en mal estado, el backend se considera en buen estado, y GFE puede probar ambas conexiones, y los visitantes felices, en última instancia, seleccionan cuál usar.

Solo IPv6

Solo envía tráfico IPv6 a los backends del servicio de backend, sin importar el tráfico del cliente al proxy. Solo IPv6 de estado se usan para comprobar el estado de los backends.

No hay validación para verificar si el tipo de tráfico de backend coincide con la política de selección de direcciones IP. Por ejemplo, si tienes backends de IPv4 y seleccionas Only IPv6 como la política de selección de direcciones IP, no observarás errores de configuración, pero el tráfico no fluirá a tus backends.

Console

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas.

  3. Haz clic en Editar.

  4. Haz clic en Configuración de backend.

  5. En el campo Servicio de backend, selecciona BACKEND_SERVICE_IPV6.

  6. El Tipo de backend debe ser Grupo de extremos de red zonal o Grupo de instancias.

  7. En la lista Política de selección de direcciones IP, selecciona IP_ADDRESS_SELECTION_POLICY.

  8. Haz clic en Listo.

gcloud

  1. Actualiza el servicio de backend:

    global

    Para el balanceador de cargas de aplicaciones externo global, usa el siguiente comando:

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --global
    

    Para el balanceador de cargas de aplicaciones interno entre regiones, usa el siguiente comando:

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --global
    

    regional

    Para el balanceador de cargas de aplicaciones externo regional, usa el siguiente comando:

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --region=REGION
    

    Para el balanceador de cargas de aplicaciones interno regional, usa el siguiente comando:

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --region=REGION
    

Prueba el balanceador de cargas

Debes validar que todos los recursos necesarios se actualicen a la pila doble. Después de actualizar todos los recursos, el tráfico debe fluir de manera automática a los backends. Puedes verificar los registros y comprobar que la conversión esté completa.

Prueba el balanceador de cargas para confirmar que la migración se realice de forma correcta y que el tráfico entrante llegue a los backends como se espera.

Busca la dirección IP externa del balanceador de cargas

Console

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas.

  3. En la sección Frontend, se muestran dos direcciones IP del balanceador de cargas. En este procedimiento, la dirección IPv4 se denomina IP_ADDRESS_IPV4 y la dirección IPv6 se denomina IP_ADDRESS_IPV6.

  4. En la sección Backends, cuando la política de selección de direcciones IP es Prefer IPv6, se muestran dos estados de verificación de estado para los backends.

Envía tráfico a tus instancias

En este ejemplo, las solicitudes del comando curl se distribuyen de forma aleatoria a los backends.

  1. Repite el siguiente comando un par de veces hasta que veas que todas las VMs de backend responden.

    curl http://IP_ADDRESS_IPV4
    
    curl http://IP_ADDRESS_IPV6
    

    Por ejemplo, si la dirección IPv6 es [fd20:1db0:b882:802:0:46:0:0]:80, el comando se verá de la siguiente manera:

    curl http://[fd20:1db0:b882:802:0:46:0:0]
    

Verifica los registros

Cada entrada de registro captura la dirección IPv4 y la dirección IPv6 de destino del backend. Debido a que admitimos la pila doble, es importante observar la dirección IP que usa el backend.

Para verificar que el tráfico se dirija a IPv6 o conmuta por error a IPv4, visualiza los registros.

La clase HttpRequest contiene la dirección backend_ip asociada con la de Terraform. Si examinas los registros y comparas la dirección IPv4 e IPv6 de destino de backend_ip, puedes confirmar qué dirección IP se usa.