Configura un balanceador de cargas de red de transferencia externo regional para varios protocolos IP

En esta guía, se proporcionan instrucciones para crear balanceadores de cargas de red de transferencia externos regionales basados en servicios de backend que balancean las cargas de tráfico de TCP, UDP, ESP, GRE, ICMP y ICMPv6. Puedes usar esta configuración para balancear las cargas del tráfico que usa protocolos IP distintos de TCP o UDP. Los balanceadores de cargas de red de transferencia externos regionales basados en grupos de destino no admiten esta capacidad.

Si deseas configurar un balanceador de cargas de red de transferencia externo regional para protocolos IP que no sean TCP o UDP, debes crear una regla de reenvío con el protocolo configurado como L3_DEFAULT. Esta regla de reenvío apunta a un servicio de backend con un protocolo configurado como UNSPECIFIED.

En este ejemplo, usamos dos balanceadores de cargas de red de transferencia externos regionales para distribuir el tráfico entre las VMs de backend en dos grupos de instancias zonales administrados en la región us-central1. Ambos balanceadores de cargas reciben tráfico en la misma dirección IP externa.

Un balanceador de cargas tiene una regla de reenvío con el protocolo TCP y el puerto 80, y el otro tiene una regla de reenvío con el protocolo L3_DEFAULT. El tráfico de TCP que llega a la dirección IP en el puerto 80 se controla mediante la regla de reenvío TCP. El resto del tráfico que no coincide con la regla de reenvío específica de TCP se controla mediante la regla de reenvío L3_DEFAULT.

Balanceador de cargas de red de transferencia externo regional con grupos de instancias administrados zonales.
Balanceador de cargas de red de transferencia externo regional con grupos de instancias administrados zonales (haz clic para ampliar).

En este caso, se balancean las cargas de las conexiones con varios protocolos y una verificación de estado de TCP. Para obtener información sobre otros protocolos compatibles, consulta Servicio de backend regional y Verificaciones de estado.

El balanceador de cargas de red de transferencia externo regional es un balanceador de cargas regional. Todos los componentes del balanceador de cargas deben estar en la misma región.

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 la referencia de gcloud y de la API.

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

En esta guía, suponemos 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. Si solo deseas controlar el tráfico IPv4, puedes usar una red de VPC de modo automático. Sin embargo, las subredes con rangos de direcciones IPv6 no son compatibles con las redes de VPC en modo automático. Las subredes con rangos de direcciones IPv6 solo se admiten en redes de VPC en modo personalizado.

En este ejemplo, se crean subredes de los siguientes tipos de pila:

Rangos de subredes Tipo de pila
Solo rangos de subredes IPv4 IPV4_ONLY (pila única)
Rangos de subredes IPv4 e IPv6 IPV4_IPV6 (pila doble)
Solo rangos de subredes IPv6 IPV6_ONLY (pila única)

En el caso de las subredes de pila doble y solo IPv6 que usan un rango de direcciones IPv6, debes elegir un tipo de acceso IPv6 para la subred. El tipo de acceso de IPv6 determina si la subred está configurada con direcciones IPv6 internas o direcciones IPv6 externas. Para este ejemplo, el parámetro ipv6-access-type de la subred se establece en EXTERNAL.

Una subred con un rango de direcciones IPv6 externas, es decir, cuyo parámetro ipv6-access-type está establecido en EXTERNAL, también se puede usar como origen de la dirección IPv6 externa de una regla de reenvío. Para obtener más información, consulta Especificaciones de direcciones IP para reglas de reenvío.

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 Redes de VPC

  2. Haz clic en Crear red de VPC.

  3. En Nombre, ingresa lb-network.

  4. Establece el Modo de creación de subred en Personalizado.

  5. En la sección Subredes, haz clic en Agregar subred y configura los siguientes campos:

    • 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
    • Haga clic en Listo
  6. 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 Redes de VPC

  2. Haz clic en Crear red de VPC.

  3. En Nombre, ingresa lb-network.

  4. Establece el Modo de creación de subred en Personalizado.

  5. En la sección Subredes, haz clic en Agregar subred y configura los siguientes campos:

    • Nombre: lb-subnet
    • Región: us-central1
    • Tipo de pila IP: IPv4 (pila única)
    • Rango IPv4: 10.1.2.0/24
  6. Haz clic en Crear.

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

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

    Ir a Redes de VPC

  2. Haz clic en Crear red de VPC.

  3. En Nombre, ingresa lb-network.

  4. Establece el Modo de creación de subred en Personalizado.

  5. En la sección Subredes, haz clic en Agregar subred y configura los siguientes campos:

    • Nombre: lb-subnet
    • Región: us-central1
    • Tipo de pila IP: IPv6 (pila única)
    • Tipo de acceso IPv6: externo
  6. 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
    

    Para el tráfico IPv6, usa el siguiente comando:

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

Crea los grupos de instancias administrados zonales

Para esta situación de balanceo de cargas, crearás dos grupos de instancias zonales administrados de Compute Engine y, luego, instalarás un servidor web Apache en cada instancia.

