Configure um balanceador de carga de rede de passagem externo para vários protocolos IP

Este guia fornece instruções para criar balanceadores de carga de rede de encaminhamento externo baseados em serviços de back-end que fazem o balanceamento de carga do tráfego TCP, UDP, ESP, GRE, ICMP e ICMPv6. Pode usar esta configuração para equilibrar a carga do tráfego que usa protocolos IP diferentes de TCP ou UDP. Os balanceadores de carga de rede de encaminhamento externo baseados em conjunto de destino não suportam esta capacidade.

Para configurar um balanceador de carga de rede de passagem externo para protocolos IP que não sejam TCP ou UDP, tem de criar uma regra de encaminhamento com o protocolo definido como L3_DEFAULT. Esta regra de encaminhamento aponta para um serviço de back-end com o protocolo definido como UNSPECIFIED.

Neste exemplo, usamos dois balanceadores de carga de rede de passagem externos para distribuir o tráfego pelas VMs de back-end em dois grupos de instâncias geridos zonais na região us-central1. Ambos os balanceadores de carga recebem tráfego no mesmo endereço IP externo.

Um balanceador de carga tem uma regra de encaminhamento com o protocolo TCP e a porta 80, e o outro balanceador de carga tem uma regra de encaminhamento com o protocolo L3_DEFAULT. O tráfego TCP que chega ao endereço IP na porta 80 é processado pela regra de encaminhamento.TCP Todo o outro tráfego que não corresponda à regra de encaminhamento específica do TCP é processado pela regra de encaminhamento L3_DEFAULT.

Balanceador de carga de encaminhamento externo com grupos de instâncias geridos zonais.
Network Load Balancer de encaminhamento externo com grupos de instâncias geridos zonais (clique para aumentar).

Este cenário distribui o tráfego por instâncias em bom estado. Para suportar isto, cria verificações de funcionamento de TCP para ajudar a garantir que o tráfego é enviado apenas para instâncias em bom estado.

O balanceador de carga de rede de encaminhamento externo é um balanceador de carga regional. Todos os componentes do balanceador de carga têm de estar na mesma região.

Antes de começar

Instale a CLI do Google Cloud. Para uma vista geral completa da ferramenta, consulte a vista geral da CLI gcloud. Pode encontrar comandos relacionados com o equilíbrio de carga na referência da API e do gcloud.

Se não tiver executado a CLI gcloud anteriormente, execute primeiro o comando gcloud init para fazer a autenticação.

Este guia pressupõe que está familiarizado com o bash.

Configure a rede e as sub-redes

O exemplo nesta página usa uma rede VPC no modo personalizado denominada lb-network. Se quiser apenas processar tráfego IPv4, pode usar uma rede VPC no modo automático. No entanto, o tráfego IPv6 requer uma sub-rede de modo personalizado.

O tráfego IPv6 também requer uma sub-rede de pilha dupla (stack-type definida como IPV4_IPV6). Quando cria uma sub-rede de pilha dupla numa rede VPC de modo personalizado, escolhe um tipo de acesso IPv6 para a sub-rede. Para este exemplo, definimos o parâmetro ipv6-access-type da sub-rede como EXTERNAL. Isto significa que é possível atribuir endereços IPv4 externos e endereços IPv6 externos a novas VMs nesta sub-rede. As regras de encaminhamento também podem ser atribuídas a endereços IPv4 externos e endereços IPv6 externos.

Os back-ends e os componentes do balanceador de carga usados neste exemplo estão localizados nesta região e sub-rede:

  • Região: us-central1
  • Sub-rede: lb-subnet, com o intervalo de endereços IPv4 principal 10.1.2.0/24. Embora escolha o intervalo de endereços IPv4 configurado na sub-rede, o intervalo de endereços IPv6 é atribuído automaticamente. A Google fornece um bloco CIDR IPv6 de tamanho fixo (/64).

Para criar a rede e a sub-rede de exemplo, siga estes passos.

Consola

Para suportar o tráfego IPv4 e IPv6, siga estes passos:

  1. Na Trusted Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique em Criar rede de VPC.

  3. Introduza um Nome de lb-network.

  4. Defina o Subnet creation mode (Modo de criação de sub-rede) como Custom (Personalizado).

  5. Na secção Sub-redes, clique em Adicionar sub-rede e configure os seguintes campos:

    • Nome: lb-subnet
    • Região: us-central1
    • Tipo de pilha de IP: IPv4 e IPv6 (dupla pilha)
    • Intervalo IPv4: 10.1.2.0/24
      Embora possa configurar um intervalo de endereços IPv4 para a sub-rede, não pode escolher o intervalo de endereços IPv6 para a sub-rede. A Google fornece um bloco CIDR IPv6 de tamanho fixo (/64).
    • Tipo de acesso IPv6: externo
    • Clique em Concluído
  6. Clique em Criar.

