Converta o balanceador de carga de rede de proxy para IPv6

Este documento mostra como converter recursos e back-ends do Network Load Balancer de proxy de apenas IPv4 (pilha única) para IPv4 e IPv6 (pilha dupla). A principal vantagem de usar o IPv6 é que é possível atribuir um conjunto muito maior de endereços IP ao seu equilibrador de carga. Pode configurar o equilibrador de carga para terminar o tráfego IPv6 de entrada e enviar este tráfego através de uma ligação IPv4 ou IPv6 para os seus back-ends, com base na sua preferência. Para mais informações, consulte os artigos IPv6 para balanceadores de carga de aplicações e balanceadores de carga de rede de proxy.

Neste documento, IPv4 apenas (pilha única) refere-se aos recursos que usam apenas endereços IPv4, e IPv4 e IPv6 (pilha dupla) refere-se aos recursos que usam endereços IPv4 e IPv6.

As instruções neste documento aplicam-se a balanceadores de carga de rede de proxy TCP e SSL.

Antes de começar

Tenha em atenção as seguintes condições antes de iniciar o processo de conversão:

  • Tem de estar a usar um dos seguintes tipos de equilibradores de carga de rede de proxy:

    • Balanceador de carga de rede de proxy externo global
    • Balanceador de carga de rede de proxy externo regional
    • Balanceador de carga de rede de proxy interno entre regiões
    • Balanceador de carga de rede de proxy interno regional

    Os equilibradores de carga de rede de proxy clássicos não suportam sub-redes nem back-ends de pilha dupla. Para mais informações acerca do suporte de IPv6, consulte o artigo IPv6 para Application Load Balancers e Network Load Balancers de proxy.

  • O seu balanceador de carga está a usar back-ends do grupo de instâncias de VMs ou grupos de pontos finais de rede (NEGs) zonais com pontos finais GCE_VM_IP_PORT. Outros tipos de back-end não têm suporte de pilha dupla.

Além disso, o processo de conversão difere com base no tipo de equilibrador de carga.

  • Para balanceadores de carga de rede de proxy externos globais, converte os back-ends em pilha dupla e cria uma regra de encaminhamento IPv6 que pode processar o tráfego IPv6 recebido.

  • Para balanceadores de carga de rede de proxy internos entre regiões, balanceadores de carga de rede de proxy externos regionais e balanceadores de carga de rede de proxy internos regionais, só converte os back-ends em pilha dupla. As regras de encaminhamento IPv6 não são suportadas para estes balanceadores de carga.

Para obter informações sobre como configurar balanceadores de carga de rede de proxy externos globais, consulte a seguinte documentação:

Identifique os recursos a converter

Tenha em atenção os nomes dos recursos aos quais o seu equilibrador de carga está associado. Tem de indicar estes nomes mais tarde.

  1. Para listar todas as sub-redes, use o comando gcloud compute networks subnets list:

    gcloud compute networks subnets list
    

    Tome nota do nome da sub-rede com a pilha apenas IPv4 para converter em pilha dupla. Este nome é referido mais tarde como SUBNET. A rede de VPC é referida mais tarde como NETWORK.

  2. Para listar todos os serviços de back-end, use o comando gcloud compute backend-services list:

    gcloud compute backend-services list
    

    Tenha em atenção o nome do serviço de back-end a converter em pilha dupla. Este nome é referido mais tarde como BACKEND_SERVICE.

  3. Se já tiver um balanceador de carga, para ver o tipo de pilha de IP dos seus back-ends, use o comando gcloud compute instances list:

    gcloud compute instances list \
        --format= \
        "table(
        name,
        zone.basename(),
        networkInterfaces[].stackType.notnull().list(),
        networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6,
        networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"
    
  4. Para apresentar uma lista de todas as instâncias de VM e modelos de instâncias, use o comando gcloud compute instances list e o comando gcloud compute instance-templates list:

    gcloud compute instances list
    
    gcloud compute instance-templates list
    

    Tome nota dos nomes das instâncias e dos modelos de instâncias a converter em pilha dupla. Este nome é referido mais tarde como VM_INSTANCE e INSTANCE_TEMPLATES.

  5. Para listar todos os grupos de instâncias, use o comando gcloud compute instance-groups list:

    gcloud compute instance-groups list
    

    Tenha em atenção o nome dos grupos de pontos finais de rede a converter em pilha dupla. Este nome é referido mais tarde como INSTANCE_GROUP.

  6. Para apresentar uma lista de todos os NEGs zonais, use o comando gcloud compute network-endpoint-groups list:

    gcloud compute network-endpoint-groups list
    

    Tenha em atenção o nome dos grupos de pontos finais de rede a converter em pilha dupla. Este nome é referido mais tarde como ZONAL_NEG.

  7. Para apresentar uma lista de todos os proxies SSL de destino, use o comando gcloud compute target-ssl-proxies list:

    gcloud compute target-ssl-proxies list
    

    Tenha em atenção o nome do proxy de destino associado ao seu equilibrador de carga. Este nome é referido mais tarde como TARGET_PROXY.

  8. Para apresentar uma lista de todos os proxies TCP de destino, use o comando gcloud compute target-tcp-proxies list:

    gcloud compute target-tcp-proxies list
    

    Tenha em atenção o nome do proxy de destino associado ao seu equilibrador de carga. Este nome é referido mais tarde como TARGET_PROXY.

