Converter o balanceador de carga de aplicativo em IPv6

Neste documento, mostramos como converter um balanceador de carga de aplicativo recursos e back-ends de somente IPv4 (pilha única) para IPv4 e IPv6 (pilha dupla). Neste documento, somente IPv4 (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.

Vantagens

Há vários benefícios em converter seus balanceadores de carga para pilha dupla:

  • A principal vantagem do IPv6 é que um conjunto muito maior de endereços IP pode ser alocado.

  • Muitos clientes que já usam balanceadores de carga somente IPv4 podem converter de recursos somente IPv4 para recursos IPv4 e IPv6 (pilha dupla) usando métodos específicos da nuvem.

  • É possível configurar o balanceador de carga para encerrar o tráfego IPv6 de entrada e proxy desse tráfego por uma conexão IPv4 ou IPv6 para seus back-ends, com base na sua preferência. Para mais informações, consulte IPv6:

Limitações

  • Não é possível atualizar apenas o tipo de pilha de IP da sub-rede de IPv4 e IPv6 (pilha dupla) para IPv4.

  • Quando você configura a política de seleção de endereço IP no serviço de back-end como "Somente IPv6", você ainda pode configurar back-ends somente para IPv4. No entanto, isso resulta em back-ends não íntegros, os clientes recebem o código de resposta 503 e o tráfego não flui upstream. Os registros mostram failed_to_pick_backend no Mensagens de falha de HTTP statusDetails.

  • É possível configurar a política de seleção de endereço IP do serviço de back-end para "Somente IPv6", mas o tipo de pilha de IP dos back-ends é sempre IPv4 e IPv6 (pilha dupla).

  • Apenas back-ends de grupos de instâncias de VM e grupos de endpoints de rede (NEGs) zonais com endpoints GCE_VM_IP_PORT oferecem suporte a IPv4 e IPv6 (pilha dupla).

  • Balanceadores de carga de aplicativo internos entre regiões, balanceadores de carga de aplicativo externos regionais e Os balanceadores de carga de aplicativo internos regionais não dão suporte a regras de encaminhamento com IPv6. Entrada O tráfego IPv4 é encaminhado por proxy por uma conexão IPv4 ou IPv6 para back-ends de pilha dupla.

  • Os balanceadores de carga de aplicativo clássicos não são compatíveis com back-ends de pilha dupla. O balanceador de carga encerra o tráfego IPv6 de entrada recebido de clientes IPv6 e o proxy desse tráfego pela conexão IPv4 para seus back-ends IPv4.

Antes de começar

É preciso que você já tenha configurado um balanceador de carga de aplicativo com uma pilha somente IPv4 com um grupo de instâncias ou back-ends de NEG por zona.

Para mais informações sobre como configurar balanceadores de carga de aplicativo externos globais, consulte documentação a seguir:

Para mais informações sobre como configurar balanceadores de carga de aplicativo externos regionais, consulte documentação a seguir:

Para mais informações sobre como configurar balanceadores de carga de aplicativo internos entre regiões, consulte documentação a seguir:

Para mais informações sobre como configurar balanceadores de carga de aplicativo internos regionais, consulte a documentação a seguir:

Identificar os recursos a serem convertidos

Anote os nomes dos recursos aos quais seu balanceador de carga está associado. Você precisará fornecer esses nomes mais tarde.

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

    gcloud compute networks subnets list
    

    Anote o nome da sub-rede com a pilha somente IPv4 a ser migrada para a pilha dupla. Depois, esse nome será chamado de SUBNET. A rede VPC será chamada posteriormente de NETWORK.

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

    gcloud beta compute backend-services list
    

    Anote o nome do serviço de back-end que será convertido para a pilha dupla. Depois, esse nome será chamado de BACKEND_SERVICE.

  3. Para listar todos os mapas de URL, use os Comando gcloud beta compute url-maps list:

    gcloud beta compute url-maps list
    

    Anote o nome do mapa de URL associado ao seu balanceador de carga. Depois, esse nome será chamado de URL_MAP.

  4. Se você já tem um balanceador de carga, para consultar 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)"
    
  5. Para listar todas as instâncias de VM e modelos de instância, use o comando gcloud compute instances list e o comando gcloud compute instance-templates list:

    gcloud compute instances list
    
    gcloud compute instance-templates list
    

    Anote os nomes das instâncias e modelos de instâncias a serem convertidos para pilha dupla. Depois, esse nome será chamado de VM_INSTANCE e INSTANCE_TEMPLATES.

  6. Para listar todos os grupos de endpoints de rede (NEGs) zonais, use o Comando gcloud compute network-endpoint-groups list:

    gcloud compute network-endpoint-groups list
    

    Anote os nomes dos back-ends de NEG por zona para converter para a pilha dupla. Depois, esse nome será chamado de ZONAL_NEG.

  7. Para listar todos os proxies de destino, use o comando gcloud compute target-http-proxies list:

    gcloud compute target-http-proxies list
    

    Anote o nome do proxy de destino associado ao balanceador de carga. Depois, esse nome será chamado de TARGET_PROXY.