El grupo de instancias hace referencia a una plantilla de instancias, que se usa para crear VMs de backend. En este ejemplo, crearás VMs de backend con interfaces de red de solo IPv4, de pila doble y de solo IPv6. Las VM también heredan la configuración ipv6-access-type (en este ejemplo, EXTERNAL) de la subred. Para obtener más información sobre los requisitos de IPv6, consulta Regla de reenvío en el documento de descripción general del balanceador de cargas de red de transferencia externo regional.

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 regionales deben ejecutar el entorno invitado de Linux o el entorno invitado de Windows adecuados, o algún otro proceso que proporcione una funcionalidad equivalente.

Crea el grupo de instancias para el tráfico de TCP en el puerto 80

Console

  1. Crea una plantilla de instancias. En la consola de Google Cloud , ve a la página Plantillas de instancias.

    Ir a Plantillas de instancia

    1. Haz clic en Crear plantilla de instancias.
    2. En Nombre, ingresa ig-us-template-tcp-80.
    3. Asegúrate de que el disco de arranque esté configurado como una imagen de Debian, como Debian GNU/Linux 12 (bookWorm). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como apt-get.
    4. Expande la sección Opciones avanzadas.
    5. Expande la sección Administración y, luego, copia la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio.

      #! /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
      
    6. Expande la sección Herramientas de redes y, luego, especifica lo siguiente:

      1. En Etiquetas de red, agrega network-lb-tcp-80.
      2. En Interfaces de red, selecciona la interfaz de red predeterminada.

        Para crear VMs de backend con interfaces de red de pila doble, configura los siguientes campos:

        • Red: lb-network
        • Subred: lb-subnet
        • Tipo de pila IP: IPv4 e IPv6 (pila doble)
        • Dirección IPv4 externa:efímera
        • Dirección IPv6 externa: Asignación automática

        Para crear VMs de backend con interfaces de red solo IPv4, configura los siguientes campos:

        • Red: lb-network
        • Subred: lb-subnet
        • Tipo de pila IP: IPv4 (pila única)
        • Dirección IPv4 externa:efímera

        Para crear VMs de backend con interfaces de red de solo IPv6, configura los siguientes campos:

        • Red: lb-network
        • Subred: lb-subnet
        • Tipo de pila IP: IPv6 (pila única)
        • Dirección IPv6 externa: Asignación automática
    7. Haz clic en Crear.

  2. Cree un grupo de instancias administrado. Ve a la página Grupos de instancias en la Google Cloud consola.

    Ir a Grupos de instancias

    1. Haz clic en Crear grupo de instancias.
    2. Selecciona Nuevo grupo de instancias administrado (sin estado). Para obtener más información, consulta MIG sin estado o con estado.
    3. En Nombre, ingresa ig-us-tcp-80.
    4. En Ubicación, selecciona Zona única.
    5. En Región, selecciona us-central1.
    6. En Zona, selecciona us-central1-a.
    7. En Plantilla de instancias, selecciona ig-us-template-tcp-80.
    8. Especifica la cantidad de instancias que quieres crear en el grupo.

      En este ejemplo, especifica las siguientes opciones en Ajuste de escala automático:

      • En Modo de ajuste de escala automático, selecciona Off:do not autoscale.
      • En Cantidad máxima de instancias, ingresa 2.
    9. Haz clic en Crear.

gcloud

En las instrucciones de gcloud que se incluyen en esta guía, se supone que usas Cloud Shell o algún otro entorno con bash instalado.

  1. Crea una plantilla de instancias de VM con el servidor de HTTP con el comando gcloud compute instance-templates create.

    Para crear VMs de backend con interfaces de red de pila doble, usa el siguiente comando.

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV4_IPV6 \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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 crear VMs de backend con interfaces de red solo IPv4, usa el siguiente comando.

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --stack-type=IPV4_ONLY \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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" \
                  ://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

    Para crear VMs de backend con interfaces de red solo IPv6, usa el siguiente comando.

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV6_ONLY \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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 un grupo de instancias administrado en la zona con el comando gcloud compute instance-groups managed create.

      gcloud compute instance-groups managed create ig-us-tcp-80 \
          --zone us-central1-a \
          --size 2 \
          --template ig-us-template-tcp-80
    

Crea el grupo de instancias para el tráfico de TCP en el puerto 8080, UDP, ICMP y ESP