Para suportar apenas tráfego IPv4, siga estes passos:

  1. Na Trusted Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique em Criar rede de VPC.

  3. Introduza um Nome de lb-network.

  4. Defina o Subnet creation mode (Modo de criação de sub-rede) como Custom (Personalizado).

  5. Na secção Sub-redes, clique em Adicionar sub-rede e configure os seguintes campos:

    • Nome: lb-subnet
    • Região: us-central1
    • Tipo de pilha de IP: IPv4 (pilha única)
    • Intervalo IPv4: 10.1.2.0/24
  6. Clique em Criar.

gcloud

  1. Crie a rede VPC de modo personalizado:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. Na rede lb-network, crie uma sub-rede para os back-ends na região us-central1.

    Para o tráfego IPv4 e IPv6, use o seguinte comando para criar uma sub-rede de pilha dupla:

    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 tráfego IPv4 apenas, use o seguinte comando:

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

Crie os grupos de instâncias geridas zonais

Para este cenário de balanceamento de carga, cria dois grupos de instâncias geridos zonais do Compute Engine e instala um servidor Web Apache em cada instância.

Para processar o tráfego IPv4 e IPv6, configure as VMs de back-end para serem de pilha dupla. Defina o stack-type da VM como IPV4_IPV6. As VMs também herdam a definição ipv6-access-type (neste exemplo, EXTERNAL) da sub-rede. Para mais informações sobre os requisitos do IPv6, consulte o artigo Vista geral do balanceador de carga de passagem externo: regras de encaminhamento.

Para usar VMs existentes como back-ends, atualize as VMs para serem de pilha dupla através do comando gcloud compute instances network-interfaces update.

As instâncias que participam como VMs de back-end para equilibradores de carga de rede de encaminhamento externo têm de executar o ambiente guest Linux adequado, o ambiente guest Windows ou outros processos que ofereçam uma capacidade equivalente.

Crie o grupo de instâncias para o tráfego TCP na porta 80

Consola

  1. Crie um modelo de instância. Na Trusted Cloud consola, aceda à página Modelos de instâncias.

    Aceda a Modelos de instâncias

    1. Clique em Criar modelo de instância.
    2. Em Nome, introduza ig-us-template-tcp-80.
    3. Certifique-se de que o disco de arranque está definido para uma imagem Debian, como o Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como apt-get.
    4. Expanda a secção Opções avançadas.
    5. Expanda a secção Gestão e, de seguida, copie o seguinte script para o campo Script de arranque.

      #! /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. Expanda a secção Redes e, de seguida, especifique o seguinte:

      1. Para etiquetas de rede, adicione network-lb-tcp-80.
      2. Para Interfaces de rede, clique na interface predefinida e configure os seguintes campos:
        1. Rede: lb-network
        2. Subnetwork: lb-subnet
    7. Clique em Criar.

  2. Crie um grupo de instâncias gerido. Aceda à página Grupos de instâncias na Trusted Cloud consola.

    Aceda a Grupos de instâncias

    1. Clique em Criar grupo de instâncias.
    2. Selecione Novo grupo de instâncias gerido (sem estado). Para mais informações, consulte o artigo Grupos de instâncias geridos sem estado ou com estado.
    3. No campo Nome, introduza ig-us-tcp-80.
    4. Em Localização, selecione Zona única.
    5. Para a Região, selecione us-central1.
    6. Para a Zona, selecione us-central1-a.
    7. Em Modelo de instância, selecione ig-us-template-tcp-80.
    8. Especifique o número de instâncias que quer criar no grupo.

      Para este exemplo, especifique as seguintes opções em Ajuste automático de escala:

      • Para o Modo de ajuste automático de escala, selecione Off:do not autoscale.
      • Para Número máximo de instâncias, introduza 2.
    9. Clique em Criar.

gcloud

As instruções gcloud neste guia pressupõem que está a usar a Cloud Shell ou outro ambiente com o bash instalado.

  1. Crie um modelo de instância de VM com um servidor HTTP com o comando gcloud compute instance-templates create.

    Para processar o tráfego IPv4 e IPv6, use o seguinte 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'
    

    Em alternativa, se quiser processar apenas tráfego IPv4, use o seguinte comando.

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --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'
    
  2. Crie um grupo de instâncias gerido na zona com o 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
    

Crie o grupo de instâncias para TCP na porta 8080, UDP, ESP e tráfego ICMP

