Configurar un balanceador de carga de red de paso a través externo con NEGs de zona

En este documento se explica cómo desplegar un balanceador de carga de red de paso a través externo con backends de grupos de puntos finales de red (NEG) por zonas. Los NEGs de zona con GCE_VM_IP endpoints te permiten hacer lo siguiente:

  • Reenvía paquetes a las interfaces de red que no sean nic0 de las instancias de máquina virtual representando una interfaz de red de una instancia de máquina virtual como endpoint de backend.
  • Crea un conjunto flexible de endpoints de backend en el que se pueda adjuntar un endpoint a varios NEGs y cada NEG pueda tener un conjunto de endpoints diferente, pero posiblemente superpuesto.

Antes de seguir este documento, familiarícese con lo siguiente:

Permisos

Para seguir estos pasos, debe crear instancias y modificar una red en un proyecto. Debes ser propietario o editor del proyecto, o bien tener todos los roles de gestión de identidades y accesos de Compute Engine siguientes:

Tarea Rol necesario
Crear redes, subredes y componentes de balanceador de carga Administrador de redes de Compute (roles/compute.networkAdmin)
Añadir y eliminar reglas de cortafuegos Administrador de seguridad de Compute (roles/compute.securityAdmin)
Crear instancias Administrador de instancias de Compute (roles/compute.instanceAdmin)

Para obtener más información, consulta las siguientes páginas:

Descripción general de la configuración

En este documento se explica cómo configurar y probar un balanceador de carga de red de paso a través externo que usa GCE_VM_IPbackends de NEG zonales. En los pasos de esta sección se describe cómo configurar lo siguiente:

  1. Una red de VPC de ejemplo llamada lb-network con una subred personalizada.
  2. Reglas de cortafuegos que permiten las conexiones entrantes a las VMs de backend.
  3. Cuatro VMs:
    • VMs vm-a1 y vm-a2 en la zona us-west1-a
    • VMs vm-c1 y vm-c2 en la zona us-west1-c
  4. Dos NEG zonales de backend: neg-a en la zona us-west1-a y neg-c en la zona us-west1-c. Cada NEG tiene los siguientes endpoints:
    • neg-a contiene estos dos endpoints:
      • nic1 de la VM vm-a1 identificada por su dirección IP interna principal
      • nic1 de la VM vm-a2 identificada por su dirección IP interna principal
    • neg-c contiene estos dos endpoints:
      • nic1 de la VM vm-c1 identificada por su dirección IP interna principal
      • nic1 de la VM vm-c2 identificada por su dirección IP interna principal
  5. Una VM cliente (vm-client) en us-west1-a para probar las conexiones
  6. Los siguientes componentes del balanceador de carga:
    • Un servicio de backend externo en la región us-west1 para gestionar la distribución de conexiones a los dos NEGs zonales
    • Una regla de reenvío externa y una dirección IP para el frontend del balanceador de carga

El balanceador de carga de red de paso a través externo es un balanceador de carga regional. Todos los componentes del balanceador de carga (VMs de backend, servicio de backend y regla de reenvío) deben estar en la misma región.

La arquitectura de este ejemplo es la siguiente:

Balanceador de carga de red de paso a través externo con NEGs de zona.
Balanceador de carga de red de paso a través externo con NEGs por zonas (haz clic para ampliar).

Antes de empezar

Instala Google Cloud CLI. Para obtener una descripción general completa de la herramienta, consulta la información general de la CLI de gcloud. Puedes encontrar comandos relacionados con el balanceo de carga en las referencias de la API y de gcloud.

Si no has ejecutado la CLI de gcloud anteriormente, ejecuta primero el comando gcloud init para autenticarte.

En esta página se da por supuesto que tienes conocimientos sobre bash.

Configurar la red y las subredes

En el ejemplo de esta página se usa una red de VPC en modo personalizado llamada lb-network. Si solo quieres gestionar el tráfico IPv4, puedes usar una red de VPC en modo automático. Sin embargo, el tráfico IPv6 requiere una subred de modo personalizado.