Console

  1. Crea una plantilla de instancias. En la consola de Google Cloud , ve a la página Plantillas de instancias.

    Ir a Plantillas de instancia

    1. Haga clic en Crear plantilla de instancias.
    2. En Nombre, ingresa ig-us-template-l3-default.
    3. Asegúrate de que el disco de arranque esté configurado como una imagen de Debian, como Debian GNU/Linux 12 (bookWorm). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como apt-get.
    4. Expande la sección Opciones avanzadas.
    5. Expande la sección Administración y, luego, copia la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio. La secuencia de comandos de inicio también configura el servidor Apache para que escuche en el puerto 8080 en lugar del puerto 80.

      #! /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
      sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf
      systemctl restart apache2
      
    6. Expande la sección Herramientas de redes y, luego, especifica lo siguiente:

      1. En Etiquetas de red, agrega network-lb-l3-default.
      2. En Interfaces de red, selecciona la interfaz de red predeterminada.

        Para crear VMs de backend con interfaces de red de pila doble, configura los siguientes campos:

        • Red: lb-network
        • Subred: lb-subnet
        • Tipo de pila IP: IPv4 e IPv6 (pila doble)
        • Dirección IPv4 externa:efímera
        • Dirección IPv6 externa: Asignación automática

        Para crear VMs de backend con interfaces de red solo IPv4, configura los siguientes campos:

        • Red: lb-network
        • Subred: lb-subnet
        • Tipo de pila IP: IPv4 (pila única)
        • Dirección IPv4 externa:efímera

        Para crear VMs de backend con interfaces de red de solo IPv6, configura los siguientes campos:

        • Red: lb-network
        • Subred: lb-subnet
        • Tipo de pila IP: IPv6 (pila única)
        • Dirección IPv6 externa: Asignación automática
    7. Haz clic en Crear.

  2. Cree un grupo de instancias administrado. Ve a la página Grupos de instancias en la Google Cloud consola.

    Ir a Grupos de instancias

    1. Haga clic en Crear grupo de instancias.
    2. Selecciona Nuevo grupo de instancias administrado (sin estado). Para obtener más información, consulta MIG con o sin estado.
    3. En Nombre, ingresa ig-us-l3-default.
    4. En Ubicación, selecciona Zona única.
    5. En Región, selecciona us-central1.
    6. En Zona, selecciona us-central1-c.
    7. En Plantilla de instancias, selecciona ig-us-template-l3-default.
    8. Especifica la cantidad de instancias que quieres crear en el grupo.

      En este ejemplo, especifica las siguientes opciones en Ajuste de escala automático:

      • En Modo de ajuste de escala automático, selecciona Off:do not autoscale.
      • En Cantidad máxima de instancias, ingresa 2.
    9. Haz clic en Crear.

gcloud

En las instrucciones de gcloud que se incluyen en esta guía, se supone que usas Cloud Shell o algún otro entorno con bash instalado.

  1. Crea una plantilla de instancias de VM con el servidor de HTTP con el comando gcloud compute instance-templates create.

    La secuencia de comandos de inicio también configura el servidor Apache para que escuche en el puerto 8080 en lugar de en el puerto 80.

    Para crear VMs de backend con interfaces de red de pila doble, usa el siguiente comando.

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV4_IPV6 \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    

    Para crear VMs de backend con interfaces solo IPv4, usa el siguiente comando.

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --stack-type=IPV4_ONLY \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    

    Para crear VMs de backend con interfaces de red solo IPv6, usa el siguiente comando.

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV6_ONLY \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    
  2. Crea un grupo de instancias administrado en la zona con el comando gcloud compute instance-groups managed create.

      gcloud compute instance-groups managed create ig-us-l3-default \
          --zone us-central1-c \
          --size 2 \
          --template ig-us-template-l3-default
    

Configura reglas de firewall

Crea las siguientes reglas de firewall:

  • Reglas de firewall que permiten que el tráfico TCP externo llegue a instancias de backend en el grupo de instancias ig-us-tcp-80 en el puerto 80 (mediante la etiqueta de destino network-lb-tcp-80). Crea reglas de firewall independientes para permitir el tráfico IPv4 e IPv6.
  • Reglas de firewall que permiten que otro tráfico externo (TCP en el puerto 8080, UDP, ICMP y ESP) llegue a instancias de backend en el grupo de instancias ig-us-l3-default (con la etiqueta de destino network-lb-l3-default). Crea reglas de firewall independientes para permitir el tráfico IPv4 e IPv6.