Converta de back-ends de pilha única para back-ends de pilha dupla

Esta secção mostra como converter os recursos do equilibrador de carga e os back-ends que usam apenas endereços IPv4 (pilha única) em endereços IPv4 e IPv6 (pilha dupla).

Atualize a sub-rede

As sub-redes de pilha dupla só são suportadas em redes VPC de modo personalizado. As sub-redes de pilha dupla não são suportadas em redes VPC de modo automático nem em redes antigas. Embora as redes no modo automático possam ser úteis para a exploração inicial, as VPCs no modo personalizado são mais adequadas para a maioria dos ambientes de produção. Recomendamos que use VPCs no modo personalizado.

Para atualizar a VPC para a definição de pilha dupla, siga estes passos:

  1. Se estiver a usar uma rede VPC no modo automático, tem de converter primeiro a rede VPC no modo automático para o modo personalizado.

    Se estiver a usar a rede default, tem de convertê-la numa rede VPC no modo personalizado.

  2. Para ativar o IPv6, consulte o artigo Altere o tipo de pilha de uma sub-rede para pilha dupla.

    Certifique-se de que o tipo de acesso IPv6 da sub-rede está definido como External.

  3. Opcional: se quiser configurar intervalos de endereços IPv6 internos em sub-redes nesta rede, conclua estes passos:

    1. Para o intervalo IPv6 interno ULA da rede VPC, selecione Ativado.
    2. Para Atribuir intervalo IPv6 interno, selecione Automaticamente ou Manualmente.

      Se selecionar Manualmente, introduza um intervalo de /48 no intervalo de fd20::/20. Se o intervalo estiver em utilização, é-lhe pedido que faculte um intervalo diferente.

Atualize a sub-rede só de proxy

Se estiver a usar um equilibrador de carga baseado no Envoy, recomendamos que altere o tipo de pilha de sub-rede apenas de proxy para pilha dupla. Para obter informações sobre os balanceadores de carga que suportam sub-redes só de proxy, consulte o artigo Balanceadores de carga suportados.

Não pode atualizar o tipo de pilha de uma sub-rede só de proxy (purpose=REGIONAL_MANAGED_PROXY) da mesma forma que faria para uma sub-rede normal (com o subnets update command). Em alternativa, tem de criar uma sub-rede só de proxy de yedekleme com um tipo de pilha de pilha dupla e promovê-la para a função ativa. Isto deve-se ao facto de apenas uma sub-rede só de proxy poder estar ativa por região e por rede VPC.

Depois de atribuir um intervalo IPv6 interno na rede VPC, faça o seguinte para alterar o tipo de pilha da sub-rede apenas de proxy para pilha dupla.