El tráfico IPv6 también requiere una subred de doble pila (stack-type definida como IPV4_IPV6). Cuando creas una subred de doble pila en una red de VPC en modo personalizado, eliges un tipo de acceso IPv6 para la subred. En este ejemplo, asignamos el valor ipv6-access-type al parámetro EXTERNAL de la subred. Esto significa que a las nuevas VMs de esta subred se les pueden asignar tanto direcciones IPv4 externas como direcciones IPv6 externas. Las reglas de reenvío también pueden tener asignadas direcciones IPv4 externas y direcciones IPv6 externas.

Los backends y los componentes del balanceador de carga que se usan en este ejemplo se encuentran en esta región y subred:

  • Región: us-central1
  • Subred: lb-subnet, con el intervalo de direcciones IPv4 principal 10.1.2.0/24. Aunque elijas el intervalo de direcciones IPv4 que se configura en la subred, el intervalo de direcciones IPv6 se asigna automáticamente. Google proporciona un bloque CIDR IPv6 de tamaño fijo (/64).

Para crear la red y la subred de ejemplo, sigue estos pasos.

Consola

Para admitir el tráfico IPv4 e IPv6, sigue estos pasos:

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

    Ir a redes de VPC

  2. Haz clic en Crear red VPC.

  3. Asigne un Nombre de lb-network.

  4. En la sección Subredes:

    • Elige Personalizado en Modo de creación de subred.
    • En la sección Nueva subred, configura los siguientes campos y haz clic en Hecho:
      • Nombre: lb-subnet
      • Región: us-central1
      • Tipo de pila de IP: IPv4 e IPv6 (pila dual)
      • Intervalo de IPv4: 10.1.2.0/24
        Aunque puedes configurar un intervalo de direcciones IPv4 para la subred, no puedes elegir el intervalo de direcciones IPv6 para la subred. Google proporciona un bloque CIDR IPv6 de tamaño fijo (/64).
      • Tipo de acceso IPv6: Externo
  5. Haz clic en Crear.

Para admitir solo tráfico IPv4, sigue estos pasos:

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

    Ir a redes de VPC

  2. Haz clic en Crear red VPC.

  3. Asigne un Nombre de lb-network.

  4. En la sección Subredes:

    • Elige Personalizado en Modo de creación de subred.
    • En la sección Nueva subred, configura los siguientes campos y haz clic en Hecho:
      • Nombre: lb-subnet
      • Región: us-central1
      • Tipo de pila de IP: IPv4 (pila única)
      • Intervalo de IPv4: 10.1.2.0/24
  5. Haz clic en Crear.

gcloud

  1. Crea la red VPC en modo personalizado:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. En la red lb-network, crea una subred para los backends de la región us-central1.

    Para el tráfico IPv4 e IPv6, usa el siguiente comando para crear una subred de doble pila:

    gcloud compute networks subnets create lb-subnet \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=EXTERNAL \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-central1
    

    Para solo tráfico IPv4, usa el siguiente comando:

    gcloud compute networks subnets create lb-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-central1
    

Crear VMs y grupos de endpoints de red

Para demostrar la naturaleza regional de los balanceadores de carga de red de paso a través externos, en este ejemplo se usan dos backends de NEG zonales en dos zonas diferentes. El tráfico se equilibra entre ambos NEGs y entre los endpoints de cada NEG.

Crear VMs

En este caso de balanceo de carga, creará cuatro máquinas virtuales e instalará un servidor web Apache en cada instancia. El servidor web escucha en el puerto TCP 80. De forma predeterminada, Apache está configurado para enlazarse a cualquier dirección IP. Los balanceadores de carga de red de paso a través externos envían paquetes conservando la dirección IP de destino.

Para simplificar las instrucciones, estas VMs de backend ejecutan Debian GNU Linux 10.

Para gestionar el tráfico IPv4 e IPv6, configura las VMs de backend para que sean de doble pila. Define el valor stack-type de la VM como IPV4_IPV6. Las VMs también heredan el ajuste ipv6-access-type (en este ejemplo, EXTERNAL) de la subred. Para obtener más información sobre los requisitos de IPv6, consulta el resumen del balanceador de carga de red de paso a través externo: reglas de reenvío.

Para usar las VMs que ya tienes como back-ends, actualízalas para que sean de doble pila con el comando gcloud compute instances network-interfaces update.

Las instancias que participan como VMs de backend de balanceadores de carga de red de paso a través externos deben ejecutar el entorno de invitado de Linux, el entorno de invitado de Windows u otros procesos que proporcionen una función equivalente.