En este ejemplo, se crean reglas de firewall que permiten que el tráfico de todos los rangos de origen llegue a tus instancias de backend en los puertos configurados. 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 Políticas de firewall.

    Ir a Políticas de firewall

  2. Para permitir que el tráfico TCP IPv4 llegue a los backends en el grupo de instancias ig-us-tcp-80, crea la siguiente regla de firewall.

    1. Haga clic en Crear regla de firewall.
    2. Ingresa un Nombre de allow-network-lb-tcp-80-ipv4.
    3. Selecciona la Red a la que se aplicará la regla de firewall (Predeterminada).
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa network-lb-tcp-80.
    6. Configura Filtro de fuente como Rangos de IPv4.
    7. Establece los rangos de IPv4 de origen en 0.0.0.0/0, lo que permite el tráfico desde cualquier fuente. Esto permite que el tráfico externo y los sondeos de verificaciones de estado lleguen a las instancias de backend.
    8. En Protocolos y puertos, selecciona Protocolos y puertos especificados. Luego, selecciona la casilla de verificación TCP y escribe 80.
    9. Haz clic en Crear. Pueden pasar unos minutos hasta que Console muestre la regla de firewall nueva, o es posible que debas hacer clic en Actualizar a fin de ver la regla.
  3. Para permitir que el tráfico de UDP IPv4, ICMP y ESP llegue a backends en el grupo de instancias ig-us-l3-default, crea la siguiente regla de firewall.

    1. Haga clic en Crear regla de firewall.
    2. Ingresa un Nombre de allow-network-lb-l3-default-ipv4.
    3. Selecciona la Red a la que se aplicará la regla de firewall (Predeterminada).
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa network-lb-l3-default.
    6. Configura Filtro de fuente como Rangos de IPv4.
    7. Establece los Rangos de IPv4 de origen en 0.0.0.0/0, lo que permite el tráfico desde cualquier fuente. Esto permite que el tráfico externo y los sondeos de verificaciones de estado lleguen a las instancias de backend.
    8. En Protocolos y puertos, selecciona Protocolos y puertos especificados.
      1. Selecciona la casilla de verificación TCP y, luego, ingresa el puerto 8080.
      2. Selecciona la casilla de verificación UDP.
      3. Selecciona la casilla de verificación Otro y, luego, ingresa esp, icmp.
    9. Haz clic en Crear. Pueden pasar unos minutos hasta que Console muestre la regla de firewall nueva, o es posible que debas hacer clic en Actualizar a fin de ver la regla.
  4. Para permitir que el tráfico TCP IPv6 llegue a los backends en el grupo de instancias ig-us-tcp-80, crea la siguiente regla de firewall.

    1. Haga clic en Crear regla de firewall.
    2. Ingresa un Nombre de allow-network-lb-tcp-80-ipv6.
    3. Selecciona la Red a la que se aplicará la regla de firewall (Predeterminada).
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa network-lb-tcp-80.
    6. Configura Filtro de fuente como Rangos de IPv6.
    7. Establece los Rangos de IPv6 de origen en ::/0, lo que permite el tráfico desde cualquier fuente. Esto permite que el tráfico externo y los sondeos de verificaciones de estado lleguen a las instancias de backend.
    8. En Protocolos y puertos, selecciona Protocolos y puertos especificados. Haz clic en la casilla de verificación junto a tcp y, luego, ingresa 80.
    9. Haz clic en Crear. Pueden pasar unos minutos hasta que Console muestre la regla de firewall nueva, o es posible que debas hacer clic en Actualizar a fin de ver la regla.
  5. Para permitir que el tráfico UDP IPv6, ICMPv6 y ESP llegue a backends en el grupo de instancias ig-us-l3-default, crea la siguiente regla de firewall. Esta regla de firewall también permite que los sondeos de verificación de estado de TCP lleguen a las instancias en el puerto 8080.

    1. Haga clic en Crear regla de firewall.
    2. Ingresa un Nombre de allow-network-lb-l3-default-ipv6.
    3. Selecciona la Red a la que se aplicará la regla de firewall (Predeterminada).
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa network-lb-l3-default.
    6. Configura Filtro de fuente como Rangos de IPv6.
    7. Establece los Rangos de IPv6 de origen en ::/0, lo que permite el tráfico desde cualquier fuente. Esto permite que el tráfico externo y los sondeos de verificaciones de estado lleguen a las instancias de backend.
    8. En Protocolos y puertos, selecciona Protocolos y puertos especificados.
      1. Haz clic en la casilla de verificación junto a TCP y, luego, ingresa 8080.
      2. Haz clic en la casilla de verificación junto a UDP.
      3. Haz clic en la casilla de verificación junto a Otro y, luego, ingresa esp, 58.
    9. Haz clic en Crear. Pueden pasar unos minutos hasta que Console muestre la regla de firewall nueva, o es posible que debas hacer clic en Actualizar a fin de ver la regla.

gcloud

  1. Para permitir que el tráfico TCP IPv4 llegue a los backends en el grupo de instancias ig-us-tcp-80, crea la siguiente regla de firewall.

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv4 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=0.0.0.0/0
    
  2. Para permitir que el tráfico de UDP IPv4, ICMP y ESP llegue a backends en el grupo de instancias ig-us-l3-default, crea la siguiente regla de firewall. Esta regla de firewall también permite que los sondeos de verificación de estado de TCP lleguen a las instancias en el puerto 8080.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv4 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,icmp \
        --source-ranges=0.0.0.0/0
    
  3. Para permitir que el tráfico TCP IPv6 llegue a los backends en el grupo de instancias ig-us-tcp-80, crea la siguiente regla de firewall.

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv6 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=::/0
    
  4. Para permitir que el tráfico UDP IPv6, ICMPv6 y ESP llegue a backends en el grupo de instancias ig-us-l3-default, crea la siguiente regla de firewall. Esta regla de firewall también permite que los sondeos de verificación de estado de TCP lleguen a las instancias en el puerto 8080.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv6 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,58 \
        --source-ranges=::/0
    

Configura los balanceadores de cargas

A continuación, configura dos balanceadores de cargas. Configura ambos balanceadores de cargas a fin de usar la misma dirección IP externa para las reglas de reenvío en las que un balanceador de cargas controla el tráfico de TCP en el puerto 80 y el otro controla el tráfico de TCP, UDP, ICMP y ESP en el puerto 8080.

Cuando configuras un balanceador de cargas, tus instancias de VM de backend recibirán 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 eth0 o como un bucle invertido en cada instancia.

Para configurar dos balanceadores de cargas, sigue las instrucciones a continuación.

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. 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 básica

  1. En el campo Nombre, ingresa el nombre backend-service-tcp-80 para el balanceador de cargas nuevo.
  2. En la lista Región, selecciona us-central1.