Consola

  1. Crie uma sub-rede só de proxy de cópia de segurança na mesma região que a sub-rede só de proxy ativa, especificando o tipo de pilha de IP como pilha dupla.

    1. Na Google Cloud consola, aceda à página Redes VPC.
      Aceda à página Redes de VPC
    2. Clique no nome da rede VPC à qual quer adicionar uma sub-rede apenas de proxy.
    3. Clique em Adicionar sub-rede.
    4. Introduza um nome.
    5. Selecione uma região.
    6. Em Finalidade, selecione Proxy gerido regional.
    7. Para Função, selecione Cópia de segurança.
    8. Para o Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
    9. Introduza um intervalo de endereços IP.
    10. Clique em Adicionar.
  2. Crie ou modifique regras de firewall de permissão de entrada que se aplicam às suas VMs ou pontos finais de back-end para que incluam o intervalo de endereços IP principal da sub-rede só de proxy de cópia de segurança.

  3. Promova a sub-rede só de proxy alternativa para a função ativa. Esta ação também rebaixa a sub-rede só de proxy anteriormente ativa para a função de cópia de segurança:

    1. Na Google Cloud consola, aceda à página Redes VPC.
      Aceda à página Redes de VPC
    2. Clique no nome da rede VPC que quer modificar.
    3. Em Sub-redes apenas de proxy reservadas para o equilíbrio de carga, localize a sub-rede de cópia de segurança criada no passo anterior.
    4. Clique em Ativar.
    5. Especifique um Limite de tempo de esgotamento opcional.
    6. Clique em Ativar a sub-rede.
  4. Após o tempo limite de esgotamento da ligação ou quando tiver a certeza de que as ligações às VMs ou aos pontos finais de back-end não provêm de proxies na sub-rede só de proxy anteriormente ativa (agora de cópia de segurança), pode fazer o seguinte:

    • Modifique as regras de firewall de permissão de entrada que se aplicam às suas VMs ou endpoints de back-end para que não incluam o intervalo de endereços IP principal da sub-rede só de proxy anteriormente ativa (agora de cópia de segurança).
    • Elimine a sub-rede apenas de proxy anteriormente ativa (agora de cópia de segurança) para libertar os endereços IP que a sub-rede usou para o respetivo intervalo de endereços IP principal.

gcloud

Os passos seguintes pressupõem que já tem uma sub-rede ativa apenas de proxy.

  1. Crie uma sub-rede apenas de proxy na mesma região, especificando um tipo de pilha de pilha dupla (--stack-type=IPV4_IPV6), através do comando gcloud compute networks subnets create. Esta sub-rede está atribuída como alternativa com a flag --role=BACKUP.

    gcloud compute networks subnets create BACKUP_PROXY_ONLY_SUBNET_NAME \
      --purpose=REGIONAL_MANAGED_PROXY \
      --role=BACKUP \
      --region=REGION \
      --network=VPC_NETWORK_NAME \
      --range=BACKUP_PROXY_ONLY_SUBNET_RANGE \
      --stack-type=IPV4_IPV6
    

    Substitua o seguinte:

    • BACKUP_PROXY_ONLY_SUBNET_NAME: o nome da sub-rede só de proxy de cópia de segurança criada recentemente
    • REGION: a região da sub-rede apenas de proxy de backup criada recentemente. Esta deve ser a mesma região que a sub-rede apenas de proxy ativa atual.
    • VPC_NETWORK_NAME: a rede da sub-rede só de proxy de cópia de segurança recém-criada. Esta deve ser a mesma rede que a sub-rede apenas de proxy ativa atual.
    • VPC_NETWORK_NAME: o nome da rede da VPC
    • BACKUP_PROXY_ONLY_SUBNET_RANGE: o intervalo CIDR da sub-rede apenas de proxy de cópia de segurança criada recentemente
  2. Crie ou modifique regras de firewall de permissão de entrada que se apliquem às VMs ou aos pontos finais de back-end, de modo que incluam agora o intervalo de endereços IP principal da sub-rede só de proxy de backup. A regra de firewall já deve estar a aceitar ligações da sub-rede ativa.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges ACTIVE_PROXY_ONLY_SUBNET_RANGE,BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Substitua o seguinte:

    • PROXY_ONLY_SUBNET_FIREWALL_RULE: o nome da regra de firewall que permite que o tráfego da sub-rede só de proxy alcance as instâncias ou os pontos finais de back-end
    • ACTIVE_PROXY_ONLY_SUBNET_RANGE: o intervalo CIDR da sub-rede só de proxy ativa atual
    • BACKUP_PROXY_ONLY_SUBNET_RANGE: o intervalo CIDR da sub-rede apenas de proxy de cópia de segurança
  3. Atualize a nova sub-rede, definindo-a como a sub-rede só de proxy ACTIVE na região e aguarde que a sub-rede antiga seja esgotada. Esta ação também rebaixa a sub-rede só de proxy anteriormente ativa para a função de cópia de segurança.

    Para esgotar um intervalo de endereços IP imediatamente, defina o valor --drain-timeout como 0s. Esta ação termina imediatamente todas as ligações a proxies que tenham atribuído endereços na sub-rede que está a ser esgotada.

    gcloud compute networks subnets update BACKUP_PROXY_ONLY_SUBNET_NAME \
      --region=REGION \
      --role=ACTIVE \
      --drain-timeout=CONNECTION_DRAINING_TIMEOUT
    

    Substitua o seguinte:

    • BACKUP_PROXY_ONLY_SUBNET_NAME: o nome da sub-rede só de proxy de cópia de segurança criada recentemente
    • REGION: a região da sub-rede apenas de proxy de backup criada recentemente. Esta deve ser a mesma região que a sub-rede apenas de proxy ativa atual.
    • CONNECTION_DRAINING_TIMEOUT: a quantidade de tempo, em segundos, que o sistema usa para migrar as associações existentes dos proxies na sub-rede só de proxy anteriormente ativa. Google Cloud
  4. Monitorize o estado da drenagem através de um comando list ou describe. O estado da sub-rede é DRAINING enquanto está a ser esvaziada.

    gcloud compute networks subnets list
    

    Aguarde até que a descarga esteja concluída. Quando a sub-rede só de proxy antiga é esgotada, o estado da sub-rede é READY.

  5. Atualize a regra de firewall da sub-rede só de proxy para permitir apenas ligações da nova sub-rede.

    gcloud compute firewall-rules PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges BACKUP_PROXY_ONLY_SUBNET_RANGE
    
  6. Depois de se certificar de que as ligações às VMs ou aos pontos finais de back-end não provêm de proxies na sub-rede apenas de proxy anteriormente ativa (agora de cópia de segurança), pode eliminar a sub-rede antiga.

    gcloud compute networks subnets delete ACTIVE_PROXY_ONLY_SUBNET_NAME \
      --region=REGION
    

