Configurar um balanceador de carga de rede de passagem externa regional com NEGs zonais

Neste documento, mostramos como implantar um balanceador de carga de rede de passagem externa regional com back-ends de grupo de endpoints de rede (NEG) zonal. Os NEGs zonais com endpoints GCE_VM_IP permitem fazer o seguinte:

  • Encaminhar pacotes para interfaces de rede não nic0 de instâncias de máquina virtual (VM) representando uma interface de rede de uma instância de VM como o endpoint de back-end.
  • Crie um conjunto flexível de endpoints de back-end em que um endpoint possa ser anexado a vários NEGs, e cada NEG pode ter um conjunto diferente, mas possivelmente sobreposto.

Antes de seguir as instruções deste documento, familiarize-se com os itens abaixo:

Permissões

Para seguir estas etapas, crie instâncias e modifique uma rede em um projeto. É necessário ser um proprietário ou editor de projeto, ou ter todos os seguintes papéis do IAM do Compute Engine:

Tarefa Papel necessário
Criar componentes do balanceador de carga, sub-redes e redes Administrador da rede do Compute (roles/compute.networkAdmin)
Adicionar e remover regras de firewall Administrador de segurança do Compute (roles/compute.securityAdmin)
Criar instâncias Admin da instância do Compute (roles/compute.instanceAdmin)

Para mais informações, consulte as seguintes páginas:

Visão geral da configuração

Neste documento, mostramos como configurar e testar um balanceador de carga de rede de passagem externa regional que usa back-ends de NEG por zona GCE_VM_IP. Nas etapas desta seção, veja como configurar o seguinte:

  1. Uma rede VPC de amostra chamada lb-network com uma sub-rede personalizada.
  2. Regras de firewall que permitem conexões de entrada com VMs de back-end.
  3. Quatro VMs:
    • VMs vm-a1 e vm-a2 na zona us-west1-a
    • VMs vm-c1 e vm-c2 na zona us-west1-c
  4. Dois NEGs zonais de back-end, neg-a na zona us-west1-a e neg-c na zona us-west1-c. Cada NEG tem os seguintes endpoints:
    • neg-a contém estes dois endpoints:
      • nic1 da VM vm-a1 identificada pelo endereço IP interno principal
      • nic1 da VM vm-a2 identificada pelo endereço IP interno principal
    • neg-c contém estes dois endpoints:
      • nic1 da VM vm-c1 identificada pelo endereço IP interno principal
      • nic1 da VM vm-c2 identificada pelo endereço IP interno principal
  5. Uma VM cliente (vm-client) em us-west1-a para testar conexões
  6. Os seguintes componentes do balanceador de carga:
    • Um serviço de back-end externo na região us-west1 para gerenciar a distribuição de conexões para os dois NEGs zonais
    • Uma regra de encaminhamento externa e um endereço IP para o front-end do balanceador de carga

O balanceador de carga de rede de passagem externa regional é um balanceador de carga regional. Todos os componentes do balanceador de carga (VMs de back-end, serviço de back-end e regra de encaminhamento) precisam estar na mesma região.

A arquitetura deste exemplo é assim:

Balanceador de carga de rede de passagem externa regional com NEGs zonais.
Balanceador de carga de rede de passagem externa regional com NEGs zonais (clique para ampliar).

Antes de começar

Instale a Google Cloud CLI. Para uma visão geral completa da ferramenta, consulte Visão geral da CLI gcloud. Encontre os comandos relacionados ao balanceamento de carga nas referências do gcloud e da API.

Se você não executou a CLI gcloud anteriormente, primeiro execute o comando gcloud init para autenticar.

Nesta página, você precisa estar familiarizado com a ferramenta bash.

Configurar a rede e as sub-redes

O exemplo nesta página usa uma rede VPC de modo personalizado chamada lb-network. Se você quiser processar apenas o tráfego IPv4, use uma rede VPC de modo automático. No entanto, sub-redes com intervalos de endereço IPv6 não são compatíveis com redes VPC de modo automático. As sub-redes com intervalos de endereços IPv6 são compatíveis apenas com redes VPC no modo personalizado.

Neste exemplo, as sub-redes dos seguintes tipos de pilha são criadas:

Intervalos de sub-rede Tipo de pilha
Apenas intervalos de sub-rede IPv4 IPV4_ONLY (pilha única)
Intervalos de sub-rede IPv4 e IPv6 IPV4_IPV6 (pilha dupla)
Apenas intervalos de sub-rede IPv6 IPV6_ONLY (pilha única)

Para sub-redes de pilha dupla e somente IPv6 que usam um intervalo de endereços IPv6, é necessário escolher um tipo de acesso IPv6 para a sub-rede. O tipo de acesso IPv6 determina se a sub-rede está configurada com endereços IPv6 internos ou endereços IPv6 externos. Neste exemplo, o parâmetro ipv6-access-type da sub-rede está definido como EXTERNAL.

Uma sub-rede com um intervalo de endereços IPv6 externo, ou seja, cujo parâmetro ipv6-access-type está definido como EXTERNAL, também pode ser usada para originar o endereço IPv6 externo de uma regra de encaminhamento. Para mais informações, consulte Especificações de endereço IP para regras de encaminhamento.

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 intervalo de endereços IPv4 principal 10.1.2.0/24. Embora você escolha qual intervalo de endereços IPv4 será configurado na sub-rede, o intervalo de endereços IPv6 é atribuído automaticamente. O Google fornece um bloco CIDR IPv6 de tamanho fixo (/64).

Para criar o exemplo de rede e sub-rede, siga estas etapas.

Console

Para oferecer suporte a tráfego IPv4 e IPv6, siga estas etapas:

  1. No console do Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Em Nome, insira lb-network.

  4. Defina Modo de criação da sub-rede como Personalizado.

  5. Na seçã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 (pilha dupla)
    • Intervalo IPv4: 10.1.2.0/24
      É possível configurar um intervalo IPv4 de endereços para a sub-rede, mas não o intervalo de endereços IPv6 para sub-rede. O Google fornece um bloco CIDR IPv6 de tamanho fixo (/64).
    • Tipo de acesso IPv6: Externo
    • Clique em Concluir.
  6. Clique em Criar.

Para oferecer suporte apenas ao tráfego IPv4, siga estas etapas:

  1. No console do Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Em Nome, insira lb-network.

  4. Defina Modo de criação da sub-rede como Personalizado.

  5. Na seçã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.

Para oferecer suporte apenas ao tráfego IPv6, siga estas etapas:

  1. No console do Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Em Nome, insira lb-network.

  4. Defina Modo de criação da sub-rede como Personalizado.

  5. Na seçã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: IPv6 (pilha única)
    • Tipo de acesso IPv6: Externo
  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 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 somente tráfego IPv4, use o seguinte comando:

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

    Para somente tráfego IPv6, use o seguinte comando:

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

Criar VMs e grupos de endpoints de rede

Para demonstrar a natureza regional dos balanceadores de carga de rede de passagem externa regionais, este exemplo usa dois back-ends de NEG por zona em duas zonas diferentes. O tráfego é balanceado por carga nos NEGs e nos endpoints de cada NEG.

Criar VMs

Para este cenário de balanceamento de carga, crie quatro VMs e instale um servidor da Web Apache em cada instância. O servidor da Web detecta atividade na porta TCP 80. Por padrão, o Apache é configurado para ser vinculado a qualquer endereço IP. Os balanceadores de carga de rede de passagem externa regionais entregam pacotes preservando o endereço IP de destino.

Para simplificar a instrução, essas VMs de back-end executam o Debian GNU Linux 10.

Para lidar com 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 configuração ipv6-access-type (neste exemplo, EXTERNAL) da sub-rede. Para mais detalhes sobre os requisitos do IPv6, consulte a Visão geral do balanceador de carga de rede de passagem externa regional: regras de encaminhamento.

Para usar VMs como back-ends, atualize-as para que sejam de pilha dupla usando o comando gcloud compute instances network-interfaces update.

As instâncias que participam como VMs de back-end para balanceadores de carga de rede de passagem externa regionais precisam executar o ambiente convidado Linux, o ambiente convidado Windows ou outros processos adequados com funcionalidade equivalente.

Cada VM é criada com duas interfaces de rede, nic0 e nic1. Este tutorial usa nic1, que está associado à rede VPC lb-network e à sub-rede lb-subnet. Use a rede lb-network e a sub-rede lb-subnet para criar os NEGs zonais posteriormente neste procedimento.

