Configura un balanceador de cargas de red de transferencia interno con backends internos solo para IPv6

En este documento, se muestra cómo configurar y probar un balanceador de cargas de red de transferencia interno que admite tráfico interno solo de IPv6. En este ejemplo de configuración, instalarás un servidor web Apache en las instancias de máquina virtual (VM) de backend internas solo para IPv6 para entregar contenido en respuesta al tráfico recibido a través de la IP virtual (VIP) del balanceador de cargas.

Como se muestra en el siguiente diagrama de arquitectura, las VMs de backend del balanceador de cargas están configuradas con direcciones IPv6 internas únicamente. Para los fines de esta configuración de ejemplo, estas VMs de backend deben descargar Apache para instalar un servidor web, lo que requiere acceso a Internet pública. Sin embargo, debido a que estas VMs de backend no tienen direcciones IP externas, no pueden acceder a Internet directamente.

Para habilitar el acceso a Internet, en este ejemplo, se usa una instancia de VM independiente, configurada con una dirección IPv6 externa, que funciona como puerta de enlace NAT. Esta VM realiza la traducción de direcciones a nivel del kernel de Linux. Específicamente, la cadena POSTROUTING en la tabla de NAT se usa para enmascarar la dirección de origen de los paquetes salientes, reemplazando la dirección IPv6 interna de cada VM de backend por la dirección IPv6 externa de la VM de la puerta de enlace de NAT en la interfaz de red especificada.

Configuración de ejemplo del balanceador de cargas de red de transferencia interno con backends internos solo para IPv6.
Configuración de ejemplo del balanceador de cargas de red de transferencia interno con backends internos solo para IPv6 (haz clic para ampliar).

En la siguiente información, se explica la configuración de los diferentes componentes que se usan para configurar un balanceador de cargas de red de transferencia interno con backends internos solo para IPv6.

Permisos

Para seguir esta guía, debes crear instancias y modificar una red en un proyecto. Debes ser propietario o editor de un proyecto o tener todas las siguientes funciones de IAM de Compute Engine:

Tarea Función requerida
Crear redes, subredes y componentes del balanceador de cargas Administrador de red de Compute
(roles/compute.networkAdmin)
Agregar y quitar reglas de firewall Administrador de seguridad de Compute
(roles/compute.securityAdmin)
Crea instancias Administrador de instancias de Compute
(roles/compute.instanceAdmin)

Si deseas obtener más información, consulta las siguientes guías:

Configura una red y una subred solo IPv6 con direcciones IPv6 internas

El ejemplo del balanceador de cargas de red de transferencia interno descrito en esta página se crea en una red de VPC de modo personalizado llamada lb-network-ipv6-only.

Para configurar subredes con rangos de IPv6 internos, habilita un rango de IPv6 interno de ULA de la red de VPC. Los rangos de subredes IPv6 internas se asignan a partir de este rango.

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 Crear red de VPC.

  3. En Nombre, ingresa lb-network-ipv6-only.

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

    1. En Configuración de la dirección IPv6 privada, selecciona Configurar un rango de IPv6 interno de ULA para esta red de VPC.
    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 ya está en uso, se te solicitará que proporciones un rango diferente.
  5. En Modo de creación de subred, selecciona Personalizado.

  6. En la sección Subred nueva, especifica los siguientes parámetros de configuración para la subred:

    • Nombre: lb-subnet-ipv6-only
    • Región: us-west1
    • Tipo de pila IP: IPv6 (pila única)
    • Tipo de acceso IPv6: Interno
  7. Haz clic en Listo.

  8. Haz clic en Crear.