Atualize a instância de VM ou os modelos

Pode configurar endereços IPv6 numa instância de VM se a sub-rede à qual a VM está ligada tiver um intervalo IPv6 configurado. Apenas os seguintes backends podem suportar endereços IPv6:

  • Back-ends de grupos de instâncias: um ou mais back-ends de grupos de instâncias geridos, não geridos ou uma combinação de back-ends de grupos de instâncias geridos e não geridos.
  • NEGs zonais: um ou mais NEGs zonais do tipo GCE_VM_IP_PORT.

Atualize instâncias de VM

Não pode editar instâncias de VMs que façam parte de um grupo de instâncias gerido ou não gerido. Para atualizar as instâncias de VM para pilha dupla, siga estes passos:

  1. Elimine instâncias específicas de um grupo
  2. Crie uma VM de pilha dupla
  3. Crie instâncias com nomes específicos em MIGs

Atualize modelos de instâncias de VM

Não pode atualizar um modelo de instância existente. Se precisar de fazer alterações, pode criar outro modelo com propriedades semelhantes. Para atualizar os modelos de instâncias de VM para pilha dupla, siga estes passos:

Consola

  1. Na Google Cloud consola, aceda à página Modelos de instâncias.

    Aceda a Modelos de instâncias

    1. Clique no modelo de instância que quer copiar e atualizar.
    2. Clique em Criar semelhante.
    3. Expanda a secção Opções avançadas.
    4. Para etiquetas de rede, introduza allow-health-check-ipv6.
    5. Na secção Interfaces de rede, clique em Adicionar uma interface de rede.
    6. Na lista Rede, selecione a rede VPC no modo personalizado.
    7. Na lista Sub-rede, selecione SUBNET.
    8. Para o Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
    9. Clique em Criar.
  2. Iniciar uma atualização contínua básica no grupo de instâncias gerido MIG associado ao equilibrador de carga.

Atualize o NEG zonal

Não é possível editar os pontos finais NEG zonais. Tem de eliminar os pontos finais IPv4 e criar um novo ponto final de pilha dupla com endereços IPv4 e IPv6.

Para configurar um NEG zonal (com pontos finais do tipo GCE_VM_IP_PORT) na região REGION_A, primeiro crie as VMs na zona GCP_NEG_ZONE. Em seguida, adicione os pontos finais de rede da VM ao NEG zonal.

Crie VMs

