Configurar um balanceador de carga de rede de passagem interna com back-ends internos somente IPv6

Neste documento, mostramos como configurar e testar um balanceador de carga de rede de passagem interna que oferece suporte ao tráfego interno somente IPv6. Neste exemplo de configuração, você instala um servidor da Web Apache nas instâncias de máquina virtual (VM) de back-end somente IPv6 internas para veicular conteúdo em resposta ao tráfego recebido pelo IP virtual (VIP) do balanceador de carga.

Como mostrado no diagrama de arquitetura a seguir, as VMs de back-end do balanceador de carga são configuradas com endereços IPv6 internos. Para esta configuração de exemplo, essas VMs de back-end precisam fazer o download do Apache para instalar um servidor da Web, o que exige acesso à Internet pública. No entanto, como essas VMs de back-end não têm endereços IP externo, elas não podem acessar a Internet diretamente.

Para ativar o acesso à Internet, este exemplo usa uma instância de VM separada, configurada com um endereço IPv6 externo, que serve como um gateway NAT. Essa VM realiza a tradução de endereços no nível do kernel do Linux. Especificamente, a cadeia POSTROUTING na tabela NAT é usada para mascarar o endereço de origem dos pacotes de saída, substituindo o endereço IPv6 interno de cada VM de back-end pelo endereço IPv6 externo da VM do gateway NAT na interface de rede especificada.

Exemplo de configuração do balanceador de carga de rede de passagem interna com back-ends somente IPv6 internos.
Exemplo de configuração do balanceador de carga de rede de passagem interna com back-ends somente IPv6 internos (clique para ampliar).

As informações a seguir mostram como configurar os diferentes componentes usados para configurar um balanceador de carga de rede de passagem interna com back-ends somente IPv6 internos.

Permissões

Para seguir este guia, você precisa criar instâncias e modificar uma rede em um projeto. É necessário ser proprietário ou editor de um projeto ou ter todos os papéis de IAM do Compute Engine a seguir:

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

Para mais informações, consulte estes guias:

Configurar uma rede e uma sub-rede somente IPv6 com endereços IPv6 internos

O exemplo de balanceador de carga de rede de passagem interna descrito nesta página é criado em uma rede VPC de modo personalizado chamada lb-network-ipv6-only.

Para configurar sub-redes com intervalos de IPv6 internos, ative um intervalo de IPv6 interno de ULA da rede VPC. Os intervalos de sub-redes IPv6 internos são alocados desse intervalo.

Console

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

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Em Nome, insira lb-network-ipv6-only.

  4. Se você quiser configurar intervalos de endereços de IPv6 internos em sub-redes nesta rede, siga estas etapas:

    1. Em Configurações de endereço IPv6 particular, selecione Configurar um intervalo IPv6 interno ULA para esta rede VPC.
    2. Em Alocar intervalo de IPv6 interno, selecione Automático ou Manualmente. Se você selecionar Manualmente, insira um intervalo /48 no intervalo fd20::/20. Se o intervalo já estiver em uso, você precisará fornecer outro.
  5. Em Modo de criação da sub-rede, selecione Personalizado.

  6. Na seção Nova sub-rede, especifique os parâmetros de configuração a seguir para a sub-rede:

    • Nome: lb-subnet-ipv6-only
    • Região: us-west1
    • Tipo de pilha de IP: IPv6 (pilha única)
    • Tipo de acesso IPv6: interno
  7. Clique em Concluído.

  8. Clique em Criar.

gcloud

  1. Para criar uma nova rede VPC personalizada, execute o comando gcloud compute networks create.

    Para configurar intervalos IPv6 internos em qualquer sub-rede nessa rede, use a flag --enable-ula-internal-ipv6.

    gcloud compute networks create lb-network-ipv6-only \
        --subnet-mode=custom \
        --enable-ula-internal-ipv6 \
        --bgp-routing-mode=regional
    
  2. Configure uma sub-rede com o ipv6-access-type definido como INTERNAL. Isso indica que as VMs nessa sub-rede só podem ter endereços IPv6 internos. Neste exemplo, a sub-rede é chamada de lb-subnet-ipv6-only-internal.

    Para criar a sub-rede, execute o comando gcloud compute networks subnets create.

    gcloud compute networks subnets create lb-subnet-ipv6-only-internal \
        --network=lb-network-ipv6-only \
        --region=us-west1 \
        --stack-type=IPV6_ONLY \
        --ipv6-access-type=INTERNAL
    

Configurar uma sub-rede somente IPv6 com endereços IPv6 externos

Uma sub-rede somente IPv6 com endereços IPv6 externos é usada para criar uma instância de VM que serve como um gateway NAT.