Consola

  1. Crie um modelo de instância. Na Trusted Cloud consola, aceda à página Modelos de instâncias.

    Aceda a Modelos de instâncias

    1. Clique em Criar modelo de instância.
    2. No campo Nome, introduza ig-us-template-l3-default.
    3. Certifique-se de que o disco de arranque está definido para uma imagem Debian, como o Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como apt-get.
    4. Expanda a secção Opções avançadas.
    5. Expanda a secção Gestão e, de seguida, copie o seguinte script para o campo Script de arranque. O script de arranque também configura o servidor Apache para ouvir na porta 8080 em vez da porta 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. Expanda a secção Redes e, de seguida, especifique o seguinte:

      1. Para etiquetas de rede, adicione network-lb-l3-default.
      2. Para Interfaces de rede, clique na interface predefinida e configure os seguintes campos:
        1. Rede: lb-network
        2. Subnetwork: lb-subnet
    7. Clique em Criar.

  2. Crie um grupo de instâncias gerido. Aceda à página Grupos de instâncias na Trusted Cloud consola.

    Aceda a Grupos de instâncias

    1. Clique em Criar grupo de instâncias.
    2. Escolha Novo grupo de instâncias gerido (sem estado). Para mais informações, consulte o artigo Grupos de instâncias geridos sem estado ou com estado.
    3. No campo Nome, introduza ig-us-l3-default.
    4. Em Localização, selecione Zona única.
    5. Para a Região, selecione us-central1.
    6. Para a Zona, selecione us-central1-c.
    7. Em Modelo de instância, selecione ig-us-template-l3-default.
    8. Especifique o número de instâncias que quer criar no grupo.

      Para este exemplo, especifique as seguintes opções em Ajuste automático de escala:

      • Para o Modo de ajuste automático de escala, selecione Off:do not autoscale.
      • Para Número máximo de instâncias, introduza 2.
    9. Clique em Criar.

gcloud

As instruções gcloud neste guia pressupõem que está a usar a Cloud Shell ou outro ambiente com o bash instalado.

  1. Crie um modelo de instância de VM com um servidor HTTP com o comando gcloud compute instance-templates create.

    O script de arranque também configura o servidor Apache para ouvir na porta 8080 em vez da porta 80.

    Para processar o tráfego IPv4 e IPv6, use o seguinte 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'
    

    Em alternativa, se quiser processar apenas tráfego IPv4, use o seguinte comando.

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --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. Crie um grupo de instâncias gerido na zona com o 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
    

Configure regras de firewall

Crie as seguintes regras de firewall:

  • Regras de firewall que permitem que o tráfego TCP externo alcance as instâncias de back-end no grupo de instâncias ig-us-tcp-80 na porta 80 (através da etiqueta de destino network-lb-tcp-80). Crie regras de firewall separadas para permitir o tráfego IPv4 e IPv6.
  • Regras de firewall que permitem que outro tráfego externo (TCP na porta 8080, UDP, ESP e ICMP) alcance instâncias de back-end no grupo de instâncias (através da etiqueta de destino network-lb-l3-default). Crie regras de firewall separadas para permitir o tráfego IPv4 e IPv6.ig-us-l3-default

Este exemplo cria regras de firewall que permitem que o tráfego de todos os intervalos de origem alcance as instâncias de back-end nas portas configuradas. Se quiser criar regras de firewall separadas especificamente para as sondas de verificação de funcionamento, use os intervalos de endereços IP de origem documentados no artigo Vista geral das verificações de funcionamento: intervalos de IP de sondas e regras de firewall.