Cada VM se crea con dos interfaces de red, nic0 y nic1. En este tutorial se usa nic1, que está asociado a la red de VPC lb-network y a la subred lb-subnet. Usa esta red lb-network y esta subred lb-subnet para crear los NEG zonales más adelante en este procedimiento.

Consola

Crear VMs

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

    Ir a instancias de VM

  2. Repite los pasos siguientes para crear cuatro VMs con 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. Asigna el Nombre como se ha indicado anteriormente.

  5. En Región, elige us-west1 y, en Zona, selecciona la que se ha indicado anteriormente.

  6. En la sección Disco de arranque, asegúrate de que la opción Debian GNU/Linux 12 (bookworm) esté seleccionada para el disco de arranque. Si es necesario, haz clic en Elegir para cambiar la imagen.

  7. Haz clic en Opciones avanzadas y haz los siguientes cambios:

    • Haga clic en Redes y añada las siguientes etiquetas de red: lb-tag
    • En Interfaces de red, haz clic en Añadir interfaz de red y haz los siguientes cambios:

      En el caso de los backends IPv4 e IPv6:

      • Red: lb-network
      • Subred: lb-subnet
      • Tipo de pila de IP: IPv4 and IPv6 (dual-stack)
      • IP interna principal: efímera (automática)
      • Dirección IPv4 externa: efímera (automática)
      • Dirección IPv6 externa: efímera (automática)

      En el caso de los backends solo IPv4:

      • Red: lb-network
      • Subred: lb-subnet
      • Tipo de pila de IP: IPv4 (single-stack)
      • IP interna principal: efímera (automática)
      • IP externa: efímera

      A continuación, haga clic en Hecho.

    • Haz clic en Gestión. En el campo Startup script (Secuencia de comandos de inicio), copia y pega el siguiente contenido de la secuencia de comandos. El contenido de la secuencia de comandos es idéntico en 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
      
  8. Haz clic en Crear.

gcloud

Crea las cuatro VMs ejecutando el siguiente comando cuatro veces y usando estas cuatro combinaciones para VM_NAME y ZONE. El contenido de la secuencia de comandos es idéntico en las cuatro VMs.

  • VM_NAME: vm-a1 y ZONE: us-west1-a
  • VM_NAME: vm-a2 y ZONE: us-west1-a
  • VM_NAME: vm-c1 y ZONE: us-west1-c
  • VM_NAME: vm-c2 y ZONE: us-west1-c

Para gestionar el tráfico IPv4 e IPv6, usa el siguiente comando.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPV4_IPV6,--ipv6-network-tier=PREMIUM \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPV4_IPV6,--ipv6-network-tier=PREMIUM \
    --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'

Para gestionar el tráfico solo IPv4, usa el siguiente comando:

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPV4_ONLY \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPV4_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'

Crear NEGs de zona con GCE_VM_IP endpoints

Las NEG deben crearse en las mismas zonas que las VMs creadas en el paso anterior. En este ejemplo también se crea el NEG en la red de VPC lb-network y la subred lb-subnet asociadas a nic1 de las máquinas virtuales creadas en el paso anterior. Por lo tanto, los endpoints del NEG estarán en nic1 de las VMs.

Consola

Para crear un grupo de endpoints de red de zona, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haz clic en Crear grupo de endpoints de red.
  3. Asigna un nombre al NEG de zona: neg-a.
  4. Selecciona el Tipo de grupo de puntos finales de red: Grupo de puntos finales de red (por zonas).
  5. Selecciona la red: lb-network.
  6. Selecciona la Subred: lb-subnet.
  7. Selecciona la zona: us-west1-a.
  8. Haz clic en Crear.
  9. Repita estos pasos para crear un segundo NEG zonal llamado neg-c en la zona us-west1-c.