Console

Criar VMs

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Repita as etapas a seguir para criar quatro VMs. Use estas combinações de nome e zona.

    • Nome: vm-a1, zona: us-west1-a
    • Nome: vm-a2, zona: us-west1-a
    • Nome: vm-c1, zona: us-west1-c
    • Nome: vm-c2, zona: us-west1-c
  3. Clique em Criar instância.

  4. Defina o Nome como indicado anteriormente.

  5. Em Região, selecione us-west1 e uma Zona, conforme indicado anteriormente.

  6. Na seção Disco de inicialização, verifique se Debian GNU/Linux 12 (bookworm) está selecionado para as opções de disco de inicialização. Se necessário, clique em Escolher para alterar a imagem.

  7. Clique em Opções avançadas e faça as seguintes alterações:

    • Clique em Rede e adicione as seguintes tags de rede: lb-tag e .
    • Em Interfaces de rede, clique em Adicionar interface de rede e faça as seguintes alterações:

      Para back-ends IPv4 e IPv6:

      • Rede: lb-network
      • Sub-rede: lb-subnet
      • Tipo de pilha de IP: IPv4 and IPv6 (dual-stack)
      • IP interno primário: temporário (automático)
      • Endereço IPv4 externo: temporário (automático)
      • Endereço IPv6 externo: temporário (automático)

      Para back-ends somente com IPv4:

      • Rede: lb-network
      • Sub-rede: lb-subnet
      • Tipo de pilha de IP: IPv4 (single-stack)
      • IP interno primário: temporário (automático)
      • IP externo: temporário

      Clique em Concluído.

    • Clique em Gerenciamento. No campo Script de inicialização, copie e cole o conteúdo do script a seguir, que é o mesmo para as quatro VMs:

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  8. Clique em Criar.

gcloud

Execute o seguinte comando quatro vezes para criar as quatro VMs, usando estas quatro combinações para VM_NAME e ZONE. O conteúdo do script é o mesmo para as quatro VMs.

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

Para processar tanto tráfego IPv4 quanto IPv6, use o comando a seguir.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPV4_IPV6,--ipv6-network-tier=PREMIUM \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPV4_IPV6,--ipv6-network-tier=PREMIUM \
    --metadata=startup-script='#! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2'

Para processar somente o tráfego IPv4, use o comando a seguir:

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPV4_ONLY \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPV4_ONLY \
    --metadata=startup-script='#! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2'

Criar NEGs zonais com GCE_VM_IP endpoints

Os NEGs precisam ser criados nas mesmas zonas que as VMs criadas na etapa anterior. Este exemplo também cria o NEG na rede VPC lb-network e na sub-rede lb-subnet, que estão associados a nic1 das VMs criadas na etapa anterior. Portanto, os endpoints do NEG estarão em nic1 das VMs.

Console

Para criar um grupo de endpoints de rede zonal:

  1. Acesse a página "Grupos de endpoints da rede" no console do Google Cloud .
    Acessar a página "Grupos de endpoints de rede"
  2. Clique em Criar grupo de endpoints de rede.
  3. Insira um Nome para o NEG zonal: neg-a
  4. Selecione o Tipo de grupo de endpoints da rede: Grupo de endpoints da rede (Zonal).
  5. Selecione Rede: lb-network
  6. Selecione a Sub-rede: lb-subnet
  7. Selecione a Zona: us-west1-a
  8. Clique em Criar.
  9. Repita essas etapas para criar um segundo NEG zonal chamado neg-c, na zona us-west1-c.