Consola

  1. Na Trusted Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Para permitir que o tráfego TCP IPv4 alcance os back-ends no grupo de instâncias ig-us-tcp-80, crie a seguinte regra de firewall.

    1. Clique em Criar regra de firewall.
    2. Introduza um Nome de allow-network-lb-tcp-80-ipv4.
    3. Selecione a Rede à qual a regra de firewall se aplica (Predefinição).
    4. Em Segmentações, selecione Etiquetas de segmentação especificadas.
    5. No campo Etiquetas alvo, introduza network-lb-tcp-80.
    6. Defina o Filtro de origem como Intervalos IPv4.
    7. Defina os intervalos IPv4 de origem como 0.0.0.0/0, o que permite o tráfego de qualquer origem. Isto permite que o tráfego externo e as sondagens de verificação de estado alcancem as instâncias de back-end.
    8. Em Protocolos e portas, selecione Protocolos e portas especificados. Em seguida, selecione a caixa de verificação TCP e introduza 80.
    9. Clique em Criar. Pode demorar algum tempo até que a consola apresente a nova regra de firewall ou pode ter de clicar em Atualizar para ver a regra.
  3. Para permitir que o tráfego IPv4 UDP, ESP e ICMP alcance os back-ends no grupo de instâncias ig-us-l3-default, crie a seguinte regra de firewall.

    1. Clique em Criar regra de firewall.
    2. Introduza um Nome de allow-network-lb-l3-default-ipv4.
    3. Selecione a Rede à qual a regra de firewall se aplica (Predefinição).
    4. Em Segmentações, selecione Etiquetas de segmentação especificadas.
    5. No campo Etiquetas alvo, introduza network-lb-l3-default.
    6. Defina o Filtro de origem como Intervalos IPv4.
    7. Defina os Intervalos IPv4 de origem como 0.0.0.0/0, o que permite tráfego de qualquer origem. Isto permite que o tráfego externo e as sondagens de verificação de estado alcancem as instâncias de back-end.
    8. Em Protocolos e portas, selecione Protocolos e portas especificados.
      1. Selecione a caixa de verificação TCP e introduza 8080.
      2. Selecione a caixa de verificação UDP.
      3. Selecione a caixa de verificação Outro e introduza esp, icmp.
    9. Clique em Criar. Pode demorar algum tempo até que a consola apresente a nova regra de firewall ou pode ter de clicar em Atualizar para ver a regra.
  4. Para permitir que o tráfego TCP IPv6 alcance os back-ends no ig-us-tcp-80grupo de instâncias, crie a seguinte regra de firewall.

    1. Clique em Criar regra de firewall.
    2. Introduza um Nome de allow-network-lb-tcp-80-ipv6.
    3. Selecione a Rede à qual a regra de firewall se aplica (Predefinição).
    4. Em Segmentações, selecione Etiquetas de segmentação especificadas.
    5. No campo Etiquetas alvo, introduza network-lb-tcp-80.
    6. Defina o Filtro de origem como Intervalos de IPv6.
    7. Defina os Intervalos IPv6 de origem como ::/0, o que permite tráfego de qualquer origem. Isto permite que o tráfego externo e as sondagens de verificação de estado alcancem as instâncias de back-end.
    8. Em Protocolos e portas, selecione Protocolos e portas especificados. Clique na caixa de verificação junto a TCP e introduza 80.
    9. Clique em Criar. Pode demorar algum tempo até que a consola apresente a nova regra de firewall ou pode ter de clicar em Atualizar para ver a regra.
  5. Para permitir que o tráfego IPv6 UDP, ESP e ICMPv6 alcance os back-ends no grupo de instâncias ig-us-l3-default, crie a seguinte regra de firewall. Esta regra de firewall também permite que as sondas de verificação de funcionamento TCP alcancem as instâncias na porta 8080.

    1. Clique em Criar regra de firewall.
    2. Introduza um Nome de allow-network-lb-l3-default-ipv6.
    3. Selecione a Rede à qual a regra de firewall se aplica (Predefinição).
    4. Em Segmentações, selecione Etiquetas de segmentação especificadas.
    5. No campo Etiquetas alvo, introduza network-lb-l3-default.
    6. Defina o Filtro de origem como Intervalos de IPv6.
    7. Defina os Intervalos IPv6 de origem como ::/0, o que permite tráfego de qualquer origem. Isto permite que o tráfego externo e as sondagens de verificação de estado alcancem as instâncias de back-end.
    8. Em Protocolos e portas, selecione Protocolos e portas especificados.
      1. Clique na caixa de verificação junto a TCP e introduza 8080.
      2. Clique na caixa de verificação junto a UDP.
      3. Clique na caixa de verificação junto a Outro e introduza esp, 58.
    9. Clique em Criar. Pode demorar algum tempo até que a consola apresente a nova regra de firewall ou pode ter de clicar em Atualizar para ver a regra.

gcloud

  1. Para permitir que o tráfego TCP IPv4 alcance os back-ends no grupo de instâncias ig-us-tcp-80, crie a seguinte regra 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 o tráfego IPv4 UDP, ESP e ICMP alcance os back-ends no grupo de instâncias ig-us-l3-default, crie a seguinte regra de firewall. Esta regra de firewall também permite que as sondas de verificação de funcionamento TCP alcancem as instâncias na porta 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 o tráfego TCP IPv6 alcance os back-ends no ig-us-tcp-80grupo de instâncias, crie a seguinte regra 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 o tráfego IPv6 UDP, ESP e ICMPv6 alcance os back-ends no grupo de instâncias ig-us-l3-default, crie a seguinte regra de firewall. Esta regra de firewall também permite que as sondas de verificação de funcionamento TCP alcancem as instâncias na porta 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
    

Configure os balanceadores de carga

Em seguida, configure dois balanceadores de carga. Configure ambos os balanceadores de carga para usarem o mesmo endereço IP externo para as regras de encaminhamento, em que um balanceador de carga processa o tráfego TCP na porta 80 e o outro balanceador de carga processa o tráfego TCP, UDP, ESP e ICMP na porta 8080.