Añade los endpoints al NEG de zona:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a Grupos de endpoints de red
  2. Haga clic en el Nombre del primer grupo de endpoints de red creado en el paso anterior (neg-a). Verá la página Detalles del grupo de puntos finales de red.
  3. En la sección Puntos finales de red de este grupo, haz clic en Añadir punto final de red. Verás la página Añadir punto final de red.

    1. Haz clic en Instancia de VM y selecciona vm-a1 para añadir sus direcciones IP internas como endpoints de red.
    2. Haz clic en Crear.
    3. Vuelve a hacer clic en Añadir endpoint de red y, en Instancia de VM, selecciona vm-a2.
    4. Haz clic en Crear.
  4. Haga clic en el nombre del segundo grupo de endpoints de red creado en el paso anterior (neg-c). Verá la página Detalles del grupo de puntos finales de red.

  5. En la sección Puntos finales de red de este grupo, haz clic en Añadir punto final de red. Verás la página Añadir punto final de red.

    1. Haz clic en Instancia de VM y selecciona vm-c1 para añadir sus direcciones IP internas como endpoints de red.
    2. Haz clic en Crear.
    3. Vuelve a hacer clic en Añadir endpoint de red y, en Instancia de VM, selecciona vm-c2.
    4. Haz clic en Crear.

gcloud

  1. Crea un NEG zonal GCE_VM_IP llamado neg-a en us-west1-a con el comando gcloud compute network-endpoint-groups create:

    gcloud compute network-endpoint-groups create neg-a \
        --network-endpoint-type=gce-vm-ip \
        --zone=us-west1-a \
        --network=lb-network \
        --subnet=lb-subnet
    
  2. Añade los endpoints a neg-a:

    gcloud compute network-endpoint-groups update neg-a \
        --zone=us-west1-a \
        --add-endpoint='instance=vm-a1' \
        --add-endpoint='instance=vm-a2'
    
  3. Crea un NEG zonal GCE_VM_IP llamado neg-c en us-west1-c con el comando gcloud compute network-endpoint-groups create:

    gcloud compute network-endpoint-groups create neg-c \
        --network-endpoint-type=gce-vm-ip \
        --zone=us-west1-c \
        --network=lb-network \
        --subnet=lb-subnet
    
  4. Añade los endpoints a neg-c:

    gcloud compute network-endpoint-groups update neg-c \
        --zone=us-west1-c \
        --add-endpoint='instance=vm-c1' \
        --add-endpoint='instance=vm-c2'
    

Configurar reglas de cortafuegos

Crea reglas de cortafuegos que permitan que el tráfico externo (incluidas las comprobaciones de estado) llegue a las instancias de backend.

En este ejemplo, se crea una regla de cortafuegos que permite que el tráfico TCP de todos los intervalos de origen llegue a tus instancias de backend en el puerto 80. Si quieres crear reglas de cortafuegos independientes específicamente para las sondas de comprobación del estado, usa los intervalos de direcciones IP de origen que se describen en el artículo Comprobaciones del estado: intervalos de IP de las sondas y reglas de cortafuegos.

Consola

En la Google Cloud consola, ve a la página Cortafuegos.

Ir a Cortafuegos

Para permitir el tráfico IPv4, sigue estos pasos:

  1. Haz clic en Crear regla de cortafuegos.
  2. Escribe un nombre: allow-network-lb-ipv4.
  3. En Red, selecciona lb-network.
  4. En Destinos, seleccione Etiquetas de destino especificadas.
  5. En el campo Etiquetas de destino, introduce lb-tag.
  6. En Filtro de origen, selecciona Intervalos de IPv4.
  7. Asigna el valor 0.0.0.0/0 a Intervalos de IPv4 de origen. De esta forma, se permite el tráfico IPv4 de cualquier origen. Esto también permite que las sondas de comprobación del estado de Google accedan a las instancias de backend.
  8. En Protocolos y puertos especificados, selecciona TCP e introduce 80.
  9. Haz clic en Crear.

Para permitir el tráfico IPv6, sigue estos pasos:

  1. Vuelve a hacer clic en Crear regla de cortafuegos.
  2. Escribe un nombre: allow-network-lb-ipv6.
  3. En Red, selecciona lb-network.
  4. En Destinos, seleccione Etiquetas de destino especificadas.
  5. En el campo Etiquetas de destino, introduce lb-tag.
  6. En Filtro de origen, seleccione Intervalos de IPv6.
  7. Asigna el valor ::/0 a Intervalos de IPv6 de origen. Permite el tráfico IPv6 de cualquier fuente. Esto también permite que las sondas de comprobación del estado de Google accedan a las instancias de backend.
  8. En Protocolos y puertos especificados, selecciona TCP e introduce 80.
  9. Haz clic en Crear.