Configuración de backend

  1. Haz clic en Configuración de backend.
  2. En la página Configuración de backend, haz lo siguiente:
    1. En la lista Verificación de estado, haz clic en Crear una verificación de estado y, luego, ingresa la siguiente información:
      • Nombre: tcp-health-check-80
      • Protocolo: TCP
      • Puerto: 80
    2. Haz clic en Crear.
    3. En la sección Nuevo backend, selecciona el Tipo de pila de IP.
    4. En la lista Grupo de instancias, selecciona ig-us-tcp-80 y, luego, haz clic en Listo.
  3. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Configuración de frontend

  1. Haz clic en Configuración de frontend.
  2. En el campo Nombre, ingresa forwarding-rule-tcp-80.
  3. Para controlar el tráfico IPv4, sigue estos pasos:
    1. Para Versión de la IP, elige IPv4.
    2. En el Propósito de la IP interna, en la lista de Dirección IP, selecciona Crear dirección IP.
      1. En el campo Nombre, ingresa network-lb-ipv4.
      2. Haz clic en Reservar.
    3. En Puertos, elige Individual. En el campo 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 la lista Rango de IPv6, selecciona Crear dirección IP.
      1. En el campo Nombre, ingresa network-lb-ipv6.
      2. Haz clic en Reservar.
    4. En Puertos, elige Individual. En el campo 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, verás una marca de verificación verde que muestra que el balanceador de cargas nuevo está en buen estado.

Crea el segundo balanceador de cargas

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. 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 básica

  1. En el campo Nombre, ingresa el nombre backend-service-l3-default para el balanceador de cargas nuevo.
  2. En la lista Región, selecciona us-central1.

Configuración de backend

  1. Haz clic en Configuración de backend.
  2. En la página Configuración de backend, haz lo siguiente:
    1. En la lista Verificación de estado, haz clic en Crear una verificación de estado y, luego, ingresa la siguiente información:
      • Nombre: tcp-health-check-8080
      • Protocolo:TCP
      • Puerto: 8080
    2. Haz clic en Crear.
    3. En la sección Nuevo backend, selecciona el Tipo de pila de IP. Si creaste backends de pila doble para controlar el tráfico IPv4 e IPv6, selecciona IPv4 e IPv6 (pila doble). Para controlar solo el tráfico IPv4, selecciona IPv4 (una sola pila).
    4. En la lista Grupo de instancias, selecciona ig-us-l3-default y, luego, haz clic en Listo.
    5. En la lista Protocolos, selecciona L3 (varios protocolos).
  3. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Configuración de frontend

  1. Haz clic en Configuración de frontend.
  2. En el campo Nombre, ingresa forwarding-rule-l3-default.
  3. Para controlar el tráfico IPv4, sigue estos pasos:
    1. Para Versión de la IP, elige IPv4.
    2. En el Propósito de la IP interna, en la lista de Dirección IP, selecciona Crear dirección IP.
      1. En el campo Nombre, ingresa network-lb-ipv4.
      2. Haz clic en Reservar.
    3. En la lista Protocolo, selecciona L3 (varios protocolos).
    4. En Puertos, elige Todos.
    5. 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 la lista Rango de IPv6, selecciona Crear dirección IP.
      1. En el campo Nombre, ingresa network-lb-ipv6.
      2. Haz clic en Reservar.
    4. En el campo Protocolo, selecciona L3 (varios protocolos).
    5. En Puertos, selecciona Todos.
    6. 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, verás 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.

    Para el tráfico IPv4: Crea una dirección IP externa estática para tus balanceadores de cargas.

    gcloud compute addresses create network-lb-ipv4 \
        --region us-central1
    

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

    gcloud compute addresses create network-lb-ipv6 \
        --region us-central1 \
        --subnet lb-subnet \
        --ip-version IPV6 \
        --endpoint-type NETLB
    
  2. Crea una verificación de estado de TCP para el puerto 80. Esta verificación de estado se usa para comprobar el estado de los backends en el grupo de instancias ig-us-tcp-80.

    gcloud compute health-checks create tcp tcp-health-check-80 \
        --region us-central1 \
        --port 80
    
  3. Crea una verificación de estado de TCP para el puerto 8080. Esta verificación de estado se usa para comprobar el estado de los backends en el grupo de instancias ig-us-l3-default.

    gcloud compute health-checks create tcp tcp-health-check-8080 \
        --region us-central1 \
        --port 8080
    
  4. Crea el primer balanceador de cargas para el tráfico de TCP en el puerto 80.

    1. Crea un servicio de backend con el protocolo configurado como TCP.

      gcloud compute backend-services create backend-service-tcp-80 \
          --protocol TCP \
          --health-checks tcp-health-check-80 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. Agrega el grupo de instancias principal al servicio de backend:

      gcloud compute backend-services add-backend backend-service-tcp-80 \
          --instance-group ig-us-tcp-80 \
          --instance-group-zone us-central1-a \
          --region us-central1
      
    3. Para el tráfico IPv4: Crea una regla de reenvío para enrutar el tráfico de TCP entrante en el puerto 80 al servicio de backend. TCP es el protocolo de reglas de reenvío predeterminado. No es necesario configurarlo de forma explícita.

      Usa la dirección IP reservada en el paso 1 como la dirección IP externa estática del balanceador de cargas.

      gcloud compute forwarding-rules create forwarding-rule-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports 80 \
          --address network-lb-ipv4 \
          --backend-service backend-service-tcp-80
      
    4. Para el tráfico IPv6: Crea una regla de reenvío para enrutar el tráfico de TCP entrante en el puerto 80 al servicio de backend. TCP es el protocolo de reglas de reenvío predeterminado. No es necesario configurarlo de forma explícita.

      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-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports 80 \
          --backend-service backend-service-tcp-80
      
  5. Crea el segundo balanceador de cargas para el tráfico de TCP en el puerto 8080, UDP, ICMP y ESP.

    1. Crea un servicio de backend con el protocolo configurado como UNSPECIFIED.

      gcloud compute backend-services create backend-service-l3-default \
          --protocol UNSPECIFIED \
          --health-checks tcp-health-check-8080 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. Agrega el grupo de instancias principal al servicio de backend:

      gcloud compute backend-services add-backend backend-service-l3-default \
          --instance-group ig-us-l3-default \
          --instance-group-zone us-central1-c \
          --region us-central1
      
    3. Para el tráfico IPv4: Crea una regla de reenvío con el protocolo configurado en L3_DEFAULT para controlar todo el tráfico de protocolo IP compatible restante (TCP en el puerto 8080, UDP, ICMP y ESP). Todos los puertos se deben configurar con reglas de reenvío L3_DEFAULT.

      Usa la misma dirección IPv4 externa que usaste para el balanceador de cargas anterior.

      gcloud compute forwarding-rules create forwarding-rule-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --address network-lb-ipv4 \
          --backend-service backend-service-l3-default
      
    4. Para el tráfico IPv6: Crea una regla de reenvío con el protocolo configurado en L3_DEFAULT para controlar todo el tráfico de protocolo IP compatible restante (TCP en el puerto 8080, UDP, ICMP y ESP). Todos los puertos se deben configurar con reglas de reenvío L3_DEFAULT.

      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-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --backend-service backend-service-l3-default
      

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 consola de Google Cloud , ve a la página de balanceo de cargas Componentes de balanceo de cargas.

    Ir a Componentes del balanceo de cargas

  2. En la pestaña Reglas de reenvío, ubica las reglas 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 cada regla de reenvío de IPv4 y de IPv6.