Quando configura um balanceador de carga, as suas instâncias de VM de back-end recebem pacotes destinados ao endereço IP externo estático que configurou. Se estiver a usar uma imagem fornecida pelo Compute Engine, as suas instâncias são configuradas automaticamente para processar este endereço IP. Se estiver a usar outra imagem, tem de configurar este endereço como um alias em eth0 ou como um loopback em cada instância.

Para configurar dois equilibradores de carga, siga as instruções abaixo.

Consola

Inicie a configuração

  1. Na Trusted Cloud consola, aceda à página Equilíbrio de carga.

    Aceda ao balanceamento de carga

  2. Clique em Criar equilibrador de carga.
  3. Para Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Seguinte.
  4. Para Proxy ou passagem, selecione Passagem do balanceador de carga e clique em Seguinte.
  5. Para Público ou interno, selecione Público (externo) e clique em Seguinte.
  6. Clique em Configurar.

Configuração básica

  1. No campo Nome, introduza o nome backend-service-tcp-80 do novo equilibrador de carga.
  2. Na lista Região, selecione us-central1.

Configuração do back-end

  1. Clique em Configuração de back-end.
  2. Na página Configuração de back-end, faça o seguinte:
    1. Na lista Verificação de funcionamento, clique em Criar uma verificação de funcionamento e, de seguida, introduza as seguintes informações:
      • Nome: tcp-health-check-80
      • Protocolo: TCP
      • Porta: 80
    2. Clique em Criar.
    3. Na secção Novo back-end, selecione o tipo de pilha de IP. Se criou back-ends de pilha dupla para processar o tráfego IPv4 e IPv6, selecione IPv4 e IPv6 (pilha dupla). Para processar apenas tráfego IPv4, selecione IPv4 (pilha única).
    4. Na lista Grupo de instâncias, selecione ig-us-tcp-80 e, de seguida, clique em Concluído.
  3. Verifique se existe uma marca de verificação azul junto a Configuração de back-end antes de continuar.

Configuração da interface

  1. Clique em Configuração do front-end.
  2. No campo Nome, introduza forwarding-rule-tcp-80.
  3. Para processar o tráfego IPv4, siga estes passos:
    1. Para Versão do IP, selecione IPv4.
    2. Na secção Finalidade do IP interno, na lista Endereço IP, selecione Criar endereço IP.
      1. No campo Nome, introduza network-lb-ipv4.
      2. Clique em Reservar.
    3. Para Portas, escolha Única. No campo Número da porta, introduza 80.
    4. Clique em Concluído.
  4. Para processar o tráfego IPv6, siga os passos seguintes:

    1. Para a versão do IP, selecione IPv6.
    2. Para Sub-rede, selecione lb-subnet.
    3. Na lista Intervalo IPv6, selecione Criar endereço IP.
      1. No campo Nome, introduza network-lb-ipv6.
      2. Clique em Reservar.
    4. Para Portas, escolha Única. No campo Número da porta, introduza 80.
    5. Clique em Concluído.

    Um círculo azul com uma marca de verificação à esquerda de Configuração do front-end indica uma configuração bem-sucedida.

Reveja a configuração

  1. Clique em Rever e finalizar.
  2. Reveja as definições de configuração do equilibrador de carga.
  3. Opcional: clique em Código equivalente para ver o pedido da API REST que vai ser usado para criar o equilibrador de carga.
  4. Clique em Criar.

    Na página de balanceamento de carga, na coluna Back-end do novo balanceador de carga, vê uma marca de verificação verde a indicar que o novo balanceador de carga está em bom estado.

Crie o segundo balanceador de carga

Inicie a configuração

  1. Na Trusted Cloud consola, aceda à página Equilíbrio de carga.

    Aceda ao balanceamento de carga

  2. Clique em Criar equilibrador de carga.
  3. Para Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Seguinte.
  4. Para Proxy ou passagem, selecione Passagem do balanceador de carga e clique em Seguinte.
  5. Para Público ou interno, selecione Público (externo) e clique em Seguinte.
  6. Clique em Configurar.

Configuração básica

  1. No campo Nome, introduza o nome backend-service-l3-default do novo equilibrador de carga.
  2. Na lista Região, selecione us-central1.