gcloud

Para permitir el tráfico IPv4, ejecuta el siguiente comando:

gcloud compute firewall-rules create allow-network-lb-ipv4 \
    --network=lb-network \
    --target-tags=lb-tag \
    --allow=tcp:80 \
    --source-ranges=0.0.0.0/0

Para permitir el tráfico IPv6, ejecuta el siguiente comando:

gcloud compute firewall-rules create allow-network-lb-ipv6 \
    --network=lb-network \
    --target-tags=lb-tag \
    --allow=tcp:80 \
    --source-ranges=::/0
 

Configurar el balanceador de carga

A continuación, configura el balanceador de carga.

Cuando configuras el balanceador de carga, tus VMs reciben paquetes destinados a la dirección IP externa estática que configures. Si usas una imagen proporcionada por Compute Engine, tus instancias se configurarán automáticamente para gestionar esta dirección IP. Si usas otra imagen, debes configurar esta dirección como alias en eth1 o como bucle de retorno en cada instancia.

Para configurar el balanceador de carga, siga estas instrucciones.

Consola

Iniciar la configuración

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

    Ir a Balanceo de carga

  2. Haga clic en Crear balanceador de carga.
  3. En Tipo de balanceador de carga, selecciona Balanceador de carga de red (TCP/UDP/SSL) y haz clic en Siguiente.
  4. En Proxy o pasarela, selecciona Balanceador de carga de pasarela y haz clic en Siguiente.
  5. En Público o interno, selecciona Público (externo) y haz clic en Siguiente.
  6. Haz clic en Configurar.

Configuración de backend

  1. En la página Crear balanceador de carga de red de paso a través externo, introduzca el nombre network-lb-zonal-neg del nuevo balanceador de carga.
  2. En Región, selecciona us-west1.
  3. En Tipo de backend, selecciona Grupo de puntos finales de red por zonas.
  4. Haz clic en Configuración de backend. Aparece el nombre del balanceador de carga que has introducido anteriormente, pero no se puede modificar.
  5. En la página Configuración de backend, haz los siguientes cambios:
    1. En la lista Grupo de puntos finales de red, selecciona neg-a y, a continuación, haz clic en Hecho.
    2. Haz clic en Añadir backend y repite el paso anterior para añadir neg-c.
    3. En Comprobación del estado, elige Crear una comprobación del estado o Crear otra comprobación del estado y, a continuación, introduce la siguiente información:
      • Nombre: tcp-health-check
      • Protocolo: TCP
      • Puerto: 80
    4. Haz clic en Guardar.
  6. Comprueba que haya una marca de verificación azul junto a Configuración del backend antes de continuar.

Configuración de frontend

  1. Haz clic en Configuración de frontend.
  2. En Nombre, escribe netlb-forwarding-rule.
  3. Para gestionar el tráfico IPv4, sigue estos pasos:
    1. En Versión de IP, selecciona IPv4.
    2. En Dirección IP, haz clic en el menú desplegable y selecciona Crear dirección IP.
      1. En la página Reservar una dirección IP estática nueva, en Nombre, introduce netlb-ipv4-address.
      2. Haz clic en Reservar.
    3. En Puertos, elige Único. En Número de puerto, introduce 80.
    4. Haz clic en Listo.
  4. Para gestionar el tráfico IPv6, sigue estos pasos:

    1. En Versión de IP, selecciona IPv6.
    2. En Subred, selecciona lb-subnet.
    3. En Intervalo de IPv6, haz clic en el menú desplegable y selecciona Crear dirección IP.
      1. En la página Reservar una dirección IP estática nueva, en Nombre, introduce netlb-ipv6-address.
      2. Haz clic en Reservar.
    4. En Puertos, elige Único. En Número de puerto, introduce 80.
    5. Haz clic en Listo.

    Un círculo azul con una marca de verificación a la izquierda de Configuración del frontend indica que la configuración se ha completado correctamente.

Revisar la configuración

  1. Haz clic en Revisar y finalizar.
  2. Revisa los ajustes de configuración de tu balanceador de carga.
  3. Opcional: Haz clic en Código equivalente para ver la solicitud de la API REST que se usará para crear el balanceador de carga.
  4. Haz clic en Crear.

    En la página de balanceo de carga, en la columna Backend de tu nuevo balanceador de carga, deberías ver una marca de verificación verde que indica que el nuevo balanceador de carga está en buen estado.