Adicione endpoints ao NEG zonal:

  1. Acesse a página "Grupos de endpoints da rede" no console do Google Cloud .
    Acessar os grupos de endpoints de rede
  2. Clique no Nome do primeiro grupo de endpoints de rede criado na etapa anterior (neg-a). Você verá a página Detalhes do grupo de endpoints de rede.
  3. Na seção Endpoints da rede neste grupo, clique em Adicionar endpoint da rede. Você verá a página Adicionar endpoint de rede.

    1. Clique em Instância de VM e selecione vm-a1 para adicionar os endereços IP internos como endpoints da rede.
    2. Clique em Criar.
    3. Clique mais uma vez em Adicionar endpoint da rede e, em Instância de VM, selecione vm-a2.
    4. Clique em Criar.
  4. Clique no Nome do segundo grupo de endpoints de rede criado na etapa anterior (neg-c). Você verá a página Detalhes do grupo de endpoints de rede.

  5. Na seção Endpoints da rede neste grupo, clique em Adicionar endpoint da rede. Você verá a página Adicionar endpoint de rede.

    1. Clique em Instância de VM e selecione vm-c1 para adicionar os endereços IP internos como endpoints da rede.
    2. Clique em Criar.
    3. Clique mais uma vez em Adicionar endpoint da rede e, em Instância de VM, selecione vm-c2.
    4. Clique em Criar.

gcloud

  1. Crie um NEG zonal GCE_VM_IP chamado neg-a em us-west1-a usando o comando gcloud compute network-endpoint-groups create:

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

    gcloud compute network-endpoint-groups update neg-a \
        --zone=us-west1-a \
        --add-endpoint='instance=vm-a1' \
        --add-endpoint='instance=vm-a2'
    
  3. Crie um NEG zonal GCE_VM_IP chamado neg-c em us-west1-c usando o comando gcloud compute network-endpoint-groups create:

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

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

Como configurar regras de firewall

Crie regras de firewall que permitam que o tráfego externo (que inclui sondagens de verificação de integridade) alcance as instâncias de back-end.

Este exemplo cria uma regra de firewall que permite que o tráfego TCP de todos os intervalos de origem alcance suas instâncias de back-end na porta 80. Se você quiser criar regras de firewall separadas para as sondagens de verificação de integridade, use os intervalos de endereços IP de origem documentados na Visão geral das verificações de integridade: sondar intervalos de IP e regras de firewall.

Console

No console do Google Cloud , acesse a página Firewall.

Acessar o Firewall

Para permitir o tráfego IPv4, siga estas etapas:

  1. Clique em Criar regra de firewall.
  2. Digite um Nome: allow-network-lb-ipv4.
  3. Em Rede, selecione lb-network.
  4. Em Destinos, selecione Specified target tags.
  5. No campo Tags de destino, insira lb-tag.
  6. Em Filtro de origem, selecione Intervalos IPv4.
  7. Defina Intervalos IPv4 de origem como 0.0.0.0/0. Isso permite tráfego IPv4 de qualquer origem. Isso também permite que as sondagens de verificação de integridade do Google alcancem as instâncias de back-end.
  8. Em Protocolos e portas especificados, selecione TCP e insira 80.
  9. Clique em Criar.

Para permitir o tráfego IPv6, siga estas etapas:

  1. Clique em Criar regra de firewall novamente.
  2. Digite um Nome: allow-network-lb-ipv6.
  3. Em Rede, selecione lb-network.
  4. Em Destinos, selecione Specified target tags.
  5. No campo Tags de destino, insira lb-tag.
  6. Em Filtro de origem, selecione Intervalos IPv6.
  7. Defina Intervalos IPv6 de origem como ::/0. Isso permite tráfego IPv6 de qualquer origem. Isso também permite que as sondagens de verificação de integridade do Google alcancem as instâncias de back-end.
  8. Em Protocolos e portas especificados, selecione TCP e insira 80.
  9. Clique em Criar.

gcloud

Para permitir tráfego IPv4, execute o seguinte comando:

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

Para permitir tráfego IPv6, execute o seguinte comando:

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

Configurar o balanceador de carga

Em seguida, configure o balanceador de carga.

Quando você configura o balanceador de carga, as VMs recebem os pacotes destinados ao endereço IP externo estático configurado. Se você usa uma imagem fornecida pelo Compute Engine, as instâncias são configuradas automaticamente para processar esse endereço IP. Se você estiver usando outra imagem, configure esse endereço como um alias em eth1 ou como um loopback em cada instância.

Para configurar o balanceador de carga, siga as instruções abaixo.

Console

Iniciar a configuração

  1. No console do Google Cloud , acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Criar balanceador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Próxima.
  4. Em Proxy ou passagem, selecione Balanceador de carga de passagem e clique em Próxima.
  5. Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
  6. Clique em Configurar.