Configuração do back-end

  1. Clique em Configuração de back-end.
  2. Na página Configuração de back-end, faça o seguinte:
    1. Na lista Verificação de funcionamento, clique em Criar uma verificação de funcionamento e, de seguida, introduza as seguintes informações:
      • Nome: tcp-health-check-8080
      • Protocolo:TCP
      • Porta: 8080
    2. Clique em Criar.
    3. Na secção Novo back-end, selecione o tipo de pilha de IP. Se criou back-ends de pilha dupla para processar o tráfego IPv4 e IPv6, selecione IPv4 e IPv6 (pilha dupla). Para processar apenas tráfego IPv4, selecione IPv4 (pilha única).
    4. Na lista Grupo de instâncias, selecione ig-us-l3-default e, de seguida, clique em Concluído.
    5. Na lista Protocolos, selecione L3 (vários protocolos).
  3. Verifique se existe uma marca de verificação azul junto a Configuração de back-end antes de continuar.

Configuração da interface

  1. Clique em Configuração do front-end.
  2. No campo Nome, introduza forwarding-rule-l3-default.
  3. Para processar o tráfego IPv4, siga estes passos:
    1. Para Versão do IP, selecione IPv4.
    2. Na secção Finalidade do IP interno, na lista Endereço IP, selecione Criar endereço IP.
      1. No campo Nome, introduza network-lb-ipv4.
      2. Clique em Reservar.
    3. Na lista Protocolo, selecione L3 (Vários protocolos).
    4. Para Portas, escolha Todas.
    5. Clique em Concluído.
  4. Para processar o tráfego IPv6, siga os passos seguintes:

    1. Para a versão do IP, selecione IPv6.
    2. Para Sub-rede, selecione lb-subnet.
    3. Na lista Intervalo IPv6, selecione Criar endereço IP.
      1. No campo Nome, introduza network-lb-ipv6.
      2. Clique em Reservar.
    4. No campo Protocolo, selecione L3 (Vários protocolos).
    5. Para Portas, selecione Todas.
    6. Clique em Concluído.

    Um círculo azul com uma marca de verificação à esquerda de Configuração do front-end indica uma configuração bem-sucedida.

Reveja a configuração

  1. Clique em Rever e finalizar.
  2. Reveja as definições de configuração do equilibrador de carga.
  3. Opcional: clique em Código equivalente para ver o pedido da API REST que vai ser usado para criar o equilibrador de carga.
  4. Clique em Criar.

    Na página de balanceamento de carga, na coluna Back-end do novo balanceador de carga, vê uma marca de verificação verde a indicar que o novo balanceador de carga está em bom estado.

gcloud

  1. Reserve um endereço IP externo estático.

    Para o tráfego IPv4: crie um endereço IP externo estático para os seus balanceadores de carga.

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

    Para tráfego IPv6: crie um intervalo de endereços IPv6 externos estático para os seus balanceadores de carga. A sub-rede usada tem de ser uma sub-rede de pilha dupla com um intervalo de sub-redes IPv6 externo.

    gcloud compute addresses create network-lb-ipv6 \
        --region us-central1 \
        --subnet lb-subnet \
        --ip-version IPV6 \
        --endpoint-type NETLB
    
  2. Crie uma verificação de funcionamento de TCP para a porta 80. Esta verificação de funcionamento é usada para verificar o funcionamento das backends no grupo de instâncias ig-us-tcp-80.

    gcloud compute health-checks create tcp tcp-health-check-80 \
        --region us-central1 \
        --port 80
    
  3. Crie uma verificação de funcionamento de TCP para a porta 8080. Esta verificação de estado é usada para verificar o estado dos back-ends no grupo de instâncias ig-us-l3-default.

    gcloud compute health-checks create tcp tcp-health-check-8080 \
        --region us-central1 \
        --port 8080
    
  4. Crie o primeiro balanceador de carga para tráfego TCP na porta 80.

    1. Crie um serviço de back-end com o protocolo definido 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. Adicione o grupo de instâncias de back-end ao serviço de back-end.

      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 tráfego IPv4: crie uma regra de encaminhamento para encaminhar o tráfego TCP recebido na porta 80 para o serviço de back-end. TCP é o protocolo de regra de encaminhamento predefinido e não tem de ser definido explicitamente.

      Use o endereço IP reservado no passo 1 como o endereço IP externo estático do balanceador de carga.

      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 o tráfego IPv6: crie uma regra de encaminhamento para encaminhar o tráfego TCP recebido na porta 80 para o serviço de back-end. TCP é o protocolo de regra de encaminhamento predefinido e não tem de ser definido explicitamente.

      Use o intervalo de endereços IPv6 reservado no passo 1 como o endereço IP externo estático do balanceador de carga. A sub-rede usada tem de ser uma sub-rede de pilha dupla com um intervalo de sub-redes 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. Crie o segundo balanceador de carga para TCP na porta 8080, UDP, ESP e tráfego ICMP.

    1. Crie um serviço de back-end com o protocolo definido 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. Adicione o grupo de instâncias de back-end ao serviço de back-end.

      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 tráfego IPv4: crie uma regra de encaminhamento com o protocolo definido como L3_DEFAULT para processar todo o tráfego de protocolo IP suportado restante (TCP na porta 8080, UDP, ESP e ICMP). Todas as portas têm de ser configuradas com regras de encaminhamento L3_DEFAULT.

      Use o mesmo endereço IPv4 externo que usou para o equilibrador de carga 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 tráfego IPv6: crie uma regra de encaminhamento com o protocolo definido como L3_DEFAULT para processar todo o tráfego de protocolo IP suportado restante (TCP na porta 8080, UDP, ESP e ICMP). Todas as portas têm de ser configuradas com regras de encaminhamento L3_DEFAULT.

      Use o intervalo de endereços IPv6 reservado no passo 1 como o endereço IP externo estático do balanceador de carga. A sub-rede usada tem de ser uma sub-rede de pilha dupla com um intervalo de sub-redes 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
      