gcloud

  1. Reserva una dirección IP externa estática.

    Tráfico IPv4

    Crea una dirección IPv4 externa estática para tu balanceador de carga.

    gcloud compute addresses create netlb-ipv4-address \
        --region=us-west1
    

    Tráfico IPv6

    Crea un intervalo de direcciones IPv6 externas estáticas para tu balanceador de carga. La subred utilizada debe ser una subred de doble pila con un intervalo IPv6 externo.

    gcloud compute addresses create netlb-ipv6-address \
        --region=us-west1 \
        --subnet=lb-subnet \
        --ip-version=IPV6 \
        --endpoint-type=NETLB
    
  2. Crea una comprobación del estado TCP.

    gcloud compute health-checks create tcp tcp-health-check \
        --region=us-west1 \
        --port=80
    
  3. Crea un servicio de backend.

    gcloud compute backend-services create networklb-backend-service \
        --protocol=TCP \
        --health-checks=tcp-health-check \
        --health-checks-region=us-west1 \
        --region=us-west1
    
  4. Añade los dos NEGs zonales, neg-a y neg-c, al servicio de backend:

    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-a \
        --network-endpoint-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-c \
        --network-endpoint-group-zone=us-west1-c
    
  5. Crea las reglas de reenvío en función de si quieres gestionar el tráfico IPv4 o el tráfico IPv6. Crea ambas reglas de reenvío para gestionar los dos tipos de tráfico.

    Tráfico IPv4

    Crea una regla de reenvío para dirigir el tráfico TCP entrante al servicio de backend. Usa la dirección IPv4 reservada en el paso 1 como dirección IP externa estática del balanceador de carga.

      gcloud compute forwarding-rules create forwarding-rule-ipv4 \
          --load-balancing-scheme=EXTERNAL \
          --region=us-west1 \
          --ports=80 \
          --address=netlb-ipv4-address \
          --backend-service=networklb-backend-service
    

    Tráfico IPv6

    Crea una regla de reenvío para gestionar el tráfico IPv6. Usa el intervalo de direcciones IPv6 reservado en el paso 1 como dirección IP externa estática del balanceador de carga. La subred utilizada debe ser una subred de doble pila con un intervalo de subred IPv6 externa.

      gcloud compute forwarding-rules create forwarding-rule-ipv6 \
          --load-balancing-scheme=EXTERNAL \
          --region=us-west1 \
          --network-tier=PREMIUM \
          --ip-version=IPV6 \
          --subnet=lb-subnet \
          --address=netlb-ipv6-address \
          --ports=80 \
          --backend-service=networklb-backend-service
    

Probar el balanceador de carga

Ahora que el servicio de balanceo de carga está configurado, puedes empezar a enviar tráfico a la dirección IP externa del balanceador de carga y ver cómo se distribuye el tráfico a las instancias de backend.

Buscar la dirección IP externa del balanceador de carga

Consola

  1. En la página de balanceo de carga Avanzado, ve a la pestaña Reglas de reenvío.

    Ir a Reglas de reenvío

  2. Busca la regla de reenvío que usa el balanceador de carga.

  3. En la columna Dirección, anota la dirección IP externa que aparece.

gcloud: IPv4

Introduce el siguiente comando para ver la dirección IPv4 externa de la regla de reenvío network-lb-forwarding-rule que usa el balanceador de carga.

gcloud compute forwarding-rules describe forwarding-rule-ipv4 \
    --region=us-west1

gcloud: IPv6

Introduce el siguiente comando para ver la dirección IPv6 externa de la regla de reenvío network-lb-forwarding-rule que usa el balanceador de carga.

gcloud compute forwarding-rules describe forwarding-rule-ipv6 \
    --region=us-west1

Enviar tráfico al balanceador de carga

Envía solicitudes web al balanceador de carga mediante curl para ponerte en contacto con su dirección IP.

  • En los clientes con conectividad IPv4, ejecuta el siguiente comando:

    while true; do curl -m1 IPV4_ADDRESS; done
    
  • En los clientes con conectividad IPv6, ejecuta el siguiente comando:

    while true; do curl -m1 http://IPV6_ADDRESS; done
    

    Por ejemplo, si la dirección IPv6 asignada es [2001:db8:1:1:1:1:1:1/96]:80, el comando sería similar al siguiente:

    while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
    