gcloud: IPv4

Ingresa el siguiente comando para ver la dirección IP externa de la regla de reenvío que usa el balanceador de cargas.

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

En este ejemplo, se usa la misma dirección IP para ambas reglas de reenvío de IPv4, por lo que el uso de forwarding-rule-l3-default también funciona.

gcloud: IPv6

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

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

En este ejemplo, se usa la misma dirección IP para ambas reglas de reenvío de IPv6, por lo que el uso de forwarding-rule-l3-default también funciona.

Envía tráfico al balanceador de cargas

Este procedimiento envía tráfico externo al balanceador de cargas. Ejecuta las siguientes pruebas para asegurarte de que el grupo de instancias ig-us-tcp-80 balancee las cargas del tráfico de TCP en el puerto 80, mientras el grupo de instancias ig-us-l3-default administra todo el resto del tráfico (TCP en el puerto 8080, UDP, ICMP y ESP).

Verifica el comportamiento con las solicitudes de TCP en el puerto 80

  1. Realiza solicitudes web (a través de TCP en el puerto 80) 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 IP_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], el comando es similar al siguiente:

      while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]; done
      
  2. 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. Las respuestas provienen solo de instancias del grupo de instancias ig-us-tcp-80.

    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.

Verifica el comportamiento con las solicitudes de TCP en el puerto 8080

Realiza solicitudes web (a través de TCP en el puerto 8080) al balanceador de cargas con curl para contactar su dirección IP.

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

    while true; do curl -m1 IPV4_ADDRESS:8080; 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], el comando es similar al siguiente:

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

Ten en cuenta el texto que muestra el comando curl. Las respuestas provienen solo de instancias del grupo de instancias ig-us-l3-default.

Esto muestra que cualquier tráfico enviado a la dirección IP del balanceador de cargas en el puerto 8080 es controlado solo por los backends en el grupo de instancias ig-us-l3-default.

Verifica el comportamiento con solicitudes de ICMP