Configuração de back-end

  1. Na página Criar balanceador de carga de rede de passagem externa, insira o nome network-lb-zonal-neg para o novo balanceador de carga.
  2. Na lista Região, selecione us-west1.
  3. Clique em Configuração de back-end. O Nome do balanceador de carga que você inseriu anteriormente é exibido, mas não é possível modificá-lo.
  4. Na lista Tipo de back-end, selecione Grupo de endpoints de rede sem servidor.
  5. Na página Configuração de back-end, faça o seguinte:
    1. Na lista Verificação de integridade, clique em Criar verificação de integridade e insira as seguintes informações:
      • Nome: tcp-health-check
      • Protocolo: TCP
      • Porta: 80
    2. Clique em Criar.
    3. Na lista Grupo de endpoints de rede, selecione neg-a e clique em Concluído.
    4. Clique em Adicionar back-end e repita a etapa anterior para adicionar neg-c.
    5. Clique em Salvar.
  6. Verifique se há uma marca de seleção azul ao lado de Configuração do back-end antes de continuar.

Configuração de front-end

  1. Clique em Configuração de front-end.
  2. Em Nome, insira netlb-forwarding-rule.
  3. Para processar o tráfego IPv4, siga estas etapas:
    1. Em Versão IP, selecione IPv4.
    2. Em Endereço IP, clique no menu suspenso e selecione Criar endereço IP.
      1. Na página Reservar um novo endereço IP estático, em Nome, insira netlb-ipv4-address.
      2. Clique em Reservar.
    3. Em Portas, escolha Porta única. Em Número da porta, digite 80.
    4. Clique em Concluído.
  4. Para processar o tráfego IPv6, siga estas etapas:

    1. Em Versão IP, selecione IPv6.
    2. Em Sub-rede, selecione lb-subnet.
    3. Em Intervalo IPv6, clique no menu suspenso e selecione Criar endereço IP.
      1. Na página Reservar um novo endereço IP estático, em Nome, insira netlb-ipv6-address.
      2. Clique em Reservar.
    4. Em Portas, escolha Porta única. Em Número da porta, digite 80.
    5. Clique em Concluído.

    Um círculo azul com uma marca de seleção à esquerda de Configuração de front-end indica o sucesso da configuração.

Analise a configuração

  1. Clique em Analisar e finalizar.
  2. Revise suas configurações do balanceador de carga.
  3. Opcional: clique em Código equivalente para conferir a solicitação de API REST que será usada para criar o balanceador de carga.
  4. Clique em Criar.

    Na tela do balanceamento de carga, na coluna "Back-end" do novo balanceador de carga, você verá uma marca de seleção verde. Ela indica que o novo balanceador de carga é íntegro.

gcloud

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

    Para o tráfego IPv4

    Crie um endereço IPv4 externo estático para o balanceador de carga.

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

    Para o tráfego IPv6

    Crie um intervalo de endereços IPv6 externos estáticos para o balanceador de carga. A sub-rede usada precisa ser uma sub-rede de pilha dupla com um intervalo IPv6 externo.

    gcloud compute addresses create netlb-ipv6-address \
        --region=us-west1 \
        --subnet=lb-subnet \
        --ip-version=IPV6 \
        --endpoint-type=NETLB
    
  2. Crie uma verificação de integridade TCP.

    gcloud compute health-checks create tcp tcp-health-check \
        --region=us-west1 \
        --port=80
    
  3. Crie um serviço de back-end.

    gcloud compute backend-services create networklb-backend-service \
        --protocol=TCP \
        --health-checks=tcp-health-check \
        --health-checks-region=us-west1 \
        --region=us-west1
    
  4. Adicione os dois NEGs zonais, neg-a e neg-c, ao serviço de back-end:

    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-a \
        --network-endpoint-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-c \
        --network-endpoint-group-zone=us-west1-c
    
  5. Crie as regras de encaminhamento dependendo se você quer processar o tráfego IPv4 ou IPv6. Crie as duas regras de encaminhamento para processar ambos os tipos de tráfego.

    Para o tráfego IPv4

    Crie uma regra de encaminhamento para rotear o tráfego TCP de entrada para o serviço de back-end. Use o endereço IPv4 reservado na etapa 1 como o endereço IP externo estático do balanceador de carga.

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

    Para o tráfego IPv6

    Crie uma regra de encaminhamento para processar o tráfego IPv6. Use o intervalo de endereços IPv6 reservado na etapa 1 como o endereço IP externo estático do balanceador de carga. A sub-rede usada precisa ser uma sub-rede de pilha dupla com um intervalo de sub-rede IPv6 externo.

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