Consola

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

    Aceder às instâncias de VM

  2. Clique em Criar instância.

  3. Defina o Nome como vm-a1.

  4. Para a Região, escolha REGION_A e escolha qualquer valor para o campo Zona. Esta zona é denominada GCP_NEG_ZONE neste procedimento.

  5. Na secção Disco de arranque, certifique-se de que a opção Debian GNU/Linux 12 (bookworm) está selecionada para as opções do disco de arranque. Clique em Escolher para alterar a imagem, se necessário.

  6. Expanda a secção Opções avançadas e faça as seguintes alterações:

    • Expanda a secção Rede.
    • No campo Etiquetas de rede, introduza allow-health-check.
    • Na secção Interfaces de rede, faça as seguintes alterações:
      • Rede: NETWORK
      • Subnet: SUBNET
      • Tipo de pilha de IP: IPv4 e IPv6 (dupla pilha)
    • Clique em Concluído.
    • Clique em Gestão. No campo Script de arranque, copie e cole o seguinte conteúdo do 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
      
  7. Clique em Criar.

  8. Repita os passos seguintes para criar uma segunda VM com a seguinte combinação de nome e zona:

    • Nome: vm-a2, zona: GCP_NEG_ZONE

gcloud

Crie as VMs executando o seguinte comando duas vezes, usando estas combinações para o nome da VM e a respetiva zona. Os conteúdos do script são idênticos para ambas as VMs.

  • VM_NAME de vm-a1 e qualquer zona GCP_NEG_ZONE à sua escolha.
  • VM_NAME de vm-a2 e a mesma zona GCP_NEG_ZONE.

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --stack-type=IPV4_IPV6 \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check \
        --subnet=SUBNET \
        --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'
    

Adicione pontos finais ao NEG zonal

Consola

Para adicionar pontos finais ao NEG zonal:

  1. Na Google Cloud consola, aceda à página Grupos de pontos finais de rede.

    Aceda a Grupos de pontos finais da rede

  2. Na lista Nome, clique no nome do grupo de pontos finais da rede (ZONAL_NEG). É apresentada a página Detalhes do grupo de pontos finais da rede.

  3. Na secção Pontos finais de rede neste grupo, selecione o ponto final do NEG criado anteriormente. Clique em Remover ponto final.

  4. Na secção Pontos finais de rede neste grupo, clique em Adicionar ponto final de rede.

  5. Selecione a instância de VM.

  6. Na secção Interface de rede, é apresentado o nome, a zona e a sub-rede da VM.

  7. No campo Endereço IPv4, introduza o endereço IPv4 do novo ponto final de rede.

  8. No campo Endereço IPv6, introduza o endereço IPv6 do novo ponto final de rede.

  9. Selecione o Tipo de porta.

    1. Se selecionar Predefinição, o ponto final usa a porta predefinida 80 para todos os pontos finais no grupo de pontos finais da rede. Isto é suficiente para o nosso exemplo porque o servidor Apache está a processar pedidos na porta 80.
    2. Se selecionar Personalizado, introduza o Número da porta do ponto final a usar.
  10. Para adicionar mais pontos finais, clique em Adicionar ponto final de rede e repita os passos anteriores.

  11. Depois de adicionar todos os pontos finais, clique em Criar.

gcloud

  1. Adicione pontos finais (GCE_VM_IP_PORT pontos finais) a ZONAL_NEG.

    gcloud compute network-endpoint-groups update ZONAL_NEG \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80' \
        --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80'
    

Substitua o seguinte:

IPv4_ADDRESS: Endereço IPv4 do ponto final da rede. O IPv4 tem de pertencer a uma VM no Compute Engine (o IP principal ou como parte de um intervalo de IPs com alias). Se o endereço IP não for especificado, é usado o endereço IP principal da instância de VM no grupo de pontos finais da rede ao qual o grupo de pontos finais da rede pertence.

IPv6_ADDRESS: Endereço IPv6 do ponto final da rede. O endereço IPv6 tem de pertencer a uma instância de VM na rede à qual o grupo de pontos finais da rede pertence (endereço IPv6 externo).

Crie uma regra de firewall para sondas de verificação de funcionamento de IPv6

Tem de criar uma regra de firewall para permitir verificações de funcionamento a partir dos intervalos de IP dos sistemas de sondagem. Google Cloud Para mais informações, consulte os intervalos de IPs de sondagem.