gcloud

  1. Para crear una nueva red de VPC en modo personalizado, ejecuta el comando gcloud compute networks create.

    Para configurar rangos de IPv6 internos en cualquier subred de esta red, usa la marca --enable-ula-internal-ipv6.

    gcloud compute networks create lb-network-ipv6-only \
        --subnet-mode=custom \
        --enable-ula-internal-ipv6 \
        --bgp-routing-mode=regional
    
  2. Configura una subred con ipv6-access-type establecido en INTERNAL. Esto indica que las VMs de esta subred solo pueden tener direcciones IPv6 internas. En este ejemplo, la subred se llama lb-subnet-ipv6-only-internal.

    Para crear la subred, ejecuta el comando gcloud compute networks subnets create.

    gcloud compute networks subnets create lb-subnet-ipv6-only-internal \
        --network=lb-network-ipv6-only \
        --region=us-west1 \
        --stack-type=IPV6_ONLY \
        --ipv6-access-type=INTERNAL
    

Configura una subred solo IPv6 con direcciones IPv6 externas

Se usa una subred solo para IPv6 con direcciones IPv6 externas para crear una instancia de VM que funcione como puerta de enlace de NAT.

Console

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

    Ir a las redes de VPC

  2. Para ver la página Detalles de la red de VPC, haz clic en el nombre de la red de VPC que creaste.

  3. En la pestaña Subredes, haz clic en Agregar subred. En el panel que aparece, especifica los siguientes parámetros de configuración para la subred:

    • Nombre: lb-subnet-ipv6-only-external
    • Región: us-west1
    • Tipo de pila IP: IPv6 (pila única)
    • Tipo de acceso IPv6: externo
  4. Haz clic en Agregar.

gcloud

Configura una subred con ipv6-access-type establecido en EXTERNAL. Esto indica que las VMs de esta subred pueden tener direcciones IPv6 externas. En este ejemplo, la subred se llama lb-subnet-ipv6-only-external.

Para crear la subred, ejecuta el comando gcloud compute networks subnets create.

gcloud compute networks subnets create  lb-subnet-ipv6-only-external \
    --network=lb-network-ipv6-only \
    --region=us-west1 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=EXTERNAL

Configura reglas de firewall en la red de VPC

En este ejemplo, se usan las siguientes reglas de firewall:

  • fw-allow-lb-access-ipv6-only: Es una regla de entrada aplicable a todos los destinos en la red de VPC, de modo que se admite el tráfico de todas las fuentes IPv6.

  • fw-allow-ssh: Una regla de entrada que permite la conectividad SSH entrante en el puerto TCP 22 desde cualquier dirección. Puedes elegir un rango de IP de origen más restrictivo para esta regla; por ejemplo, puedes especificar solo los rangos de IP del sistema desde el que inicias sesiones SSH. En este ejemplo, se usa la etiqueta de destino allow-ssh para identificar las VMs a las que se debe aplicar.

  • fw-allow-health-check-ipv6-only: Es una regla de entrada, aplicable a las instancias con balanceo de cargas, que permite el tráfico de los sistemas de verificación de estado de Google Cloud (2600:2d00:1:b029::/64). En este ejemplo, se usa la etiqueta de destino allow-health-check-ipv6 para identificar las instancias a las que se debe aplicar.

Sin estas reglas de firewall, la regla predeterminada de denegación de entrada bloquea el tráfico 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-only
    • Red: lb-network-ipv6-only
    • Prioridad: 1000
    • Dirección del tráfico: Entrada
    • Acción en caso de coincidencia: Permitir
    • Objetivos: All instances in the network
    • Filtro de fuente: Rangos de IPv6
    • Rangos de IPv6 de origen: ::/0
    • Protocols y puertos: Permitirlos todos
  3. Haz clic en Crear.

  4. Para permitir conexiones SSH entrantes, vuelve a hacer clic en Crear regla de firewall y, luego, ingresa la siguiente información:

    • Nombre: fw-allow-ssh
    • Red: lb-network-ipv6-only
    • Prioridad: 1000
    • Dirección del tráfico: Entrada
    • Acción en caso de coincidencia: Permitir
    • Destinos: Etiquetas de destino especificadas
    • Etiquetas de destino: allow-ssh
    • Filtro de fuente: Rangos de IPv6
    • Rangos de IPv6 de origen: ::/0
    • Protocolos y puertos: Selecciona Protocolos y puertos especificados, elige la casilla de verificación TCP y, luego, ingresa 22 en Puertos
  5. Haz clic en Crear.

  6. Para permitir las Google Cloud verificaciones de estado de IPv6, vuelve a hacer clic en Crear regla de firewall y, luego, ingresa la siguiente información:

    • Nombre: fw-allow-health-check-ipv6-only
    • Red: lb-network-ipv6-only
    • Prioridad: 1000
    • Dirección del tráfico: Entrada
    • Acción en caso de coincidencia: Permitir
    • Destinos: Etiquetas de destino especificadas
    • Etiquetas de destino: allow-health-check-ipv6
    • Filtro de fuente: Rangos de IPv6
    • Rangos de IPv6 de origen: 2600:2d00:1:b029::/64
    • Protocols y puertos: Permitirlos todos
  7. Haz clic en Crear.