Testar o balanceador de carga

Agora que o serviço de balanceamento de carga foi configurado, comece a enviar tráfego para o endereço IP externo do balanceador de carga e veja o tráfego ser distribuído às instâncias de back-end.

Procure o endereço IP externo do balanceador de carga.

Console

  1. Na página de balanceamento de carga Avançado, acesse a guia Regras de encaminhamento.

    Acessar as regras de encaminhamento

  2. Localize a regra de encaminhamento usada pelo balanceador de carga.

  3. Na coluna Endereço, anote o endereço IP externo listado.

gcloud: IPv4

Insira o comando a seguir para visualizar o endereço IPv4 externo da regra de encaminhamento network-lb-forwarding-rule usada pelo balanceador de carga.

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

gcloud: IPv6

Insira o comando a seguir para visualizar o endereço IPv6 externo da regra de encaminhamento network-lb-forwarding-rule usada pelo balanceador de carga.

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

Enviar tráfego ao balanceador de carga

Faça solicitações da Web para o balanceador de carga usando curl para contatar o endereço IP dele.

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

    while true; do curl -m1 IPV4_ADDRESS; done
    
  • Em clientes com conectividade 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]:80, o comando será semelhante a este:

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

Observe o texto retornado pelo comando curl. O nome da VM de back-end que gera a resposta é exibido nesse texto. Por exemplo: Page served from: VM_NAME.

A resposta do comando curl alterna aleatoriamente entre as instâncias de back-end. Se ocorrer falha na resposta, aguarde cerca de 30 segundos para que a configuração seja totalmente carregada e as instâncias sejam marcadas como íntegras antes de tentar novamente:

Outras opções de configuração

Para personalizar ainda mais o balanceador de carga de rede de passagem externa regional, configure a afinidade da sessão, o direcionamento de tráfego e configure uma política de failover ou uma política de rastreamento de conexão. Essas tarefas são opcionais e podem ser realizadas em qualquer ordem. Para mais instruções, consulte Outras opções de configuração.

Criar uma regra de encaminhamento IPv6 com BYOIP

O balanceador de carga criado nas etapas anteriores foi configurado com regras de encaminhamento usando IP version como IPv4 ou IPv6. Esta seção fornece instruções para criar uma regra de encaminhamento IPv6 com endereços BYOIP.

Com a opção "Traga seus próprios endereços IP", é possível provisionar e usar seus próprios endereços IPv6 públicos para recursos do Google Cloud . Para mais informações, consulte Trazer seus próprios endereços IP.

Antes de começar a configurar uma regra de encaminhamento IPv6 com endereços BYOIP, conclua as seguintes etapas:

  1. Criar um prefixo IPv6 publicamente divulgado
  2. Criar prefixos delegados públicos
  3. Criar subprefixos IPv6
  4. Anunciar o prefixo

É possível configurar um balanceador de carga de rede de passagem externa regional para usar endereços IPv6 de um prefixo delegado público (PDP). É possível fazer isso usando um dos três fluxos de trabalho:

  • Alocação direta de uma página de detalhes do produto. Se você preferir que o endereço IP seja vinculado diretamente ao ciclo de vida do balanceador de carga, faça referência ao PDP diretamente durante a criação da regra de encaminhamento. O IP temporário é liberado de volta para o pool de PDP se o balanceador de carga for excluído.
  • Reserve um endereço IPv6 BYOIP. É possível reservar um endereço IPv6 BYOIP regional específico ou alocado automaticamente de um PDP antes da criação do balanceador de carga. Esse endereço persiste independentemente do ciclo de vida do balanceador de carga. Esse é o caminho necessário para usuários do Google Kubernetes Engine (GKE) porque a API GKE não oferece suporte à criação de um balanceador de carga de rede de passagem diretamente de uma PDP.
  • Promover um IP temporário. Se um balanceador de carga já estiver em execução com um endereço IPv6 temporário BYOIP, é possível promovê-lo a um endereço reservado para que ele persista mesmo se o balanceador de carga for excluído.