Console

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

    Acessar redes VPC

  2. Para acessar a página Detalhes da rede VPC, clique no nome da rede VPC que você criou.

  3. Na guia Sub-redes, clique em Adicionar sub-rede. No painel exibido, especifique os seguintes parâmetros de configuração para a sub-rede:

    • Nome: lb-subnet-ipv6-only-external
    • Região: us-west1
    • Tipo de pilha de IP: IPv6 (pilha única)
    • Tipo de acesso IPv6: Externo
  4. Clique em Adicionar.

gcloud

Configure uma sub-rede com o ipv6-access-type definido como EXTERNAL. Isso indica que as VMs nessa sub-rede podem ter endereços IPv6 externos. Neste exemplo, a sub-rede é chamada de lb-subnet-ipv6-only-external.

Para criar a sub-rede, execute o comando gcloud compute networks subnets create.

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

Configurar regras de firewall na rede VPC

Este exemplo usa as seguintes regras de firewall:

  • fw-allow-lb-access-ipv6-only: uma regra de entrada, aplicável a todos os destinos na rede VPC, que permite o tráfego de todas as origens IPv6.

  • fw-allow-ssh: uma regra de entrada que permite a conectividade SSH de entrada na porta TCP 22 de qualquer endereço. Escolha um intervalo de IP de origem mais restritivo para esta regra. Por exemplo, é possível especificar apenas os intervalos de IP do sistema do qual você inicia sessões SSH. Neste exemplo, usamos a tag allow-ssh de destino para identificar as VMs a que isso se aplicará.

  • fw-allow-health-check-ipv6-only: uma regra de entrada, aplicável às instâncias submetidas a balanceamento de carga, que permite o tráfego dos sistemas de verificação de integridade do Trusted Cloud (2600:2d00:1:b029::/64). Este exemplo usa a tag de destino allow-health-check-ipv6 para identificar as instâncias a que ela deve ser aplicada.

Sem essas regras de firewall, a regra padrão de negação de entrada bloqueará o tráfego que chega para as instâncias de back-end.

Console

  1. No console Trusted Cloud , acesse a página Políticas de firewall.

    Acesse as políticas de firewall

  2. Para permitir o tráfego de sub-rede IPv6, clique novamente em Criar regra de firewall e insira as seguintes informações:

    • Nome: fw-allow-lb-access-ipv6-only
    • Rede: lb-network-ipv6-only
    • Prioridade: 1000
    • Direção do tráfego: entrada
    • Ação na correspondência: permitir
    • Destinos: All instances in the network
    • Filtro de origem: intervalos IPv6
    • Intervalos IPv6 de origem: ::/0
    • Protocolos e portas: permitir todos
  3. Clique em Criar.

  4. Para permitir conexões SSH de entrada, clique em Criar regra de firewall novamente e insira as seguintes informações:

    • Nome: fw-allow-ssh
    • Rede: lb-network-ipv6-only
    • Prioridade: 1000
    • Direção do tráfego: entrada
    • Ação na correspondência: permitir
    • Destinos: tags de destino especificadas
    • Tags de meta: allow-ssh
    • Filtro de origem: intervalos IPv6
    • Intervalos IPv6 de origem: ::/0
    • Protocolos e portas: selecione Protocolos e portas especificados, marque a caixa de seleção TCP e insira 22 em Ports (Portas).
  5. Clique em Criar.

  6. Para permitir as verificações de integridade do Trusted Cloud IPv6, clique em Criar regra de firewall novamente e insira as seguintes informações:

    • Nome: fw-allow-health-check-ipv6-only
    • Rede: lb-network-ipv6-only
    • Prioridade: 1000
    • Direção do tráfego: entrada
    • Ação na correspondência: permitir
    • Destinos: tags de destino especificadas
    • Tags de meta: allow-health-check-ipv6
    • Filtro de origem: intervalos IPv6
    • Intervalos IPv6 de origem: 2600:2d00:1:b029::/64
    • Protocolos e portas: permitir todos
  7. Clique em Criar.

gcloud

  1. Crie a regra de firewall fw-allow-lb-access-ipv6-only para permitir todo o tráfego IPv6 de entrada para todas as instâncias de VM na rede VPC:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6-only \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --source-ranges=::/0 \
        --rules=all
    
  2. Crie a regra de firewall fw-allow-ssh que permita a conectividade SSH para VMs com a tag de rede allow-ssh. Quando você omite source-ranges, oTrusted Cloud interpreta a regra como sendo qualquer origem.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --source-ranges=::/0 \
        --rules=tcp:22
    
  3. Crie a regra fw-allow-health-check-ipv6 para permitir verificações de integridade doTrusted Cloud IPv6.

    gcloud compute firewall-rules create fw-allow-health-check-ipv6-only \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64 \
        --rules=tcp,udp
    