gcloud

  1. Crea la regla de firewall fw-allow-lb-access-ipv6-only para permitir todo el tráfico IPv6 entrante a todas las instancias de VM en la red de VPC:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6-only \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --source-ranges=::/0 \
        --rules=all
    
  2. Crea la regla de firewall fw-allow-ssh para permitir la conectividad SSH a las VM con la etiqueta de red allow-ssh. Cuando omites source-ranges,Google Cloud interpreta que la regla significa cualquier fuente.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --source-ranges=::/0 \
        --rules=tcp:22
    
  3. Crea la regla fw-allow-health-check-ipv6 para permitir las verificaciones de estado deGoogle Cloud IPv6.

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

Crea una instancia de VM que funcione como puerta de enlace NAT

En este ejemplo, se usa un script de Bash para crear una puerta de enlace NAT que se usa para modificar paquetes IPv6 a nivel del kernel de Linux.

La secuencia de comandos de Bash modifica la dirección de origen de todos los paquetes IPv6 salientes en la cadena POSTROUTING y la reemplaza por la dirección IPv6 externa de la interfaz de la VM.

La secuencia de comandos de Bash modifica la cadena POSTROUTING en iptables para enmascarar la dirección IPv6 de origen de todos los paquetes salientes y reemplazarla por la dirección IPv6 externa de la interfaz de red de la VM.

También debes habilitar el reenvío de IP para esta instancia.

Para crear una instancia de VM que funcione como puerta de enlace NAT, haz lo siguiente:

Console

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

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.

  3. En Nombre, ingresa nat-gateway-instance.

  4. En Región, selecciona us-west1 y, en Zona, selecciona us-west1-a.

  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. Si es necesario, haz clic en Cambiar para cambiar la imagen.

  6. Haz clic en Herramientas de redes y configura los siguientes campos:

    1. En Etiquetas de red, ingresa allow-ssh.
    2. Para el Reenvío de IP, selecciona la casilla de verificación Habilitar.
    3. En Interfaces de red, selecciona lo siguiente:
      • Red: lb-network-ipv6-only
      • Subred: lb-subnet-ipv6-only-external
      • Tipo de pila IP: IPv6 (pila única)
      • Dirección IPv6 externa: Asignación automática
  7. Haz clic en Avanzado y, en el campo Secuencia de comandos de inicio, ingresa la siguiente secuencia de comandos:

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    

  8. Haz clic en Crear.

gcloud

  1. Crea una secuencia de comandos de inicio.

    nano startup.sh
    
  2. Agrega la siguiente secuencia de comandos y guarda el archivo.

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    
  3. Crea una instancia de VM y agrégale el archivo de metadatos. Para usar esta VM como siguiente salto para una ruta, usa la marca --can-ip-forward para habilitar el reenvío de IP para esta instancia.

    gcloud compute instances create nat-gateway-instance \
        --zone=us-west1-a \
        --tags=allow-ssh \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --subnet=lb-subnet-ipv6-only-external \
        --stack-type=IPV6_ONLY \
        --can-ip-forward \
        --metadata-from-file=startup-script=startup.sh
    

Crea una ruta estática nueva en la red de VPC

En este ejemplo, se crea una ruta personalizada que dirige todo el tráfico vinculado a Internet de IPv6 (::/0) desde las VMs etiquetadas como nat-gw-tag a la instancia de VM nat-gateway-instance, que funciona como puerta de enlace NAT.