Converter back-ends de pilha única para pilha dupla

Esta seção mostra como converter seus recursos de balanceador de carga e back-ends usando apenas endereços IPv4 (pilha única) para endereços IPv4 e IPv6 (pilha dupla).

Atualizar a sub-rede

As sub-redes de pilha dupla são compatíveis apenas com redes VPC de modo personalizado. Sub-redes de pilha dupla não são compatíveis com redes VPC de modo automático ou redes legadas. As redes de modo automático são mais úteis na exploração inicial. Já as VPCs de modo personalizado são mais adequadas para a maioria dos ambientes de produção. Recomendamos que você use VPCs no modo personalizado.

Para atualizar a VPC para a configuração de pilha dupla, siga estas etapas:

  1. Se você estiver usando uma rede VPC de modo automático, primeiro será necessário converter a rede VPC de modo automático para o modo personalizado.

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

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

    1. Em Intervalo de IPv6 interno de ULA da rede VPC, selecione Ativado.
    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 estiver em uso, você precisará fornecer um intervalo diferente.

Atualizar a sub-rede somente proxy

Se você estiver usando um balanceador de carga baseado no Envoy, recomendamos mude o tipo de pilha de sub-rede somente proxy para pilha dupla. Para informações sobre balanceadores de carga compatíveis com sub-redes somente proxy, veja Balanceadores de carga compatíveis.

Para mudar o tipo de pilha da sub-rede somente proxy para pilha dupla, faça o seguinte:

Console

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

    Acessar redes VPC

  2. Clique no nome de uma rede para ver a página Detalhes da rede VPC.

  3. Clique na guia Sub-redes.

  4. Na seção Sub-redes somente proxy reservadas para balanceamento de carga, clique em o nome da sub-rede somente proxy que você quer modificar.

  5. Na página de detalhes da sub-rede, clique em Editar.

  6. Em Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla). O tipo de acesso IPv6 é Interno.

  7. Clique em Salvar.

gcloud

Use o comando subnets update.

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=REGION

Substitua:

  • PROXY_ONLY_SUBNET: o nome da sub-rede somente proxy.
  • REGION: a região da sub-rede.
  • IPv6_ACCESS_TYPE: o tipo de acesso IPv6 da sub-rede é INTERNAL.

Atualizar a instância ou os modelos de VM

É possível configurar endereços IPv6 em uma instância de VM se a sub-rede à qual a VM está conectada tiver um intervalo IPv6 configurado. Somente os seguintes back-ends dão suporte a endereços IPv6:

  • Os back-ends do grupo de instâncias: um ou mais back-ends gerenciados, não gerenciados ou uma combinação de back-ends do grupo gerenciado ou não gerenciado de instâncias.
  • Os NEGs por zona: um ou mais NEGs GCE_VM_IP_PORT tipo zonal

Atualizar instâncias de VM

Não é possível editar instâncias de VM que fazem parte de um grupo gerenciado ou não gerenciado de instâncias. Para atualizar as instâncias de VM para pilha dupla, siga estas etapas:

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

Atualizar modelos de instâncias de VM

