Configura un balanceador de cargas de red de transferencia interno con NEG zonales

En este documento, se muestra cómo implementar un balanceador de cargas de red de transferencia externo con backends de grupos de extremos de red (NEG) zonales. Los NEG zonales con extremos GCE_VM_IP te permiten hacer lo siguiente:

  • Reenvía paquetes a las interfaces de red que no son nic0 de instancias de máquina virtual (VM) mediante la representación de una interfaz de red de una instancia de VM como el extremo de backend.
  • Crea un conjunto flexible de extremos de backend en el que se pueda conectar un extremo a varios NEG y cada NEG pueda tener un conjunto de extremos diferente, pero posiblemente superpuesto.

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

Permisos

Para seguir estos pasos, debes crear instancias y modificar una red en un proyecto. Debes ser propietario o editor de un proyecto o tener todos los siguientes roles de IAM de Compute Engine:

Tarea Función requerida
Crear redes, subredes y componentes del balanceador de cargas Administrador de redes
Agrega y quita reglas de firewall Administrador de seguridad
Crea instancias Administrador de instancias de Compute

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

Descripción general de la configuración

En este documento, se muestra cómo configurar y probar un balanceador de cargas de red de transferencia externo que usa backends de NEG zonales de GCE_VM_IP. En los pasos de esta sección, se describe cómo configurar los siguientes elementos:

  1. Una red de VPC de muestra llamada lb-network con una subred personalizada
  2. Reglas de firewall que permiten conexiones entrantes a VMs de backend.
  3. Cuatro VM:
    • VM vm-a1 y vm-a2 en la zona us-west1-a
    • VM 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 extremos:
    • neg-a contiene estos dos extremos:
      • 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 extremos:
      • 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 de cliente (vm-client) en us-west1-a para probar conexiones
  6. Los siguientes componentes del balanceador de cargas:
    • Un servicio de backend externo en la región us-west1 para administrar la distribución de conexiones en los dos NEG zonales
    • Una regla de reenvío interno y una dirección IP interna para el frontend del balanceador de cargas

El balanceador de cargas de red de transferencia externo es un balanceador de cargas regional. Todos los componentes del balanceador de cargas (VM de backend, servicio de backend y regla de reenvío) deben estar en la misma región.

Así se ve la arquitectura de este ejemplo:

Balanceador de cargas de red de transferencia externo con NEG zonales.
Balanceador de cargas de red de transferencia externo con NEG zonales (haz clic para ampliar).

Antes de comenzar

Instala Google Cloud CLI. Para obtener una descripción general completa de la herramienta, consulta la descripción general de la CLI de gcloud. Encontrarás comandos relacionados con el balanceo de cargas en las referencias de la API y de gcloud.

Si no ejecutaste la CLI de gcloud antes, ejecuta primero el comando gcloud init para autenticarte.

En esta página, se supone que estás familiarizado con Bash.

Configura la red y las subredes

En el ejemplo de esta página, se usa una red de VPC en modo personalizado con el nombre lb-network. Puedes usar una red de VPC de modo automático si solo deseas controlar el tráfico IPv4. 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 configurada en IPv4_IPv6). Cuando creas una subred de doble pila en una red de VPC de modo personalizado, eliges un tipo de acceso IPv6 para la subred. Para este ejemplo, establecemos el parámetro ipv6-access-type de la subred en EXTERNAL. Esto significa que a las VM nuevas de esta subred se les pueden asignar direcciones IPv4 y IPv6 externas. Las reglas de reenvío también se pueden asignar direcciones IPv4 externas y direcciones IPv6 externas.

Los backends y los componentes del balanceador de cargas usados para este ejemplo se encuentran en la región y la subred que se indican a continuación:

  • Región: us-central1
  • Subred: lb-subnet, con el rango de direcciones IPv4 principal 10.1.2.0/24. Aunque elijas qué rango de direcciones IPv4 se configurará en la subred, el rango 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:

Console

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

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

    Ir a las redes de VPC

  2. Haga clic en Crear red de VPC.

  3. En Nombre ingresa lb-network.

  4. En la sección Subredes:

    • Establece Modo de creación de subred en Personalizado.
    • En la sección Subred nueva, configura los siguientes campos y haz clic en Listo:
      • Nombre: lb-subnet
      • Región: us-central1
      • Tipo de pila IP: IPv4 e IPv6 (pila doble)
      • Rango IPv4: 10.1.2.0/24
        Aunque puedes configurar un rango de direcciones IPv4 para la subred, no puedes elegir el rango de direcciones IPv6 para lo siguiente: la subred. Google proporciona un bloque CIDR IPv6 de tamaño fijo (/64).
      • Tipo de acceso IPv6: externo
  5. Haz clic en Crear.