Para verificar el comportamiento con el tráfico ICMP, captura el resultado del comando tcpdump a fin de confirmar que solo las VM de backend en el grupo de instancias ig-us-l3-default manejen las solicitudes ICMP enviadas al balanceador de cargas.

  1. Usa SSH para conectarte a las VMs de backend.

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

      Ir a la página Instancias de VM

    2. En la lista de instancias de máquina virtual (VM), haz clic en SSH en la fila de la instancia a la que deseas conectarte.

  2. Ejecuta el siguiente comando a fin de usar tcpdump para comenzar a escuchar el tráfico de ICMP.

    sudo tcpdump icmp -w ~/icmpcapture.pcap -s0 -c 10000
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    

    Deja abierta la ventana SSH.

  3. Repite los pasos 1 y 2 para las cuatro VM de backend.

  4. Realiza solicitudes ICMP al balanceador de cargas.

    Para probar las respuestas de IPv4, usa ping a fin de contactar la dirección IPv4 del balanceador de cargas.

    ping IPV4_ADDRESS
    

    Para probar las respuestas de IPv6, usa ping6 a fin de contactar la dirección IPv6 del balanceador de cargas.

    ping6 IPV6_ADDRESS
    

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

    ping6 2001:db8:1:1:1:1:1:1
    
  5. Regresa a la ventana SSH abierta de cada VM y detén el comando de captura tcpdump. Puedes usar Ctrl+C para hacerlo.

  6. Para cada VM, verifica el resultado del comando tcpdump en el archivo icmpcapture.pcap.

    sudo tcpdump -r ~/icmpcapture.pcap -n
    

    Para las VMs de backend en el grupo de instancias ig-us-l3-default, verás entradas de archivo similares a las siguientes:

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    22:13:07.814486 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 1, length 64
    22:13:07.814513 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 1, length 64
    22:13:08.816150 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 2, length 64
    22:13:08.816175 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 2, length 64
    22:13:09.817536 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 3, length 64
    22:13:09.817560 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 3, length 64
    ...
    

    Para las VMs de backend en el grupo de instancias ig-us-tcp-80, verás que no se recibieron paquetes y el archivo está en blanco:

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    

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

Puedes configurar un balanceador de cargas de red de transferencia externo regional para que use direcciones IPv6 de un prefijo delegado público (PDP). Puedes implementar esta solución con uno de los siguientes tres flujos de trabajo:

  • Asignación directa desde un PDP. Si prefieres que la dirección IP esté vinculada directamente al ciclo de vida del balanceador de cargas, puedes hacer referencia al PDP directamente durante la creación de la regla de reenvío. La IP efímera se libera y vuelve al grupo de PDP si se borra el balanceador de cargas.
  • Reserva una dirección IPv6 de BYOIP. Puedes reservar una dirección IPv6 de BYOIP regional específica o asignada automáticamente desde un PDP antes de crear el balanceador de cargas. Esta dirección persiste independientemente del ciclo de vida del balanceador de cargas. Esta es la ruta obligatoria para los usuarios de Google Kubernetes Engine (GKE), ya que la API de GKE no admite la creación de un balanceador de cargas de red de transferencia directamente desde un PDP.
  • Promueve una IP efímera. Si un balanceador de cargas ya se está ejecutando con una dirección IPv6 efímera de BYOIP, puedes promoverla a una dirección reservada para que persista incluso si se borra el balanceador de cargas.

Limitaciones

  • Para configurar una regla de reenvío de IPv6 con una dirección de BYOIP, la longitud del prefijo de la dirección IPv6 de la regla de reenvío debe coincidir con la longitud del prefijo asignable del subprefijo IPv6 (en modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION) desde el que se asigna la dirección IPv6 de la regla de reenvío. La longitud del prefijo puede ser /48, /56, /64, /72, /80, /88 o /96.
  • La dirección IPv6 debe estar en la misma región que el PDP.

Según tus requisitos, elige una de las siguientes implementaciones:

Asignación directa desde un PDP

Crea la regla de reenvío haciendo referencia directamente al PDP. La dirección IP está vinculada al ciclo de vida 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 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. Selecciona el protocolo que necesites.
    2. En el campo Versión de la IP, selecciona IPv6.
    3. En el campo Origen del rango de IPv6, selecciona BYOIP.
    4. En el campo Tipo de BYOIP, selecciona Colección de IP de BYOIP.
    5. En la lista Recopilación de IP, selecciona un subprefijo (PDP) creado en los pasos anteriores con la opción de regla de reenvío habilitada.
    6. En el campo Rango de IPv6, ingresa el rango de direcciones IPv6. La longitud del prefijo del rango de direcciones IPv6 debe coincidir con la longitud del prefijo asignable del subprefijo asociado.
    7. En el campo Puertos, ingresa un número de puerto.
    8. Haz clic en Listo.
  7. Haz clic en Actualizar.

gcloud

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

Reemplaza lo siguiente:

  • FWD_RULE_NAME: el nombre de la regla de reenvío
  • PROTOCOL: Es el protocolo IP para la regla de reenvío. El valor predeterminado es TCP. Para este ejemplo, el protocolo IP puede ser TCP 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 prefijo del rango 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: Es el nombre del prefijo público delegado. El PDP debe ser un prefijo secundario en el modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION.

Reserva una dirección IPv6 de BYOIP

Reserva la dirección IPv6 de BYOIP para el balanceador de cargas y, luego, crea la regla de reenvío haciendo referencia a la dirección IP o al nombre del recurso de dirección reservada.

Console

Reserva la dirección IPv6 de BYOIP para el balanceador de cargas

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

    Ir a Direcciones IP

  2. Haz clic en Reservar dirección estática.
  3. En el campo Nombre, ingresa un nombre para el recurso de dirección IP.
  4. En el campo Nivel de servicio de red, selecciona Premium.
  5. En el campo Versión de la IP, selecciona IPv6.
  6. Selecciona la Región. La región debe coincidir con la de tu PDP.
  7. Selecciona la casilla de verificación Asignar desde la colección de IP.
  8. En la lista Recopilación de IP, selecciona el subprefijo IPv6 (PDP) desde el que deseas reservar la dirección.
  9. Opcional: En el campo Dirección IP, ingresa un rango de direcciones IPv6 específico para reservar (asignación personalizada). Si no especificas un rango de direcciones, Google Cloud asignará automáticamente un rango de direcciones de la colección de IP seleccionada (asignación automática).
  10. Haz clic en Reservar.