Para crear una ruta, haz lo siguiente:

Console

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

    Ir a Rutas

  2. Haz clic en la pestaña Administración de rutas.

  3. Haz clic en Crear ruta.

  4. Especifica un Nombre y una Descripción para la ruta.

  5. En la lista Red, selecciona la red de VPC lb-network-ipv6-only.

  6. En la lista Versión de IP, selecciona IPv6.

  7. Especifica un rango de IPv6 de destino. El destino más amplio posible es ::/0 para IPv6.

  8. Para que la ruta sea aplicable solo a instancias seleccionadas con etiquetas de red que coincidan, especifícalas en el campo Etiquetas de instancia. Para que la ruta sea aplicable a todas las instancias de la red, deja el campo en blanco. En este ejemplo, ingresa nat-gw-tag.

  9. En Siguiente salto, selecciona Especificar una instancia.

  10. Selecciona el nombre de la instancia que creaste para que funcione como puerta de enlace NAT. Para este ejemplo, selecciona nat-gateway-instance.

  11. Haz clic en Crear.

gcloud

Usa el comando gcloud compute routes create para crear una ruta nueva. El paquete se reenvía a la instancia de VM nat-gateway-instance, según lo especifica --next-hop-instance de la ruta.

gcloud compute routes create route-1 \
    --network=lb-network-ipv6-only \
    --priority=1000 \
    --tags=nat-gw-tag \
    --destination-range=::/0 \
    --next-hop-instance=nat-gateway-instance \
    --next-hop-instance-zone=us-west1-a

Crea VMs de backend y grupos de instancias

En este ejemplo, se usan dos grupos de instancias no administrados, cada uno con dos VMs de backend. Para demostrar la naturaleza regional de los balanceadores de cargas de red de transferencia internos, los dos grupos de instancias se colocan en zonas diferentes: us-west1-a y us-west1-c.

  • El grupo de instancias ig-a contiene estas dos VM:
    • vm-a1
    • vm-a2
  • El grupo de instancias ig-c contiene estas dos VM:
    • vm-c1
    • vm-c2

El tráfico a las cuatro VM de backend cuenta con balanceo de cargas.

En este ejemplo, la ruta estática que se creó en un paso anterior se limita a instancias de VM específicas con la etiqueta de red nat-gw-tag.

Console

Crea VM de backend

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

    Ir a Instancias de VM

  2. Repite estos pasos para cada VM y usa las siguientes combinaciones de nombre y zona.

    • Nombre: vm-a1, zona: us-west1-a
    • Nombre: vm-a2, zona: us-west1-a
    • Nombre: vm-c1, zona: us-west1-c
    • Nombre: vm-c2, zona: us-west1-c
  3. Haz clic en Crear instancia.

  4. En Nombre establece lo que se indica en el paso 2.

  5. En Región, selecciona us-west1 y selecciona una Zona como se indica en el paso 2.

  6. 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. Si es necesario, haz clic en Cambiar para cambiar la imagen.

  7. Haz clic en Opciones avanzadas.

  8. Haz clic en Herramientas de redes y configura los siguientes campos:

    1. En Etiquetas de red, ingresa allow-ssh, allow-health-check-ipv6 y nat-gw-tag.
    2. En Interfaces de red, selecciona lo siguiente:
      • Red: lb-network-ipv6-only
      • Subred: lb-subnet-ipv6-only-internal
      • Tipo de pila IP: IPv6 (pila única)
      • Dirección IPv6 interna principal: Efímera (automática)
  9. Haz clic en Avanzado y, luego, en el campo Secuencia de comandos de inicio, ingresa la siguiente secuencia de comandos. El contenido de la secuencia de comandos es idéntico para las cuatro VMs.

    #! /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
    
  10. Haz clic en Crear.