Criar uma instância de VM que sirva como um gateway NAT

Neste exemplo, um script Bash é usado para criar um gateway NAT que é usado para modificar pacotes IPv6 no nível do kernel do Linux.

O script Bash modifica o endereço de origem de todos os pacotes IPv6 de saída na cadeia POSTROUTING, substituindo-o pelo endereço IPv6 externo da interface da VM.

O script Bash modifica a cadeia POSTROUTING em iptables para mascarar o endereço IPv6 de origem de todos os pacotes de saída, substituindo-o pelo endereço IPv6 externo da interface de rede da VM.

Também é necessário ativar o encaminhamento de IP para essa instância.

Para criar uma instância de VM que funcione como um gateway NAT, faça o seguinte:

Console

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

    Acessar instâncias de VM

  2. Clique em Criar instância.

  3. Em Nome, insira nat-gateway-instance.

  4. Em Região, selecione us-west1 e, em Zona, selecione us-west1-a.

  5. 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 Alterar para alterar a imagem.

  6. Clique em Rede e configure os seguintes campos:

    1. Em Tags de rede, insira allow-ssh.
    2. Em Encaminhamento de IP, marque a caixa de seleção Ativar.
    3. Em Interfaces de rede, selecione o seguinte:
      • Rede: lb-network-ipv6-only
      • Sub-rede: lb-subnet-ipv6-only-external
      • Tipo de pilha de IP: IPv6 (pilha única)
      • Endereço IPv6 externo: alocação automática
  7. Clique em Avançado e, no campo Script de inicialização, insira o script a seguir:

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    

  8. Clique em Criar.

gcloud

  1. Crie um script de inicialização.

    nano startup.sh
    
  2. Adicione o script a seguir e salve o arquivo.

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    
  3. Crie uma instância de VM e adicione o arquivo de metadados a ela. Para usar essa VM como um próximo salto para uma rota, use a flag --can-ip-forward para ativar o encaminhamento de IP para essa instância.

    gcloud compute instances create nat-gateway-instance \
        --zone=us-west1-a \
        --tags=allow-ssh \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --subnet=lb-subnet-ipv6-only-external \
        --stack-type=IPV6_ONLY \
        --can-ip-forward \
        --metadata-from-file=startup-script=startup.sh
    

Criar uma rota estática na rede VPC

Neste exemplo, uma rota personalizada é criada para direcionar todo o tráfego IPv6 da Internet (::/0) de VMs com a tag nat-gw-tag para a instância de VM nat-gateway-instance, que serve como gateway NAT.

Para criar uma rota, faça o seguinte:

Console

  1. No console Trusted Cloud , acesse a página "Rotas".

    Acessar a página Rotas

  2. Clique na guia Gerenciamento de rotas.

  3. Clique em Criar rota.

  4. Especifique um nome e uma descrição para a rota.

  5. Na lista Rede, selecione a rede VPC lb-network-ipv6-only.

  6. Na lista Versão IP, selecione IPv6.

  7. Especifique um intervalo IPv6 de destino. O maior destino possível é ::/0 para IPv6.

  8. Para tornar a rota aplicável somente para selecionar instâncias com tags de rede correspondentes, especifique-as no campo Tags da instância. Deixe o campo em branco para tornar a rota aplicável a todas as instâncias na rede. Neste exemplo, digite nat-gw-tag.

  9. Em Próximo salto, selecione Especificar uma instância.

  10. Selecione o nome da instância que você criou para servir como gateway NAT. Neste exemplo, selecione nat-gateway-instance.

  11. Clique em Criar.

gcloud

Use o comando gcloud compute routes create para criar uma nova rota. O pacote é encaminhado para a instância de VM nat-gateway-instance, conforme especificado por --next-hop-instance da rota.

gcloud compute routes create route-1 \
    --network=lb-network-ipv6-only \
    --priority=1000 \
    --tags=nat-gw-tag \
    --destination-range=::/0 \
    --next-hop-instance=nat-gateway-instance \
    --next-hop-instance-zone=us-west1-a

Criar VMs de back-end e grupos de instâncias

Neste exemplo, usamos dois grupos de instâncias não gerenciadas, cada um com duas VMs de back-end. Para demonstrar a natureza regional de balanceadores de carga de rede de passagem interno, os dois grupos de instâncias são colocados em zonas separadas, us-west1-a e us-west1-c.

  • O grupo de instâncias ig-a contém estas duas VMs:
    • vm-a1
    • vm-a2
  • O grupo de instâncias ig-c contém estas duas VMs:
    • vm-c1
    • vm-c2