Asigna la dirección reservada al balanceador de cargas

  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 y, luego, en Configuración de frontend.
  4. Haz clic en Agregar IP y puerto de frontend.
  5. En la sección IP y puerto de frontend nuevos, especifica lo siguiente:
    1. Selecciona el protocolo que necesites.
    2. En el campo Versión de la IP, selecciona IPv6.
    3. En el campo Origen del rango de IPv6, selecciona BYOIP.
    4. En el campo Tipo de BYOIP, selecciona Dirección IP reservada de BYOIP.
    5. En la lista Dirección IP reservada, selecciona el recurso de dirección BYOIPv6 reservada que creaste en el paso 1.
    6. En el campo Puertos, ingresa un número de puerto.
    7. Haz clic en Listo.
  6. Completa la configuración del balanceador de cargas y haz clic en Actualizar.

gcloud

Reserva la dirección IPv6 de BYOIP para el balanceador de cargas

Para reservar una dirección IPv6 de BYOIP regional desde un PDP antes de crear el balanceador de cargas, ejecuta el comando gcloud compute addresses create con --endpoint-type=NETLB. Elige una de las siguientes opciones:

  • Para reservar un rango de direcciones IPv6 específico, ejecuta el siguiente comando:

      gcloud compute addresses create ADDRESS_NAME \
          --ip-collection=PDP_NAME \
          --addresses=IPV6_ADDRESS \
          --region=REGION_A \
          --endpoint-type=NETLB \
          --prefix-length=PREFIX_LENGTH
    
  • Para que Google Cloud asigne automáticamente un rango desde el PDP, ejecuta el siguiente comando:

      gcloud compute addresses create ADDRESS_NAME \
          --ip-collection=PDP_NAME \
          --region=REGION_A \
          --endpoint-type=NETLB \
          --prefix-length=PREFIX_LENGTH
    

Reemplaza lo siguiente:

  • ADDRESS_NAME: Es el nombre del recurso de dirección IP reservada.
  • 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.
  • IPV6_ADDRESS: Es la dirección IPv6 inicial del rango (por ejemplo, 2001:db8::).
  • REGION_A: Es la región en la que se creará la dirección. Esta región debe coincidir con la región del PDP.
  • PREFIX_LENGTH: Es la longitud del prefijo del rango de direcciones, que debe ser igual a la longitud del prefijo asignable del PDP asociado (por ejemplo, 56).

Crea la regla de reenvío con la dirección reservada

Para crear la regla de reenvío con la dirección reservada, ejecuta el comando gcloud compute forwarding-rules create. Elige una de las siguientes opciones:

  • Para hacer referencia al rango de direcciones IP, ejecuta el siguiente comando:

      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
    
  • Para hacer referencia al nombre de la dirección reservada, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • FWD_RULE_NAME: el nombre de la regla de reenvío
  • PROTOCOL: Es el protocolo IP para la regla de reenvío. El valor predeterminado es TCP. Para este ejemplo, el protocolo IP puede ser TCP 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 prefijo del rango de direcciones IPv6 debe coincidir con la longitud del prefijo asignable especificada por el subprefijo asociado.
  • BACKEND_SERVICE: el nombre del servicio de backend
  • ADDRESS_NAME: Es el nombre del recurso de dirección IP reservada.

Promueve una IP efímera a una dirección IP reservada

Crea la regla de reenvío con la asignación directa y promueve la dirección IP efímera en uso.

Console

  1. Sigue los pasos para crear la regla de reenvío con la asignación directa desde una PDP.
  2. En la consola de Google Cloud , ve a la página Direcciones IP.

    Ir a Direcciones IP

  3. Haz clic en la pestaña Direcciones IP externas.
  4. Busca la dirección IPv6 efímera de BYOIP asociada con tu balanceador de cargas de red de transferencia externo.
  5. En la columna Acciones, haz clic en el menú de tres puntos () y selecciona Ascender a dirección IP estática.
  6. Ingresa un Nombre para la dirección reservada y haz clic en Reservar.

gcloud

  1. Sigue los pasos para actualizar la regla de reenvío con la asignación directa desde una PDP.
  2. Para promover el rango de IP efímero que usa el balanceador de cargas a una dirección IP estática reservada, ejecuta el comando gcloud compute addresses create:

       gcloud compute addresses create ADDRESS_NAME \
           --addresses=IPV6_ADDRESS \
           --region=REGION_A \
           --endpoint-type=NETLB \
           --prefix-length=PREFIX_LENGTH
    

    Reemplaza lo siguiente:

    • ADDRESS_NAME: Es el nombre del recurso de dirección IP reservada.
    • IPV6_ADDRESS: Es la dirección IPv6 inicial del rango (por ejemplo, 2001:db8::).
    • REGION_A: Es la región para la regla de reenvío
    • PREFIX_LENGTH: Es la longitud del prefijo del rango de direcciones, que debe ser igual a la longitud del prefijo asignable del PDP asociado (por ejemplo, 56).

¿Qué sigue?