Não é possível atualizar um modelo de instância existente. Se você precisar fazer alterações, crie outro modelo com propriedades semelhantes. Para atualizar os modelos de instância de VM para pilha dupla, siga estas etapas:

Console

  1. No Console do Google Cloud, acesse a página Modelos de instância.

    Acesse "Modelos de instância"

    1. Clique no modelo da instância que você quer copiar e atualizar.
    2. Clique em Criar semelhante.
    3. Expanda a seção Opções avançadas.
    4. Em Tags de rede, insira allow-health-check-ipv6.
    5. Na seção Interfaces de rede, clique em Adicionar uma interface de rede.
    6. Na lista Rede, selecione a rede VPC de modo personalizado.
    7. Na lista Sub-rede, selecione SUBNET.
    8. Em Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
    9. Clique em Criar.
  2. Como iniciar uma atualização gradual básica no grupo gerenciado de instâncias MIG associado ao balanceador de carga.

Atualizar o NEG zonal

Não é possível editar endpoints de NEG zonal. Exclua os endpoints IPv4 e crie um novo endpoint de pilha dupla com os endereços IPv4 e IPv6.

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

Criar VMs

Console

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

    Acessar instâncias de VM

  2. Clique em Criar instância.

  3. Defina o Nome como vm-a1.

  4. Em Região, selecione REGION_A e escolha qualquer valor para o campo Zona. Ela será chamada de GCP_NEG_ZONE neste procedimento.

  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. Clique em Escolher para alterar a imagem se necessário.

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

    • Expanda a seção Rede.
    • No campo Tags de rede, insira allow-health-check.
    • Na seção Interfaces de rede, faça as seguintes alterações:
      • Rede: NETWORK
      • Sub-rede: SUBNET
      • Tipo de pilha de IP: IPv4 e IPv6 (pilha dupla)
    • Clique em Concluído.
    • Clique em Gerenciamento. No campo Script de inicialização, copie e cole o conteúdo do script a seguir.

      #! /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 as etapas a seguir para criar uma segunda VM usando a combinação de nome e zona a seguir:

    • Nome: vm-a2, zona: GCP_NEG_ZONE

gcloud

Crie as VMs executando o comando a seguir duas vezes, usando essas combinações para o nome da VM e a zona dela. O conteúdo do script é idêntico para as duas VMs.

  • VM_NAME de vm-a1 e qualquer zona GCP_NEG_ZONE que você preferir.
  • 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'
    

Adicionar endpoints ao NEG zonal

Console

Para adicionar endpoints ao NEG zonal:

  1. No console do Google Cloud, acesse a página Grupos de endpoints da rede.

    Acessar grupos de endpoints da rede

  2. Na lista Nome, clique no nome do grupo de endpoints de rede (ZONAL_NEG). Você verá a página Detalhes do grupo de endpoints de rede.

  3. Na seção Endpoints de rede neste grupo, selecione o endpoint de NEG criado anteriormente. Clique em Remover endpoint.

  4. Na seção Endpoints da rede neste grupo, clique em Adicionar endpoint da rede.

  5. Selecione a instância de VM.

  6. Na seção Interface de rede, são exibidos o nome, a zona e a sub-rede da VM.

  7. No campo Endereço IPv4, insira o endereço IPv4 do novo endpoint da rede.

  8. No campo Endereço IPv6, insira o endereço IPv6 do novo endpoint da rede.

  9. Selecione o Tipo de porta.

    1. Se você selecionar Padrão, o endpoint usará a porta padrão 80 para todos os endpoints no grupo de endpoints da rede. Isso é suficiente para nosso exemplo, porque o servidor Apache está atendendo solicitações na porta 80.
    2. Se você selecionar Personalizado, insira o Número da porta do endpoint que será usado.
  10. Para adicionar mais endpoints, clique em Adicionar endpoint da rede e repita as etapas anteriores.

  11. Depois de adicionar todos os endpoints, clique em Criar.

gcloud

  1. Adicione endpoints (GCE_VM_IP_PORT endpoints) 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:

IPv4_ADDRESS: endereço IPv4 do endpoint da rede. O IPv4 precisa pertencer a uma VM no Compute Engine (o IP principal ou como parte de um intervalo de IP com alias). Se o endereço IP não for especificado, será usado o endereço IP principal da instância de VM na rede a que o grupo de endpoints de rede pertence.

IPv6_ADDRESS: endereço IPv6 do endpoint da rede. O endereço IPv6 precisa pertencer a uma instância de VM na rede à qual o grupo de endpoints de rede pertence (endereço IPv6 externo).

Criar uma regra de firewall de verificação de integridade IPv6

Verifique se você tem uma regra de entrada que seja aplicável às instâncias com balanceamento de carga e que permita o tráfego dos sistemas de verificação de integridade do Google Cloud (2600:2d00:1:b029::/64). Neste exemplo, usamos a tag de destino allow-health-check-ipv6 para identificar as instâncias de VM às quais ele se aplica.

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

Console

  1. No Console do Google 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
    • Rede: NETWORK
    • Prioridade: 1000
    • Direção do tráfego: entrada
    • Destinos: tags de destino especificadas
    • Tags de meta: allow-health-check-ipv6
    • Filtro de origem: intervalos IPv6
    • Intervalos IPv4 de origem:

      • Para o balanceador de carga de aplicativo externo global e o balanceador de carga de rede de proxy externo global, insira 2600:2d00:1:b029::/64,2600:2d00:1:1::/64

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

    • Protocolos e portas: permitir todos

  3. Clique em Criar.

gcloud

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

    Para o balanceador de carga de aplicativo 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 aplicativo interno entre regiões, o balanceador de carga de aplicativo externo regional, balanceador de carga de aplicativo interno regional, balanceador de carga de rede de proxy interno entre regiões, balanceador de carga de rede de proxy externo regional e balanceador de carga de rede de proxy interno regional, use este 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
    

Adicionar uma regra de firewall de sub-rede somente proxy

Se você estiver usando um balanceador de carga baseado no Envoy, atualize a entrada regra de firewall fw-allow-lb-access-ipv6 para permitir tráfego apenas de proxy aos back-ends.

Para receber o internalIpv6Prefix da sub-rede somente proxy, execute o seguinte comando:

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

Anote o endereço IPv6 interno, ele será citado mais adiante como IPv6_PROXY:

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

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acesse as 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
  3. Clique em Salvar.

gcloud

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

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

Criar um novo serviço de back-end e regra de encaminhamento para IPv6

Esta seção descreve o procedimento para criar um novo serviço de back-end e uma regra de encaminhamento de chamadas para IPv6.

BACKEND_SERVICE e BACKEND_SERVICE_IPV6 são capazes de exibir o tráfego. Para evitar a interrupção do tráfego, crie um novo serviço de back-end com o endereço IP política de seleção definida como Prefer IPv6. Depois de criar o novo serviço de back-end, será possível encaminhe o tráfego para o novo serviço de back-end IPv6.

A regra de encaminhamento com IPv6 só pode ser criada para balanceadores de carga de aplicativo externos globais. A regra de encaminhamento com IPv6 não tem suporte para balanceadores de carga de aplicativo internos entre regiões. balanceadores de carga de aplicativo externos regionais e balanceadores de carga de aplicativo regionais internos.

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.

  3. Clique em Editar.

Configurar o serviço de back-end.

  1. Clique em Configuração de back-end.
  2. No campo Serviço de back-end, selecione Criar um serviço de back-end.
  3. Defina o Nome como BACKEND_SERVICE_IPV6.
  4. Para o tipo de back-end, selecione Grupo de endpoints da rede na Internet.
  5. Na lista Política de seleção de endereço IP, selecione Preferir IPv6.
  6. No campo Protocolo, selecione HTTP.
  7. No painel Novo back-end, faça o seguinte:
    1. Na lista grupo de endpoints de rede, selecione ZONAL_NEG.
    2. Em RPS máximo, insira 10.
  8. Na lista Verificação de integridade, selecione uma verificação de integridade HTTP.
  9. Clique em Concluído.

Configure o front-end IPv6:

A regra de encaminhamento com IPv6 não tem suporte para balanceadores de carga de aplicativo internos entre regiões. balanceadores de carga de aplicativo externos regionais e balanceadores de carga de aplicativo regionais internos.

  1. Clique em Configuração de front-end.
  2. Clique em Adicionar IP e porta de front-end.
  3. No campo Nome, digite um nome para a regra de encaminhamento.
  4. No campo Protocolo, selecione HTTP.
  5. Defina Versão do IP como IPv6.
  6. Clique em Concluído.
  7. Clique em Atualizar.

Configurar regras de roteamento

  1. Clique em Regras de roteamento.
  2. Clique em Regra avançada de host e caminho.
  3. Clique em Atualizar.

gcloud

  1. Crie uma verificação de integridade:

    gcloud compute health-checks create http HEALTH_CHECK \
       --port 80
    
  2. Crie o serviço de back-end do tráfego HTTP:

    global

    Para um balanceador de carga de aplicativo externo global, use o comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --global
    

    Para o balanceador de carga de aplicativo interno entre regiões, use o comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --global
    

    regional

    Para um balanceador de carga de aplicativo externo regional, use o comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --region=REGION
    

    Para o balanceador de carga de aplicativo interno regional, use o comando:

    gcloud beta compute backend-services create BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=HTTP \
       --ip-address-selection-policy=PREFER_IPV6 \
       --health-checks=HEALTH_CHECK \
       --region=REGION
    
  3. Adicione NEGs zonais como o back-end ao serviço de back-end.

    global

    Para o balanceador de carga de aplicativo externo global e o balanceador de carga de aplicativo interno entre regiões, use o comando:

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

    regional

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

    gcloud beta compute backend-services add-backend BACKEND_SERVICE_IPV6 \
      --network-endpoint-group=ZONAL_NEG \
      --max-rate-per-endpoint=10 \
      --region=REGION
    
  4. Reserve um endereço IPv6 externo que seus clientes usem para acessar o balanceador de carga.

    global

    Para um balanceador de carga de aplicativo externo global, use o comando:

    gcloud compute addresses create lb-ipv6-1 \
       --ip-version=IPV6 \
       --network-tier=PREMIUM \
       --global
    
  5. Crie uma regra de encaminhamento do serviço de back-end. Ao criar a regra de encaminhamento, especifique o endereço IP externo na sub-rede.

    global

    Para um balanceador de carga de aplicativo externo global, use o comando:

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

Encaminhar o tráfego para o novo serviço de back-end IPv6

Atualize o mapa de URL para direcionar parte do tráfego do cliente para o novo serviço de back-end IPv6. BACKEND_SERVICE_IPV6

  1. Use o seguinte comando para editar os mapas de URL:

    global

    Para o balanceador de carga de aplicativo externo global e o balanceador de carga de aplicativo interno entre regiões, use o comando:

       gcloud compute url-maps edit URL_MAP \
           --global
       

    regional

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

       gcloud compute url-maps edit URL_MAP \
           --region=REGION
       
  2. No editor de texto exibido, adicione um routeRule com uma ação weightedBackendServices que direcione uma porcentagem do tráfego IPv6 para BACKEND_SERVICE_IPV6.

    defaultService: global/backendServices/BACKEND_SERVICE
    hostRules:
    - hosts:
      - '*'
      pathMatcher: matcher1
    name: URL_MAP
    pathMatchers:
    - defaultService: global/backendServices/BACKEND_SERVICE
      name: matcher1
      routeRules:
      - matchRules:
        - prefixMatch: ''
        priority: 1
        routeAction:
          weightedBackendServices:
          - backendService: global/backendServices/BACKEND_SERVICE
            weight: 95
          - backendService: global/backendServices/BACKEND_SERVICE_IPV6
            weight: 5
    

Para implementar a migração gradual para IPv6, aumente a porcentagem de ponderação do novo serviço de back-end BACKEND_SERVICE_IPV6 para 100% editando o mapa de URL várias vezes.

Configurar a política de seleção de endereço IP

Esta etapa é opcional. Depois de converter seus recursos e back-ends para pilha dupla, é possível usar a política de seleção de endereço IP para especificar o tipo de tráfego enviado do serviço de back-end para os back-ends.