O tráfego para as quatro VMs de back-end é submetido a balanceamento de carga.

Neste exemplo, a rota estática criada em uma etapa anterior tem escopo definido para instâncias de VM específicas usando a tag de rede nat-gw-tag.

Console

Criar VMs de back-end

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

    Acessar instâncias de VM

  2. Repita essas etapas para cada VM, usando as seguintes 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 na etapa 2.

  5. Em Região, selecione us-west1 e escolha uma Zona, como indicado na etapa 2.

  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 Alterar para alterar a imagem.

  7. Clique em Opções avançadas.

  8. Clique em Rede e configure os seguintes campos:

    1. Em Tags de rede, insira allow-ssh, allow-health-check-ipv6 e nat-gw-tag.
    2. Em Interfaces de rede, selecione o seguinte:
      • Rede: lb-network-ipv6-only
      • Sub-rede: lb-subnet-ipv6-only-internal
      • Tipo de pilha de IP: IPv6 (pilha única)
      • Endereço IPv6 interno principal: temporário (automático)
  9. Clique em Avançado e, no campo Script de inicialização, insira o script a seguir. O conteúdo do script é 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
    
  10. Clique em Criar.

Criar grupos de instâncias

  1. No console Trusted Cloud , acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Repita as etapas a seguir para criar dois grupos de instâncias não gerenciadas com duas VMs cada. Use estas combinações.

    • Nome do grupo de instâncias: ig-a, zona: us-west1-a, VMs: vm-a1 e vm-a2
    • Nome do grupo de instâncias: ig-c, zona: us-west1-c, VMs: vm-c1 e vm-c2
  3. Clique em Criar grupo de instâncias.

  4. Clique em Novo grupo de instâncias não gerenciadas.

  5. Defina o Nome como indicado na etapa 2.

  6. Na seção Local, escolha us-west1 como Região e escolha uma Zona, conforme indicado na etapa 2.

  7. Em Rede, selecione lb-network-ipv6-only.

  8. Em Sub-rede, selecione lb-subnet-ipv6-only-internal.

  9. Na seção Instâncias de VMs, adicione as VMs como indicado na etapa 2.

  10. Clique em Criar.

gcloud

  1. Para criar as quatro VMs, execute o comando gcloud compute instances create quatro vezes, usando as quatro combinações a seguir para [VM-NAME] e [ZONE].

    • VM-NAME: vm-a1, ZONE: us-west1-a
    • VM-NAME: vm-a2, ZONE: us-west1-a
    • VM-NAME: vm-c1, ZONE: us-west1-c
    • VM-NAME: vm-c2, ZONE: us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check-ipv6,nat-gw-tag \
        --subnet=lb-subnet-ipv6-only-internal \
        --stack-type=IPV6_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'
    
  2. Crie os dois grupos de instâncias não gerenciadas em cada zona:

    gcloud compute instance-groups unmanaged create ig-a \
        --zone=us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone=us-west1-c
    
  3. Adicione as VMs aos grupos de instâncias apropriados:

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone=us-west1-a \
        --instances=vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone=us-west1-c \
        --instances=vm-c1,vm-c2
    

Configurar componentes do balanceador de carga

As etapas a seguir configuram os diferentes componentes de um balanceador de carga de rede de passagem interno começando pela verificação de integridade e pelo serviço de back-end, seguidos pelo front-end.

Console

Iniciar a configuração

  1. No console Trusted 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. Clique em Configurar.

Configuração básica

Na página Criar balanceador de carga de rede de passagem interna, digite as seguintes informações:

  • Nome do balanceador de carga: ilb-ipv6-only
  • Região: us-west1
  • Rede: lb-network-ipv6-only

Configuração de back-end

  1. Clique em Configuração de back-end.
  2. Na seção Novo back-end de Back-ends, selecione o Tipo de pilha de IP como IPv6 (pilha única).
  3. Em Grupo de instâncias, selecione o grupo de instâncias ig-a e clique em Concluído.
  4. Clique em Adicionar um back-end e repita esta etapa para adicionar ig-c.
  5. Na lista Verificação de integridade, selecione Criar verificação de integridade, insira as informações a seguir e clique em Salvar:
    • Nome: hc-http-80.
    • Escopo: regional.
    • Protocolo: HTTP.
    • Porta: 80.
    • Protocolo de proxy: NONE.
    • Caminho da solicitação: /.
  6. Verifique se uma marca de seleção azul aparece ao lado de Configuração de back-end.