Teste o balanceador de carga

Agora que o serviço de balanceamento de carga está configurado, pode começar a enviar tráfego para o endereço IP externo do balanceador de carga e ver o tráfego a ser distribuído para as instâncias de back-end.

Procure o endereço IP externo do balanceador de carga

Consola

  1. Na Trusted Cloud consola, aceda à página de balanceamento de carga Componentes de balanceamento de carga.

    Aceda a Componentes de equilíbrio de carga

  2. No separador Regras de encaminhamento, localize as regras de encaminhamento usadas pelo balanceador de carga.

  3. Na coluna Endereço IP, tome nota do endereço IP externo indicado para cada regra de encaminhamento IPv4 e IPv6.

gcloud: IPv4

Introduza o seguinte comando para ver o endereço IP externo da regra de encaminhamento usada pelo balanceador de carga.

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

Este exemplo usa o mesmo endereço IP para ambas as regras de encaminhamento IPv4, pelo que usar forwarding-rule-l3-default também funciona.

gcloud: IPv6

Introduza o seguinte comando para ver o endereço IPv6 externo da forwarding-rule-tcp-80 regra de encaminhamento usada pelo balanceador de carga.

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

Este exemplo usa o mesmo endereço IP para ambas as regras de encaminhamento IPv6, pelo que a utilização de forwarding-rule-l3-default também funciona.

Envie tráfego para o balanceador de carga

Este procedimento envia tráfego externo para o balanceador de carga. Execute os seguintes testes para ajudar a garantir que o tráfego TCP na porta 80 está a ser equilibrado pela carga do grupo de instâncias ig-us-tcp-80, enquanto todo o outro tráfego (TCP na porta 8080, UDP, ESP e ICMP) está a ser processado pelo grupo de instâncias ig-us-l3-default.

Validar o comportamento com pedidos TCP na porta 80

  1. Faça pedidos Web (através de TCP na porta 80) ao balanceador de carga usando curl para contactar o respetivo endereço IP.

    • Em clientes com conetividade IPv4, execute o seguinte comando:

      while true; do curl -m1 IP_ADDRESS; done
      
    • Em clientes com conetividade IPv6, execute o seguinte comando:

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

      Por exemplo, se o endereço IPv6 atribuído for [2001:db8:1:1:1:1:1:1/96], o comando é semelhante ao seguinte:

      while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]; done
      
  2. Tenha em atenção o texto devolvido pelo comando curl. O nome da VM de back-end que gera a resposta é apresentado nesse texto, por exemplo, Page served from: VM_NAME. As respostas provêm apenas de instâncias no grupo de instâncias ig-us-tcp-80.

    Se a sua resposta for inicialmente sem êxito, pode ter de aguardar cerca de 30 segundos para que a configuração seja totalmente carregada e para que as suas instâncias sejam marcadas como em bom estado antes de tentar novamente.

Verificar o comportamento com pedidos TCP na porta 8080

Fazer pedidos Web (através de TCP na porta 8080) ao balanceador de carga usando curl para contactar o respetivo endereço IP.

  • Em clientes com conetividade IPv4, execute o seguinte comando:

    while true; do curl -m1 IPV4_ADDRESS:8080; done
    
  • Em clientes com conetividade IPv6, execute o seguinte comando:

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

    Por exemplo, se o endereço IPv6 atribuído for [2001:db8:1:1:1:1:1:1/96], o comando é semelhante ao seguinte:

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

Tenha em atenção o texto devolvido pelo comando curl. As respostas provêm apenas de instâncias no grupo de instâncias ig-us-l3-default.

Isto mostra que qualquer tráfego enviado para o endereço IP do balanceador de carga na porta 8080 é processado apenas pelos back-ends no grupo de instâncias ig-us-l3-default.

Validar o comportamento com pedidos ICMP