Substitua IP_ADDRESS_SELECTION_POLICY por qualquer um destes valores:

Política de seleção de endereço IP Descrição
Somente IPv4 Enviar tráfego IPv4 somente para os back-ends do serviço de back-end, independentemente do tráfego do cliente para o GFE. Somente as verificações de integridade IPv4 são usadas para conferir a integridade dos back-ends.
Preferir IPv6

Priorize a conexão IPv6 do back-end em vez da conexão IPv4 (desde que haja um back-end íntegro com endereços IPv6).

As verificações de integridade monitoram periodicamente as conexões IPv6 e IPv4 dos back-ends. Primeiro, o GFE tenta a conexão IPv6. Se a conexão IPv6 estiver corrompida ou lenta, o GFE usará olhos felizes (link em inglês) para retornar e se conectar ao IPv4.

Mesmo que uma das conexões IPv6 ou IPv4 não esteja íntegra, o back-end ainda será tratado como íntegro, e ambas as conexões poderão ser testadas pelo GFE, e os usuários poderão escolher qual usar.

Somente IPv6

Enviar tráfego IPv6 somente para os back-ends do serviço de back-end, independentemente do tráfego do cliente para o proxy. Somente as verificações de integridade IPv6 são usadas para conferir a integridade dos back-ends.

Não há validação para verificar se o tipo de tráfego de back-end corresponde à política de seleção de endereço IP. Por exemplo, se você tiver back-ends IPV4 e selecionar Only IPv6 como a política de seleção de endereço IP, você não observará erros de configuração, mas o tráfego não fluirá para seus back-ends.

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.

  3. Clique em Editar.

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

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

  6. O tipo de back-end precisa ser Grupo de endpoints de rede zonal ou Grupo de instâncias.

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

  8. Clique em Concluído.

gcloud

  1. Atualize o serviço de back-end:

    global

    Para um balanceador de carga de aplicativo externo global, use o comando:

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

    Para o balanceador de carga de aplicativo interno entre regiões, use o comando:

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

    regional

    Para um balanceador de carga de aplicativo externo regional, use o comando:

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

    Para o balanceador de carga de aplicativo interno regional, use o comando:

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

Testar o balanceador de carga

Confirme se todos os recursos necessários foram atualizados para a pilha dupla. Depois de atualizar todos os recursos, o tráfego deve fluir automaticamente para os back-ends. Verifique os registros e confira se a conversão foi concluída.

Teste o balanceador de carga para confirmar se a migração foi bem-sucedida e se o tráfego de entrada está alcançando os back-ends conforme o esperado.

Procure o endereço IP externo 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.

  3. Na seção Front-end, são exibidos dois endereços IP do balanceador de carga. Neste procedimento, o endereço IPv4 é chamado de IP_ADDRESS_IPV4 e o endereço IPv6 é conhecido como IP_ADDRESS_IPV6.

  4. Na seção Back-ends, quando a política de seleção de endereço IP é Prefer IPv6, dois status de verificação de integridade são exibidos para os back-ends.

Enviar tráfego para as instâncias

Neste exemplo, as solicitações do comando curl são distribuídas aleatoriamente para os back-ends.

  1. Repita os seguintes comandos algumas vezes até ver todas as VMs de back-end respondendo:

    curl http://IP_ADDRESS_IPV4
    
    curl http://IP_ADDRESS_IPV6
    

    Por exemplo, se o endereço IPv6 for [fd20:1db0:b882:802:0:46:0:0]:80, o comando será semelhante a este:

    curl http://[fd20:1db0:b882:802:0:46:0:0]
    

Verificar os registros

Cada entrada de registro captura os endereços IPv4 e IPv6 de destino do back-end. Como há suporte para pilha dupla, é importante observar o endereço IP usado pelo back-end.

Visualize os registros para verificar se o tráfego está indo para o IPv6 ou se está falhando para o IPv4.

O HttpRequest contém o endereço backend_ip associado ao back-end. Ao examinar os registros e comparar os endereços IPv4 e IPv6 de destino do backend_ip, é possível confirmar qual endereço IP é usado.