Para que solo sea compatible con el tráfico IPv4, sigue estos pasos:

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

    Ir a las redes de VPC

  2. Haga clic en Crear red de VPC.

  3. En Nombre ingresa lb-network.

  4. En la sección Subredes:

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

gcloud

  1. Crea la red de VPC en modo personalizado:

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

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

    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 el 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
    

Crea VMs y grupos de extremos de red

Para demostrar la naturaleza regional del balanceador de cargas de red de transferencia externo, en este ejemplo se usan dos backends de NEG zonales en dos zonas diferentes. Las cargas del tráfico se balancean en los NEG y en los extremos dentro de cada NEG.

Crea las VM

Para esta situación de balanceo de cargas, debes crear cuatro VMs y, luego, instalar un servidor web Apache en cada instancia. El servidor web escucha en el puerto TCP 80. De forma predeterminada, Apache está configurado para vincularse a cualquier dirección IP. Los balanceadores de cargas de red de transferencia externos entregan paquetes mediante la preservación de la dirección IP de destino.

Para simplificar el instructivo, estas VMs de backend ejecutan Debian GNU/Linux 10.

Para manejar el tráfico IPv4 e IPv6, configura las VM de backend a fin de que sean de pila doble. Establece stack-type de la VM en IPv4_IPv6. Las VM también heredan la configuración ipv6-access-type (en este ejemplo, EXTERNAL) de la subred. Para obtener más detalles sobre los requisitos de IPv6, consulta la descripción general del balanceador de cargas de red de transferencia externo: reglas de reenvío.

Para usar las VMs existentes como backends, actualiza las VM para que sean de pila doble mediante el comando gcloud compute instances network-interfaces update.

Las instancias que participan como VMs de backend para los balanceadores de cargas de red de transferencia externos deben ejecutar el entorno invitado de Linux o el entorno invitado de Windows adecuados, o algún otro proceso que proporcione una funcionalidad equivalente.

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

Console

Crea VM

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

    Ir a Instancias de VM

  2. Repite los siguientes pasos 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. Configura el Nombre como se indicó antes.

  5. En Región, elige us-west1 y selecciona una Zona como se indicó antes.

  6. En la sección Disco de arranque, asegúrate de que el sistema operativo Debian y la versión 10 (buster) estén seleccionados como opciones de disco de arranque. Si es necesario, haz clic en Elegir para cambiar la imagen.

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

    • Haz clic en Herramientas de redes y agrega las siguientes Etiquetas de red: lb-tag
    • En Interfaces de red, haz clic en Agregar interfaz de red y realiza los siguientes cambios:

      Para 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: asignación automática

      Para 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

      Luego, 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. El contenido de secuencia de comandos es idéntico para las cuatro VM:

      #! /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

A fin de crear cuatro VM, ejecuta el siguiente comando cuatro veces, con estas cuatro combinaciones para [VM-NAME] y [ZONE]. El contenido de la secuencia de comandos es idéntico para las cuatro VM.

  • 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 controlar el tráfico IPv4 e IPv6, usa el siguiente comando.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-10 \
    --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 controlar el tráfico solo IPv4, usa el siguiente comando:

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-10 \
    --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'

Crea NEGs zonales con extremos GCE_VM_IP

Los 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 que están asociadas con nic1 de las VMs creadas en el paso anterior. Por lo tanto, los extremos del NEG estarán en nic1 de las VMs.

Console

Para crear un grupo de extremos de red por zonas, sigue estos pasos:

  1. Ve a la página Grupos de extremos de red en la consola de Google Cloud.
    Ir a la página Grupos de extremos de red
  2. Haz clic en Crear un grupo de extremos de red.
  3. Ingresa un Nombre para el NEG zonal: neg-a.
  4. Selecciona el Tipo de grupo de extremos de red: Grupo de extremos de red (zonal).
  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. Repite estos pasos para crear un segundo NEG zonal llamado neg-c, en la zona us-west1-c.

Agrega extremos al NEG zonal.

  1. Ve a la página Grupos de extremos de red en la consola de Google Cloud.
    Ir a los grupos de extremos de red
  2. Haz clic en el Nombre del primer grupo de extremos de red que se creó en el paso anterior (neg-a). Verás la página Detalles del grupo de extremos de red.
  3. En la sección Extremos de red de este grupo, haz clic en Agregar extremo de red. Verás la página Agregar extremo de red.

    1. Haz clic en Instancia de VM y selecciona vm-a1 para agregar sus direcciones IP internas como extremos de red.
    2. Haz clic en Crear.
    3. Una vez más, haz clic en Agregar extremo de red y, en Instancia de VM, selecciona vm-a2.
    4. Haz clic en Crear.
  4. Haz clic en el Nombre del segundo grupo de extremos de red que se creó en el paso anterior (neg-c). Verás la página Detalles del grupo de extremos de red.

  5. En la sección Extremos de red de este grupo, haz clic en Agregar extremo de red. Verás la página Agregar extremo de red.

    1. Haz clic en Instancia de VM y selecciona vm-c1 para agregar sus direcciones IP internas como extremos de red.
    2. Haz clic en Crear.
    3. Haz clic de nuevo en Agregar extremo 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 mediante 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. Agrega extremos 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 mediante 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. Agrega extremos 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'
    