Crea grupos de instancias

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

    Ir a Grupos de instancias

  2. Repite estos pasos para crear dos grupos de instancias no administrados, cada uno con dos VM, mediante estas combinaciones.

    • Nombre del grupo de instancias: ig-a, zona: us-west1-a, VMs: vm-a1 y vm-a2
    • Nombre del grupo de instancias: ig-c, zona: us-west1-c, VMs: vm-c1 y vm-c2
  3. Haz clic en Crear grupo de instancias.

  4. Haz clic en Crear un nuevo grupo de instancias no administrado.

  5. Configura Nombre como se indica en el paso 2.

  6. En la sección Ubicación, elige us-west1 para Región y, luego, elige una opción en Zona, como se indica en el paso 2.

  7. En Red, selecciona lb-network-ipv6-only.

  8. En Subred, selecciona lb-subnet-ipv6-only-internal.

  9. En la sección Instancias de VM, agrega las VM como se indica en el paso 2.

  10. Haz clic en Crear.

gcloud

  1. A fin de crear las cuatro VMs, ejecuta el comando gcloud compute instances create cuatro veces, con las siguientes cuatro combinaciones para [VM-NAME] y [ZONE].

    • VM-NAME: vm-a1, ZONE: us-west1-a
    • VM-NAME: vm-a2, ZONE: us-west1-a
    • VM-NAME: vm-c1, ZONE: us-west1-c
    • VM-NAME: vm-c2, ZONE: us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check-ipv6,nat-gw-tag \
        --subnet=lb-subnet-ipv6-only-internal \
        --stack-type=IPV6_ONLY \
        --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'
    
  2. Crea los dos grupos de instancias no administrados en cada zona:

    gcloud compute instance-groups unmanaged create ig-a \
        --zone=us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone=us-west1-c
    
  3. Agrega las VM a los grupos de instancias adecuados:

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone=us-west1-a \
        --instances=vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone=us-west1-c \
        --instances=vm-c1,vm-c2
    

Configura los componentes del balanceador de cargas

En los siguientes pasos, se configuran los diferentes componentes de un balanceador de cargas de red de transferencia interno, comenzando con la verificación de estado y el servicio de backend, y luego el frontend.

Console

Inicia tu configuración

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

    Ir a Balanceo de cargas

  2. Haz clic en Crear balanceador de cargas.
  3. En Tipo de balanceador de cargas, selecciona Balanceador de cargas de red (TCP/UDP/SSL) y haz clic en Siguiente.
  4. En Proxy o de transferencia, selecciona Balanceador de cargas de transferencia y haz clic en Siguiente.
  5. Haz clic en Configurar.

Configuración básica

En la página Crear un balanceador de cargas de red de transferencia interna, ingresa la siguiente información:

  • Nombre del balanceador de cargas: ilb-ipv6-only
  • Región: us-west1
  • Red: lb-network-ipv6-only

Configuración de backend

  1. Haz clic en Configuración de backend.
  2. En la sección Backend nuevo de Backends, selecciona el Tipo de pila de IP como IPv6 (pila única).
  3. En Grupo de instancias, selecciona el grupo de instancias ig-a y haz clic en Listo.
  4. Haz clic en Agregar backend y repite este paso para agregar ig-c.
  5. En el menú desplegable Verificación de estado, elige Crear una verificación de estado, ingresa la siguiente información y haz clic en Guardar:
    • Nombre: hc-http-80.
    • Permiso: Regional.
    • Protocolo: HTTP.
    • Puerto: 80.
    • Protocolo de proxy: NONE.
    • Ruta de la solicitud: /.
  6. Verifica que aparezca una marca de verificación azul junto a Configuración de backend.

Configuración de frontend

  1. Haz clic en Configuración de frontend. En la sección IP y puerto de frontend nuevos, haz lo siguiente:
    1. En Nombre, ingresa fr-ilb-ipv6-only.
    2. Para controlar el tráfico IPv6, haz lo siguiente:
      1. En Versión de la IP, selecciona IPv6. El servidor TCP IPv6 que crearás en la siguiente sección se vincula a la VIP de la regla de reenvío.
      2. En Subred, selecciona lb-subnet-ipv6-only-internal. El rango de direcciones IPv6 en la regla de reenvío siempre es efímero.
      3. En Puertos, selecciona Varios y, luego, en el campo Número de puerto, ingresa 80.
      4. Haz clic en Listo.
    3. Verifica que haya una marca de verificación azul junto a Configuración de frontend antes de continuar.