Certifique-se de que a regra de entrada é aplicável às instâncias com balanceamento de carga e que permite o tráfego dos Google Cloud sistemas de verificação de funcionamento. Este exemplo usa a etiqueta de destino allow-health-check-ipv6 para identificar as instâncias de VM às quais se aplica.

Sem esta regra de firewall, a regra de negação predefinida de entrada bloqueia o tráfego IPv6 de entrada para as instâncias de back-end.

Consola

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

    Aceder a Políticas de firewall

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

    • Nome: fw-allow-lb-access-ipv6
    • Rede: NETWORK
    • Prioridade: 1000
    • Direção do trânsito: entrada
    • Objetivos: etiquetas de destino especificadas
    • Etiquetas de segmentação: allow-health-check-ipv6
    • Filtro de origem: intervalos IPv6
    • Intervalos IPv6 de origem:

      • Para o balanceador de carga de aplicações externo global e o balanceador de carga de rede de proxy externo global, introduza 2600:2d00:1:b029::/64,2600:2d00:1:1::/64

      • Para o balanceador de carga de aplicações interno entre regiões, o balanceador de carga de aplicações externo regional, o balanceador de carga de aplicações interno regional, o balanceador de carga de rede de proxy interno entre regiões, o balanceador de carga de rede de proxy externo regional e o balanceador de carga de rede de proxy interno regional, introduza 2600:2d00:1:b029::/64

    • Protocolos e portas: Permitir tudo

  3. Clique em Criar.

gcloud

  1. Crie a regra de firewall fw-allow-lb-access-ipv6 para permitir a comunicação com a sub-rede.

    Para o balanceador de carga de aplicações externo global e o balanceador de carga de rede de proxy externo global, use o seguinte comando:

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

    Para o balanceador de carga de aplicações interno entre regiões, o balanceador de carga de aplicações externo regional, o balanceador de carga de aplicações interno regional, o balanceador de carga de rede de proxy interno entre regiões, o balanceador de carga de rede de proxy externo regional e o balanceador de carga de rede de proxy interno regional, use o seguinte comando:

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

Crie uma regra de firewall para a sub-rede só de proxy

Se estiver a usar um Network Load Balancer de proxy externo regional ou um Network Load Balancer de proxy interno, tem de atualizar a regra de firewall de entrada fw-allow-lb-access-ipv6 para permitir o tráfego da sub-rede só de proxy para os back-ends.

Para obter o intervalo de endereços IPv6 da sub-rede só de proxy, execute o seguinte comando:

gcloud compute networks subnets describe PROXY_ONLY_SUBNET \
    --region=REGION \
    --format="value(internalIpv6Prefix)"

Tenha em atenção o intervalo de endereços IPv6 internos. Este intervalo é posteriormente referido como IPV6_PROXY_ONLY_SUBNET_RANGE.

Para atualizar a regra de firewall fw-allow-lb-access-ipv6 para a sub-rede só de proxy, faça o seguinte:

Consola

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

    Aceder a Políticas de firewall

  2. No painel Regras de firewall de VPC, clique em fw-allow-lb-access-ipv6.

    • Intervalos IPv6 de origem: 2600:2d00:1:b029::/64, IPV6_PROXY_ONLY_SUBNET_RANGE
  3. Clique em Guardar.

gcloud

  1. Atualize a regra de firewall fw-allow-lb-access-ipv6 para permitir a comunicação com a sub-rede só de proxy:

    gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,IPV6_PROXY_ONLY_SUBNET_RANGE
    

Atualize o serviço de back-end e crie uma regra de encaminhamento IPv6

Esta secção fornece instruções para atualizar o serviço de back-end com back-ends de pilha dupla e criar uma regra de encaminhamento IPv6.

Tenha em atenção que a regra de encaminhamento IPv6 só pode ser criada para balanceadores de carga de rede de proxy externos globais. As regras de encaminhamento IPv6 não são suportadas para balanceadores de carga de rede de proxy internos entre regiões, balanceadores de carga de rede de proxy externos regionais e balanceadores de carga de rede de proxy internos regionais.

Consola

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

    Aceda a Balanceamento de carga

  2. Clique no nome do balanceador de carga.

  3. Clique em Edit.