Configuração de front-end

  1. Clique em Configuração de front-end. Na seção Novo IP e nova porta de front-end, faça o seguinte:
    1. Em Nome, insira fr-ilb-ipv6-only.
    2. Para gerenciar o tráfego IPv6, faça o seguinte:
      1. Em Versão IP, selecione IPv6. O servidor TCP IPv6 que você vai criar na seção a seguir se vincula ao VIP da regra de encaminhamento.
      2. Em Sub-rede, selecione lb-subnet-ipv6-only-internal. O intervalo de endereços IPv6 na regra de encaminhamento é sempre temporário.
      3. Em Portas, selecione Várias e, no campo Número da porta, insira 80.
      4. Clique em Concluído.
    3. Verifique se há uma marca de seleção azul ao lado de Configuração do front-end antes de continuar.

Analise a configuração

  1. Clique em Analisar e finalizar. Verifique todas as suas configurações.
  2. Se as configurações estiverem corretas, clique em Criar. Leva alguns minutos para que o balanceador de carga de rede de passagem interna seja criado.

gcloud

  1. Crie uma nova verificação de integridade HTTP regional para testar a conectividade HTTP com as VMs na porta 80.

    gcloud compute health-checks create http hc-http-80 \
        --region=us-west1 \
        --port=80
    
  2. Crie o serviço de back-end:

    gcloud compute backend-services create ilb-ipv6-only \
        --load-balancing-scheme=INTERNAL \
        --protocol=tcp \
        --region=us-west1 \
        --health-checks=hc-http-80 \
        --health-checks-region=us-west1
    
  3. Adicione os dois grupos de instâncias ao serviço de back-end:

    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-a \
        --instance-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-c \
        --instance-group-zone=us-west1-c
    
  4. Crie a regra de encaminhamento IPv6 com um endereço IPv6 temporário.

    gcloud compute forwarding-rules create fr-ilb-ipv6-only \
        --region=us-west1 \
        --load-balancing-scheme=INTERNAL \
        --subnet=lb-subnet-ipv6-only-internal \
        --ip-protocol=TCP \
        --ports=80 \
        --backend-service=ilb-ipv6-only \
        --backend-service-region=us-west1 \
        --ip-version=IPV6
    

Testar o balanceador de carga

Para testar o balanceador de carga, crie uma VM cliente na mesma região que o balanceador de carga e envie o tráfego do cliente para o balanceador de carga.

Criar uma VM cliente

Neste exemplo, criamos uma VM cliente (vm-client) na mesma região das VMs de back-end (servidor).

Console

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

    Acessar instâncias de VM

  2. Clique em Criar instância.

  3. Em Nome, insira vm-client.

  4. Em Região, selecione us-west1.

  5. Em Zona, selecione us-west1-a.

  6. Clique em Opções avançadas.

  7. Clique em Rede e configure os seguintes campos:

    1. Em Tags de rede, insira allow-ssh.
    2. Em Interfaces de rede, selecione o seguinte:
      • Rede: lb-network-ipv6-only
      • Sub-rede: lb-subnet-ipv6-only-internal
      • Tipo de pilha de IP: IPv6 (pilha única)
    3. Clique em Concluído.
  8. Clique em Criar.

gcloud

A VM cliente pode estar em qualquer zona na mesma região que o balanceador de carga. Neste exemplo, o cliente está na zona us-west1-a e usa a mesma sub-rede das VMs de back-end.

gcloud compute instances create vm-client \
    --zone=us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --stack-type=IPV6_ONLY \
    --tags=allow-ssh \
    --subnet=lb-subnet-ipv6-only-internal

Testar a conexão

Neste teste, o balanceador de carga é contatado por uma VM cliente separada, e não por uma VM de back-end do balanceador de carga. O comportamento esperado é que o tráfego seja distribuído entre as quatro VMs de back-end.

  1. Conecte-se à instância de VM do cliente usando SSH.

    gcloud compute ssh vm-client --zone=us-west1-a
    
  2. Descreva a regra de encaminhamento IPv6 fr-ilb-ipv6-only. Observe o IPV6_ADDRESS na descrição.

    gcloud compute forwarding-rules describe fr-ilb-ipv6-only \
        --region=us-west1
    
  3. Em clientes com conectividade IPv6, execute o seguinte comando:

    curl http://IPV6_ADDRESS:80
    

    Por exemplo, se o endereço IPv6 atribuído for [fd20:307:120c:2000:0:1:0:0/96]:80, o comando terá esta aparência:

    curl http://[fd20:307:120c:2000:0:1:0:0]:80
    

    A resposta pode ser assim:

    Page returned from: vm-a2
    

A seguir