Limitações

  • Para configurar uma regra de encaminhamento IPv6 com um endereço BYOIP, o comprimento do prefixo do endereço IPv6 da regra de encaminhamento precisa corresponder ao comprimento do prefixo alocável do subprefixo IPv6 (no modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION) de que o endereço IPv6 da regra de encaminhamento é alocado. O comprimento do prefixo pode ser um dos seguintes: /48, /56, /64, /72, /80, /88 ou /96.
  • O endereço IPv6 precisa estar na mesma região que o PDP.

Dependendo dos seus requisitos, escolha uma das seguintes implantações:

Alocação direta de um PDP

Crie a regra de encaminhamento referenciando o PDP diretamente. O endereço IP está vinculado ao ciclo de vida do balanceador de carga.

Console

  1. No console do Google Cloud , acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no nome do balanceador de carga que você quer modificar.
  3. Clique em Editar.
  4. Clique em Configuração de front-end.
  5. Clique em Adicionar IP e porta de front-end.
  6. Na seção Novo IP e nova porta de front-end, especifique o seguinte:
    1. Selecione o Protocolo necessário.
    2. No campo Versão IP, selecione IPv6.
    3. No campo Origem do intervalo IPv6, selecione BYOIP.
    4. No campo Tipo de BYOIP, selecione Coleção de IPs BYOIP.
    5. Na lista Coleção de IPs, selecione um subprefixo (PDP) criado nas etapas anteriores com a opção de regra de encaminhamento ativada.
    6. No campo Intervalo IPv6, insira o intervalo de endereços IPv6. O tamanho do prefixo do intervalo de endereços IPv6 precisa corresponder ao tamanho do prefixo alocável do subprefixo associado.
    7. No campo Portas, digite um número de porta.
    8. Clique em Concluído.
  7. Clique em Atualizar.

gcloud

Use o 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:

  • FWD_RULE_NAME: o nome da regra de encaminhamento.
  • PROTOCOL: o protocolo IP da regra de encaminhamento. O padrão é TCP. O protocolo IP pode ser TCP, UDP ou L3_DEFAULT.
  • REGION_A: região da regra de encaminhamento
  • IPV6_CIDR_RANGE: o intervalo de endereços IPv6 que a regra de encaminhamento atende. O prefixo do intervalo de endereços IPv6 precisa corresponder ao comprimento do prefixo alocável especificado pelo subprefixo associado.
  • BACKEND_SERVICE: o nome do serviço de back-end
  • PDP_NAME: o nome do prefixo delegado público. O PDP precisa ser um subprefixo no modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION.

Reservar um endereço IPv6 BYOIP

Reserve o endereço BYOIP IPv6 para o balanceador de carga e crie a regra de encaminhamento referenciando o endereço IP ou o nome do recurso de endereço reservado.

Console

Reservar o endereço IPv6 BYOIP para o balanceador de carga

  1. No console do Google Cloud , acesse a página Endereços IP.

    Acessar endereços IP

  2. Clique em Reservar endereço estático.
  3. No campo Nome, insira um nome para o recurso de endereço IP.
  4. No campo Nível de serviço de rede, selecione Premium.
  5. No campo Versão IP, selecione IPv6.
  6. Selecione a Região. A região precisa corresponder à região da sua PDP.
  7. Marque a caixa de seleção Atribuir de uma coleção de IPs.
  8. Na lista Coleção de IPs, selecione o subprefixo IPv6 (PDP) de que você quer reservar o endereço.
  9. Opcional: no campo Endereço IP, insira um intervalo de endereços IPv6 específico para reservar (alocação personalizada). Se você não especificar um intervalo de endereços,o Google Cloud vai alocar automaticamente um intervalo da coleção de IP selecionada (alocação automática).
  10. Clique em Reservar.