Configura las reglas de firewall

Crea reglas de firewall que permitan que el tráfico externo (que incluye sondeos de verificación de estado) llegue a las instancias de backend.

En este ejemplo, se crea una regla de firewall que permite que el tráfico TCP de todos los rangos de origen llegue a tus instancias de backend en el puerto 80. Si deseas crear reglas de firewall independientes específicamente para los sondeos de verificación de estado, usa los rangos de direcciones IP de origen documentados en Descripción general de las verificaciones de estado: rangos de IP de sondeo y reglas de firewall.

Console

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

    Ir a Firewall

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

    1. Haz clic en Crear regla de firewall.
    2. Ingresa un Nombre: allow-network-lb-ipv4
    3. En Red, selecciona lb-network.
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa lb-tag.
    6. En Filtro de fuente, selecciona Rangos de IPv4.
    7. Configura Rangos IPv4 de origen como 0.0.0.0/0. Esto permite el tráfico IPv4 desde cualquier fuente. Así como permite que los sondeos de verificación de estado de Google lleguen a las instancias de backend.
    8. En Protocolos y puertos especificados, selecciona TCP e ingresa 80.
    9. Haz clic en Crear.
  3. Para permitir el tráfico IPv6, sigue estos pasos:

    1. Vuelve a hacer clic en Crear regla de firewall.
    2. Ingresa un Nombre: allow-network-lb-ipv6
    3. En Red, selecciona lb-network.
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa lb-tag.
    6. En Filtro de fuente, selecciona Rangos de IPv6.
    7. Configura Rangos IPv6 de origen como ::/0. Esto permite el tráfico IPv6 de cualquier fuente. Así como permite que los sondeos de verificación de estado de Google lleguen a las instancias de backend.
    8. En Protocolos y puertos especificados, selecciona TCP e ingresa 80.
    9. Haz clic en Crear.

gcloud

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

Configura el balanceador de cargas

A continuación, configura el balanceador de cargas.

Cuando configuras el balanceador de cargas, 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 de forma automática para controlar esta dirección IP. Si usas cualquier otra imagen, debes configurar esta dirección como un alias en eth1 o como un bucle invertido en cada instancia.

Para configurar el balanceador de cargas, sigue las siguientes instrucciones.

Console

Inicia la 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. En Orientado al público o interno, selecciona Orientado al 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 cargas de red de transferencia externo, ingresa el nombre network-lb-zonal-neg para el balanceador de cargas nuevo.
  2. En Región, selecciona us-west1.
  3. En Tipo de backend, selecciona Grupo de extremos de red zonal.
  4. Haz clic en Configuración de backend. El Nombre del balanceador de cargas que ingresaste antes aparece, pero no lo puedes modificar.
  5. En la pantalla Configuración de backend, realiza los siguientes cambios:
    1. En la lista Grupo de extremos de red, selecciona neg-a y, luego, haz clic en Listo.
    2. Haz clic en Agregar backend y repite este paso previo para agregar neg-c.
    3. En la Verificación de estado, elige Crea una verificación de estado o Crea otra verificación de estado y, luego, ingresa la siguiente información:
      • Nombre: tcp-health-check
      • Protocolo: TCP
      • Puerto: 80
    4. Haz clic en Guardar.
  6. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Configuración de frontend

  1. Haga clic en Configuración de frontend.
  2. En Nombre, ingresa netlb-forwarding-rule.
  3. Para controlar el tráfico IPv4, sigue estos pasos:
    1. Para Versión de la 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, ingresa netlb-ipv4-address.
      2. Haz clic en Reservar.
    3. En Puertos, elige Individual. En Número de puerto, ingresa 80.
    4. Haz clic en Listo.
  4. Para controlar el tráfico IPv6, sigue estos pasos:

    1. En Versión de la IP, selecciona IPv6.
    2. En Subred, selecciona lb-subnet.
    3. En el Rango 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, ingresa netlb-ipv6-address.
      2. Haz clic en Reservar.
    4. En Puertos, elige Individual. En Número de puerto, ingresa 80.
    5. Haz clic en Listo.

    El círculo azul con una marca de verificación a la izquierda de la Configuración de Frontend indica que la configuración se realizó de forma correcta.

Revisa la configuración

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

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