Revisa la configuración

  1. Haz clic en Revisar y finalizar. Comprueba toda la configuración.
  2. Si la configuración es correcta, haz clic en Crear. La creación del balanceador de cargas de red de transferencia interno tarda unos minutos.

gcloud

  1. Crea una verificación de estado HTTP regional nueva para probar la conectividad HTTP a las VM en 80.

    gcloud compute health-checks create http hc-http-80 \
        --region=us-west1 \
        --port=80
    
  2. Crea el servicio de backend:

    gcloud compute backend-services create ilb-ipv6-only \
        --load-balancing-scheme=INTERNAL \
        --protocol=tcp \
        --region=us-west1 \
        --health-checks=hc-http-80 \
        --health-checks-region=us-west1
    
  3. Agrega los dos grupos de instancias al servicio de backend:

    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-a \
        --instance-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-c \
        --instance-group-zone=us-west1-c
    
  4. Crea la regla de reenvío de IPv6 con una dirección IPv6 efímera.

    gcloud compute forwarding-rules create fr-ilb-ipv6-only \
        --region=us-west1 \
        --load-balancing-scheme=INTERNAL \
        --subnet=lb-subnet-ipv6-only-internal \
        --ip-protocol=TCP \
        --ports=80 \
        --backend-service=ilb-ipv6-only \
        --backend-service-region=us-west1 \
        --ip-version=IPV6
    

Prueba el balanceador de cargas

Para probar el balanceador de cargas, crea una VM de cliente en la misma región que el balanceador de cargas y, luego, envía tráfico del cliente al balanceador de cargas.

Crear una VM de cliente

En este ejemplo se crea una VM de cliente (vm-client) en la misma región en la que están las VM de backend (servidor).

Console

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

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.

  3. En Nombre, ingresa vm-client.

  4. En Región, selecciona us-west1..

  5. En Zona, selecciona us-west1-a.

  6. Haz clic en Opciones avanzadas.

  7. Haz clic en Herramientas de redes y configura los siguientes campos:

    1. En Etiquetas de red, ingresa allow-ssh.
    2. En Interfaces de red, selecciona lo siguiente:
      • Red: lb-network-ipv6-only
      • Subred: lb-subnet-ipv6-only-internal
      • Tipo de pila IP: IPv6 (pila única)
    3. Haz clic en Listo.
  8. Haz clic en Crear.

gcloud

La VM de cliente puede estar en cualquier zona de la misma región que el balanceador de cargas. En este ejemplo el cliente se encuentra en la zona us-west1-a y usa la misma subred que las VM de backend.

gcloud compute instances create vm-client \
    --zone=us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --stack-type=IPV6_ONLY \
    --tags=allow-ssh \
    --subnet=lb-subnet-ipv6-only-internal

Prueba la conexión

En esta prueba, se contacta al balanceador de cargas desde una VM de cliente diferente, es decir, no desde una VM de backend del balanceador de cargas. El comportamiento esperado consiste en que el tráfico se distribuya entre las cuatro VMs de backend.

  1. Conéctate a la instancia de VM del cliente a través de SSH.

    gcloud compute ssh vm-client --zone=us-west1-a
    
  2. Describe la regla de reenvío de IPv6 fr-ilb-ipv6-only. Ten en cuenta la IPV6_ADDRESS en la descripción.

    gcloud compute forwarding-rules describe fr-ilb-ipv6-only \
        --region=us-west1
    
  3. Desde los clientes con conectividad IPv6, ejecuta el siguiente comando:

    curl http://IPV6_ADDRESS:80
    

    Por ejemplo, si la dirección IPv6 asignada es [fd20:307:120c:2000:0:1:0:0/96]:80, el comando debe verse de la siguiente manera:

    curl http://[fd20:307:120c:2000:0:1:0:0]:80
    

    La respuesta puede ser la siguiente:

    Page returned from: vm-a2
    

¿Qué sigue?