Para validar o comportamento com o tráfego ICMP, capture a saída do comando tcpdump para confirmar que apenas as VMs de back-end no grupo de instâncias ig-us-l3-default estão a processar pedidos ICMP enviados para o balanceador de carga.

  1. Use o SSH para estabelecer ligação às VMs de back-end.

    1. Na Trusted Cloud consola, aceda à página Instâncias de VM.

      Aceda à página de instâncias de VM

    2. Na lista de instâncias de máquinas virtuais (VMs), clique em SSH na linha da instância à qual quer estabelecer ligação.

  2. Execute o seguinte comando para usar o tcpdump para começar a detetar tráfego ICMP.

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

    Deixe a janela do SSH aberta.

  3. Repita os passos 1 e 2 para todas as quatro VMs de back-end.

  4. Faça pedidos ICMP ao balanceador de carga.

    Para testar as respostas IPv4, use ping para contactar o endereço IPv4 do equilibrador de carga.

    ping IPV4_ADDRESS
    

    Para testar as respostas IPv6, use ping6 para contactar o endereço IPv6 do balanceador de carga.

    ping6 IPV6_ADDRESS
    

    Por exemplo, se o endereço IPv6 atribuído for [2001:db8:1:1:1:1:1:1/96], o comando é semelhante ao seguinte:

    ping6 2001:db8:1:1:1:1:1:1
    
  5. Regresse à janela SSH aberta de cada VM e pare o comando de captura tcpdump. Pode usar Ctrl+C para o fazer.

  6. Para cada VM, verifique o resultado do comando tcpdump no ficheiro icmpcapture.pcap.

    sudo tcpdump -r ~/icmpcapture.pcap -n
    

    Para as VMs de back-end no grupo de instâncias ig-us-l3-default, vê entradas de ficheiros semelhantes às seguintes:

    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 as VMs de back-end no grupo de instâncias ig-us-tcp-80, vê que não foram recebidos pacotes e o ficheiro está em branco:

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

Opções de configuração adicionais

Crie uma regra de encaminhamento IPv6 com BYOIP

O balanceador de carga criado nos passos anteriores está configurado com regras de encaminhamento com IP version como IPv4 ou IPv6. Esta secção fornece instruções para criar uma regra de encaminhamento IPv6 com endereços IP (BYOIP).

A funcionalidade Bring your own IP addresses permite-lhe aprovisionar e usar os seus próprios endereços IPv6 públicos para Trusted Cloud by S3NS recursos. Para mais informações, consulte o artigo Use os seus próprios endereços IP.

Antes de começar a configurar uma regra de encaminhamento IPv6 com endereços BYOIP, tem de concluir os seguintes passos:

  1. Crie um prefixo IPv6 anunciado publicamente
  2. Crie prefixos públicos delegados
  3. Crie subprefixos IPv6
  4. Anuncie o prefixo

Para criar uma nova regra de encaminhamento, siga estes passos:

Consola

  1. Na Trusted Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga.

  2. Clique no nome do equilibrador de carga que quer modificar.
  3. Clique em Editar.
  4. Clique em Configuração do front-end.
  5. Clique em Adicionar IP e porta do front-end.
  6. Na secção Novo IP e porta de front-end, especifique o seguinte:
    1. Selecione o Protocolo de que precisa.
    2. No campo Versão do IP, selecione IPv6.
    3. No campo Origem do intervalo IPv6, selecione BYOIP.
    4. Na lista Recolha de IPs, selecione um subprefixo criado nos passos anteriores com a opção de regra de encaminhamento ativada.
    5. No campo Intervalo IPv6, introduza o intervalo de endereços IPv6. O prefixo do intervalo de endereços IPv6 tem de corresponder ao comprimento do prefixo atribuível especificado pelo subprefixo associado.
    6. No campo Portas, introduza um número de porta.
    7. Clique em Concluído.
  7. Clique em Atualizar.

gcloud

Crie a regra de encaminhamento através do 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

Substitua o seguinte:

  • FWD_RULE_NAME: o nome da regra de encaminhamento
  • PROTOCOL: o protocolo IP para a regra de encaminhamento. A predefinição é TCP. Para este exemplo, o protocolo IP pode ser TCP ou L3_DEFAULT.
  • REGION_A: região para a regra de encaminhamento
  • IPV6_CIDR_RANGE: o intervalo de endereços IPv6 que a regra de encaminhamento serve. O prefixo do intervalo de endereços IPv6 tem de corresponder ao comprimento do prefixo atribuível especificado pelo subprefixo associado.
  • BACKEND_SERVICE: o nome do serviço de back-end
  • PDP_NAME: o nome do prefixo público delegado. O PDP tem de ser um subprefixo no modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION

O que se segue?