gcloud

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

    (Solo para tráfico IPv4) Crea una dirección IPv4 externa estática para tu balanceador de cargas.

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

    Para el tráfico IPv6: Crea un rango de direcciones IPv6 externas estáticas para tu balanceador de cargas. La subred usada debe ser una subred de pila doble con un rango de IPv6 externo.

    gcloud compute addresses create netlb-ipv6-address \
        --region=us-west1 \
        --subnet=lb-subnet \
        --ip-version=IPV6 \
        --endpoint-type=NETLB
    
  2. Crea una verificación de estado de 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. Agrega los dos NEG 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 según si deseas manejar el tráfico IPv4 o IPv6. Crea ambas reglas de reenvío para manejar ambos tipos de tráfico.

    1. Para el tráfico IPv4: crea una regla de reenvío a fin de enrutar el tráfico de TCP entrante al servicio de backend. Usa la dirección IPv4 reservada en el paso 1 como la dirección IP externa estática del balanceador de cargas.

      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
      
    2. Para el tráfico IPv6: crea una regla de reenvío a fin de controlar el tráfico IPv6. Usa el rango de direcciones IPv6 reservado en el paso 1 como la dirección IP externa estática del balanceador de cargas. La subred usada debe ser una subred de pila doble con un rango de subred IPv6 externo.

      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
      

Prueba el balanceador de cargas

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

Busca la dirección IP externa del balanceador de cargas

Console

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

    Ir a Reglas de reenvío

  2. Ubica la regla de reenvío que usa el balanceador de cargas.

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

gcloud: IPv4

Ingresa 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 cargas.

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

gcloud: IPv6

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

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

Envía tráfico al balanceador de cargas

Realiza solicitudes web al balanceador de cargas mediante curl para contactar a su dirección IP.

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

    $ while true; do curl -m1 IPV4_ADDRESS; done
    
  • Desde 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 debe verse de la siguiente manera:

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

Ten en cuenta el texto que muestra el comando curl. El nombre de la VM de backend que genera la respuesta se muestra en ese texto; por ejemplo: Page served from: VM_NAME.

La respuesta del comando curl se alterna de manera aleatoria entre las tres instancias. Si al principio tu respuesta es incorrecta, es posible que debas esperar alrededor de 30 segundos para que la configuración se cargue por completo y tus instancias se marquen como en buen estado antes de intentar otra vez.

Opciones de configuración adicionales

Para personalizar aún más el balanceador de cargas de red de transferencia externo, puedes configurar la afinidad de sesión, el direccionamiento del tráfico y establecer una política de conmutación por error o una política de seguimiento de conexiones. Estas tareas son opcionales y puedes realizarlas en cualquier orden. Para las instrucciones, consulta Opciones de configuración adicionales.

Crea una regla de reenvío de IPv6 con BYOIP

El balanceador de cargas creado en los pasos anteriores se configuró 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 tus propias direcciones IP (BYOIP).

Usar tus propias direcciones IP te permite aprovisionar y usar tus propias direcciones IPv6 públicas para los recursos de Google Cloud. Para obtener más información, consulta Usa tus propias direcciones IP.

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

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

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

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 que deseas modificar.
  3. Haz clic en Editar.
  4. Haz clic en Configuración de frontend.
  5. Haz clic en Agregar IP y puerto de frontend.
  6. En la sección IP y puerto de frontend nuevos, especifica lo siguiente:
    1. El Protocolo es TCP.
    2. En el campo Versión de la IP, selecciona IPv6.
    3. En el campo Origen del rango de IPv6, selecciona BYOIP.
    4. En la lista Recopilación de IP, selecciona un prefijo secundario creado en los pasos anteriores con la opción de regla de reenvío habilitada.
    5. En el campo Rango de IPv6, ingresa el rango de direcciones IPv6. El rango de direcciones IPv6 debe cumplir con las Especificaciones de los subprefijos IPv6.
    6. En el campo Puertos, ingresa un número de puerto.
    7. Haz clic en Listo.
  7. Haz clic en Update.

Google Cloud CLI

Crea la regla de reenvío con 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

Reemplaza lo siguiente:

  • FWD_RULE_NAME: el nombre de la regla de reenvío
  • PROTOCOL: el protocolo IP para la regla de reenvío. El valor predeterminado es TCP. El protocolo IP puede ser TCP, UDP o L3_DEFAULT.
  • REGION_A: Es la región para la regla de reenvío
  • IPV6_CIDR_RANGE: el rango de direcciones IPv6 que entrega la regla de reenvío. El rango de direcciones IPv6 debe cumplir con las Especificaciones de los subprefijos IPv6.
  • BACKEND_SERVICE: el nombre del servicio de backend
  • PDP_NAME: Es el nombre del prefijo público delegado. El PDP debe ser un prefijo secundario en el modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION

¿Qué sigue?