Configure o serviço de back-end para IPv6

  1. Clique em Configuração de back-end.
  2. Para Tipo de back-end, selecione Grupo de pontos finais da rede zonal.
  3. Na lista Política de seleção de endereços IP, selecione Preferir IPv6.
  4. No campo Protocolo:
    • Para o proxy TCP, selecione TCP.
    • Para o proxy SSL, selecione SSL.
  5. Para NEGs zonais:
    1. Na secção Back-ends, clique em Adicionar um back-end.
    2. No painel Novo back-end, faça o seguinte:
      • Na lista grupo de pontos finais de rede, selecione ZONAL_NEG.
      • No campo Ligações máximas, introduza 10.
  6. Para grupos de instâncias: se já atualizou a instância de VM ou os modelos para duplo stack, não é necessário atualizá-los.
  7. Clique em Concluído.
  8. Na lista Verificação de funcionamento, selecione uma verificação de funcionamento de HTTP.

Configure a regra de encaminhamento IPv6

As regras de encaminhamento IPv6 não são suportadas para balanceadores de carga de rede de proxy internos entre regiões, balanceadores de carga de rede de proxy externos regionais e balanceadores de carga de rede de proxy internos regionais.

  1. Clique em Configuração do front-end.
  2. Clique em Adicionar IP e porta do front-end.
  3. No campo Nome, introduza um nome para a regra de encaminhamento.
  4. No campo Protocolo:
    • Para o proxy TCP, selecione TCP.
    • Para o proxy SSL, selecione SSL.
  5. Defina a versão do IP como IPv6.
  6. Para o proxy SSL, na lista Certificados, selecione um certificado.
  7. Clique em Concluído.
  8. Clique em Atualizar.

gcloud

  1. Adicione os NEGs zonais de pilha dupla como back-end ao serviço de back-end.

    Global

    Para o Network Load Balancer de proxy externo global, use o comando:

     gcloud compute backend-services add-backend BACKEND_SERVICE \
         --network-endpoint-group=ZONAL_NEG \
         --max-rate-per-endpoint=10 \
         --global
    

    entre regiões

    Para o Network Load Balancer de proxy interno entre regiões, use o comando:

     gcloud compute backend-services add-backend BACKEND_SERVICE \
         --network-endpoint-group=ZONAL_NEG \
         --max-rate-per-endpoint=10 \
         --global
    

    regional

    Para o balanceador de carga de rede de proxy externo regional e o balanceador de carga de rede de proxy interno regional, use o comando:

     gcloud compute backend-services add-backend BACKEND_SERVICE \
         --network-endpoint-group=ZONAL_NEG \
         --max-rate-per-endpoint=10 \
         --region=REGION
    
  2. Adicione o grupo de instâncias de pilha dupla como back-end ao serviço de back-end. Uma vez que já atualizou a instância ou os modelos de VM para a pilha dupla, não é necessária mais nenhuma ação.

  3. Apenas para balanceadores de carga de rede de proxy externos globais. Para criar a regra de encaminhamento IPv6 para o balanceador de carga de rede de proxy externo global com um proxy SSL de destino, use o seguinte comando:

    gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --address=lb-ipv6-1 \
       --global \
       --target-ssl-proxy=TARGET_PROXY \
       --ports=80
    

    Para criar a regra de encaminhamento IPv6 para o balanceador de carga de rede de proxy externo global com um proxy TCP de destino, use o seguinte comando:

    gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --global \
       --target-tcp-proxy=TARGET_PROXY \
       --ports=80
    

Configure a política de seleção de endereços IP

Este passo é opcional. Depois de converter os recursos e os back-ends para duplo stack, pode usar a política de seleção de endereços IP para especificar o tipo de tráfego enviado do serviço de back-end para os seus back-ends.

Substitua IP_ADDRESS_SELECTION_POLICY por qualquer um dos seguintes valores:

Política de seleção de endereços IP Descrição
Apenas IPv4 Envie apenas tráfego IPv4 para os back-ends do serviço de back-end, independentemente do tráfego do cliente para o GFE. As verificações de funcionamento IPv4 são usadas para verificar o estado dos back-ends.
Preferir IPv6

Priorizar a ligação IPv6 do back-end em relação à ligação IPv4 (desde que exista um back-end em bom estado com endereços IPv6).

As verificações de funcionamento monitorizam periodicamente as ligações IPv6 e IPv4 dos back-ends. O GFE tenta primeiro a ligação IPv6. Se a ligação IPv6 estiver interrompida ou for lenta, o GFE usa o happy eyeballs para voltar atrás e estabelecer ligação ao IPv4.