Fíjate en el texto devuelto por el comando curl. El nombre de la VM backend que genera la respuesta se muestra en ese texto. Por ejemplo: Page served from: VM_NAME

La respuesta del comando curl se alterna aleatoriamente entre las instancias de backend. Si tu respuesta no tiene éxito al principio, es posible que tengas que esperar unos 30 segundos para que la configuración se cargue por completo y para que tus instancias se marquen como correctas antes de volver a intentarlo.

Opciones de configuración adicionales

Para personalizar aún más tu balanceador de carga de red de paso a través externo, puedes configurar la afinidad de sesión y la dirección del tráfico, así como definir una política de conmutación por error o una política de seguimiento de conexiones. Estas tareas son opcionales y puedes realizarlas en el orden que prefieras. Para ver las instrucciones, consulta Opciones de configuración adicionales.

Crear una regla de reenvío IPv6 con BYOIP

El balanceador de carga creado en los pasos anteriores está configurado con reglas de reenvío con IP version como IPv4 o IPv6. En esta sección se proporcionan instrucciones para crear una regla de reenvío de IPv6 con direcciones IP propias (BYOIP).

La función Incorporar tus propias IPs te permite aprovisionar y usar tus propias direcciones IPv6 públicas para los recursos de Google Cloud . Para obtener más información, consulta el artículo Traer tus propias direcciones IP.

Antes de configurar una regla de reenvío de IPv6 con direcciones BYOIP, debes completar los siguientes pasos:

  1. Crear un prefijo IPv6 público anunciado
  2. Crear prefijos públicos delegados
  3. Crear subprefijos IPv6
  4. Anuncia el prefijo

Para crear una regla de reenvío, sigue estos pasos:

Consola

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

    Ve a Balanceo de carga.

  2. Haga clic en el nombre del balanceador de carga que quiera modificar.
  3. Haz clic en Editar.
  4. Haz clic en Configuración de frontend.
  5. Haz clic en Añadir IP y puerto de frontend.
  6. En la sección IP de frontend y puerto nuevos, especifica lo siguiente:
    1. Selecciona el protocolo que necesites.
    2. En el campo Versión de IP, selecciona IPv6.
    3. En el campo Source of IPv6 range (Origen del intervalo de IPv6), selecciona BYOIP.
    4. En la lista Recogida de IPs, selecciona un subprefijo creado en los pasos anteriores con la opción de regla de reenvío habilitada.
    5. En el campo Intervalo de IPv6, introduce el intervalo de direcciones IPv6. El prefijo del intervalo de direcciones IPv6 debe coincidir con la longitud del prefijo asignable especificada por el subprefijo asociado.
    6. En el campo Puertos, introduce un número de puerto.
    7. Haz clic en Listo.
  7. Haz clic en Actualizar.

gcloud

Para crear la regla de reenvío, usa el comando gcloud compute forwarding-rules create:

gcloud compute forwarding-rules create FWD_RULE_NAME \
    --load-balancing-scheme EXTERNAL \
    --ip-protocol PROTOCOL \
    --ports ALL \
    --ip-version IPV6 \
    --region REGION_A \
    --address IPV6_CIDR_RANGE  \
    --backend-service BACKEND_SERVICE \
    --ip-collection PDP_NAME

Haz los cambios siguientes:

  • FWD_RULE_NAME: el nombre de la regla de reenvío
  • PROTOCOL: el protocolo IP de la regla de reenvío. El valor predeterminado es TCP. El protocolo IP puede ser TCP, UDP o L3_DEFAULT.
  • REGION_A: región de la regla de reenvío
  • IPV6_CIDR_RANGE: el intervalo de direcciones IPv6 al que sirve la regla de reenvío. El prefijo del intervalo de direcciones IPv6 debe coincidir con la longitud del prefijo asignable especificada por el subprefijo asociado.
  • BACKEND_SERVICE: el nombre del servicio de backend
  • PDP_NAME: el nombre del prefijo público delegado. El PDP debe ser un subprefijo en el modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION.

Siguientes pasos