Atribuir o endereço reservado ao balanceador de carga

  1. No console do Google Cloud , acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no nome do balanceador de carga que você quer modificar.
  3. Clique em Editar e em Configuração de front-end.
  4. Clique em Adicionar IP e porta de front-end.
  5. Na seção Novo IP e nova porta de front-end, especifique o seguinte:
    1. Selecione o Protocolo necessário.
    2. No campo Versão IP, selecione IPv6.
    3. No campo Origem do intervalo IPv6, selecione BYOIP.
    4. No campo Tipo de BYOIP, selecione Endereço IP reservado BYOIP.
    5. Na lista Endereço IP reservado, selecione o recurso de endereço BYOIPv6 reservado que você criou na etapa 1.
    6. No campo Portas, digite um número de porta.
    7. Clique em Concluído.
  6. Conclua a configuração do balanceador de carga e clique em Atualizar.

gcloud

Reservar o endereço IPv6 BYOIP para o balanceador de carga

Para reservar um endereço IPv6 BYOIP regional de uma PDP antes da criação do balanceador de carga, execute o comando gcloud compute addresses create com --endpoint-type=NETLB. Escolha uma das seguintes opções:

  • Para reservar um intervalo de endereços IPv6 específico, execute:

      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 o Google Cloud aloca automaticamente um intervalo da PDP, execute:

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

Substitua:

  • ADDRESS_NAME: o nome do recurso de endereço IP reservado.
  • PDP_NAME: o nome do prefixo delegado público. O PDP precisa ser um subprefixo no modo EXTERNAL_IPV6_FORWARDING_RULE_CREATION.
  • IPV6_ADDRESS: o endereço IPv6 inicial do intervalo (por exemplo, 2001:db8::).
  • REGION_A: região em que o endereço será criado. Essa região precisa corresponder à região do PDP.
  • PREFIX_LENGTH: o tamanho do prefixo do intervalo de endereços, que precisa ser igual ao tamanho do prefixo alocável do PDP associado (por exemplo, 56).

Criar a regra de encaminhamento usando o endereço reservado

Para criar a regra de encaminhamento usando o endereço reservado, execute o comando gcloud compute forwarding-rules create. Escolha uma das seguintes opções:

  • Para referenciar o intervalo de endereços IP, execute o seguinte 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 referenciar o nome do endereço reservado, execute o seguinte 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
    

Substitua:

  • FWD_RULE_NAME: o nome da regra de encaminhamento.
  • PROTOCOL: o protocolo IP da regra de encaminhamento. O padrão é TCP. O protocolo IP pode ser TCP, UDP ou L3_DEFAULT.
  • REGION_A: região da regra de encaminhamento
  • IPV6_CIDR_RANGE: o intervalo de endereços IPv6 que a regra de encaminhamento atende. O prefixo do intervalo de endereços IPv6 precisa corresponder ao comprimento do prefixo alocável especificado pelo subprefixo associado.
  • BACKEND_SERVICE: o nome do serviço de back-end
  • ADDRESS_NAME: o nome do recurso de endereço IP reservado.

Promover um IP temporário a um endereço IP reservado

Crie a regra de encaminhamento usando a alocação direta e promova o endereço IP temporário em uso.

Console

  1. Siga as etapas para criar a regra de encaminhamento usando alocação direta de uma página de detalhes do produto.
  2. No console do Google Cloud , acesse a página Endereços IP.

    Acessar endereços IP

  3. Clique na guia Endereços IP externos.
  4. Encontre o endereço IPv6 BYOIP temporário associado ao balanceador de carga de rede de passagem externa.
  5. Na coluna Ações, clique no menu de três pontos () e selecione Promover a endereço IP estático.
  6. Insira um Nome para o endereço reservado e clique em Reservar.

gcloud

  1. Siga as etapas para atualizar a regra de encaminhamento usando a alocação direta de uma PDP.
  2. Para promover o intervalo de IP temporário em uso pelo balanceador de carga a um endereço IP estático reservado, execute o comando gcloud compute addresses create:

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

    Substitua:

    • ADDRESS_NAME: o nome do recurso de endereço IP reservado.
    • IPV6_ADDRESS: o endereço IPv6 inicial do intervalo (por exemplo, 2001:db8::).
    • REGION_A: região da regra de encaminhamento
    • PREFIX_LENGTH: o tamanho do prefixo do intervalo de endereços, que precisa ser igual ao tamanho do prefixo alocável do PDP associado (por exemplo, 56).

A seguir