Mesmo que uma das ligações IPv6 ou IPv4 não esteja em bom estado, o back-end continua a ser tratado como estando em bom estado, e o GFE pode tentar ambas as ligações, sendo que o Happy Eyeballs acaba por selecionar qual usar.

Apenas IPv6

Envie apenas tráfego IPv6 para os back-ends do serviço de back-end, independentemente do tráfego do cliente para o proxy. As verificações de funcionamento IPv6 são usadas apenas para verificar o estado dos back-ends.

Não existe validação para verificar se o tipo de tráfego de back-end corresponde à política de seleção de endereços IP. Por exemplo, se tiver back-ends apenas IPv4 e selecionar Only IPv6 como a política de seleção de endereços IP, a configuração resulta em back-ends não íntegros porque o tráfego não consegue alcançar esses back-ends e o código de resposta HTTP 503 é devolvido aos clientes.

Consola

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

    Aceda a Balanceamento de carga

  2. Clique no nome do balanceador de carga.

  3. Clique em Edit.

  4. Clique em Configuração de back-end.

  5. No campo Serviço de back-end, selecione BACKEND_SERVICE.

  6. O Tipo de back-end tem de ser Grupo de pontos finais de rede zonal ou Grupo de instâncias.

  7. Na lista Política de seleção de endereços IP, selecione IP_ADDRESS_SELECTION_POLICY.

  8. Clique em Concluído.

gcloud

Atualize a política de seleção de endereços IP para o serviço de back-end:

Global

Para o Network Load Balancer de proxy externo global, use o comando:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=SSL | TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

entre regiões

Para o Network Load Balancer de proxy interno entre regiões, use o comando:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

regional

Para o Network Load Balancer de proxy externo regional, use o comando:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

Para o Network Load Balancer de proxy interno regional, use o comando:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=TCP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

Teste o balanceador de carga

Tem de validar se todos os recursos necessários estão atualizados para a pilha dupla. Depois de atualizar todos os recursos, o tráfego tem de fluir automaticamente para os back-ends. Pode verificar os registos e confirmar que a conversão está concluída.

Teste o balanceador de carga para confirmar que a conversão é bem-sucedida e que o tráfego de entrada está a chegar aos back-ends conforme esperado.

Procure os endereços IP do balanceador de carga

Consola

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

    Aceda a Balanceamento de carga

  2. Clique no nome do balanceador de carga.

  3. Na secção Frontend, são apresentados dois endereços IP do equilibrador de carga. Neste procedimento, o endereço IPv4 é denominado IP_ADDRESS_IPV4 e o endereço IPv6 é denominado IP_ADDRESS_IPV6.

  4. Na secção Back-ends, quando a política de seleção de endereços IP é Prefer IPv6, são apresentados dois estados de verificação de estado para os back-ends.

Envie tráfego para o balanceador de carga

Neste exemplo, os pedidos do comando curl são distribuídos aleatoriamente pelos servidores de back-end.

Para balanceadores de carga externos

  1. Repita os seguintes comandos algumas vezes até ver que todas as VMs de back-end estão a responder:

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    Por exemplo, se o endereço IPv6 for [fd20:1db0:b882:802:0:46:0:0]:80, o comando tem um aspeto semelhante ao seguinte:

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

Para balanceadores de carga internos

  1. Crie uma VM de cliente de teste na mesma rede VPC e região que o balanceador de carga. Não tem de estar na mesma sub-rede ou zona.

    gcloud compute instances create client-vm \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh \
        --subnet=SUBNET
    
  2. Use o SSH para estabelecer ligação à instância do cliente.

    gcloud compute ssh client-vm \
       --zone=ZONE
    
  3. Repita os seguintes comandos algumas vezes até ver que todas as VMs de back-end estão a responder:

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    Por exemplo, se o endereço IPv6 for [fd20:1db0:b882:802:0:46:0:0]:80, o comando tem um aspeto semelhante ao seguinte:

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

Verifique os registos

Cada entrada de registo captura o endereço IPv4 e IPv6 de destino para o back-end. Uma vez que suportamos a pilha dupla, é importante observar o endereço IP usado pelo back-end.

Pode verificar se o tráfego está a ser encaminhado para IPv6 ou a reverter para IPv4 consultando os registos.

Os registos contêm o endereço backend_ip associado ao back-end. Ao examinar os registos e comparar o endereço IPv4 ou IPv6 de destino do backend_ip, pode confirmar que endereço IP é usado.