Este documento mostra-lhe como converter recursos do Application Load Balancer e back-ends de apenas IPv4 (pilha única) para IPv4 e IPv6 (pilha dupla). A principal vantagem da utilização do IPv6 é que é possível atribuir um conjunto muito maior de endereços IP. 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 o artigo 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.
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 aplicações:
- Balanceador de carga de aplicações externo global
- Balanceador de carga de aplicações externo regional
- Balanceador de carga de aplicações interno entre regiões
- Balanceador de carga de aplicações interno regional
Os equilibradores de carga de aplicações clássicos não suportam back-ends nem sub-redes 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 balanceador de carga tem de ter back-ends do grupo de instâncias de VMs ou back-ends do grupo de pontos finais de rede (NEG) 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 aplicações 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 aplicações internos entre regiões, balanceadores de carga de aplicações externos regionais e balanceadores de carga de aplicações internos regionais, apenas converte os back-ends em pilha dupla. As regras de encaminhamento IPv6 não são suportadas para estes equilibradores de carga.
Para obter informações sobre como configurar equilibradores de carga de aplicações, consulte a seguinte documentação:
- Configure um balanceador de carga de aplicações externo global: back-ends do grupo de instâncias de VM, back-ends do NEG zonais
- Configure um Application Load Balancer externo regional: back-ends de grupos de instâncias de VM, back-ends de NEG zonais
- Configure um balanceador de carga de aplicações interno entre regiões: backends de grupos de instâncias de VM, backends de NEG zonais
- Configure um Application Load Balancer interno regional: back-ends de grupos de instâncias de VM, back-ends de NEG zonais
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.
Para listar todas as sub-redes, use o comando
gcloud compute networks subnets list
:gcloud compute networks subnets list
Tenha em atenção o nome da sub-rede com endereços apenas IPv4 para converter em pilha dupla. Este nome é referido mais tarde como
SUBNET
. A rede da VPC é referida mais tarde comoNETWORK
.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
.Para apresentar uma lista de todos os mapas de URLs, use o comando
gcloud compute url-maps list
:gcloud compute url-maps list
Tome nota do nome do mapa de URLs associado ao seu balanceador de carga. Este nome é referido mais tarde como
URL_MAP
.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)"
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 comandogcloud 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
eINSTANCE_TEMPLATES
.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
.Para apresentar uma lista de todos os grupos de pontos finais de rede (NEGs) zonais, use o comando
gcloud compute network-endpoint-groups list
:gcloud compute network-endpoint-groups list
Tome nota dos nomes dos back-ends do NEG zonais a converter para pilha dupla. Este nome é referido mais tarde como
ZONAL_NEG
.Para apresentar uma lista de todos os proxies de destino, use o comando
gcloud compute target-http-proxies list
:gcloud compute target-http-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 e os back-ends do equilibrador de carga com endereços apenas 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:
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.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
.Opcional: se quiser configurar intervalos de endereços IPv6 internos em sub-redes nesta rede, conclua estes passos:
- Para o intervalo IPv6 interno ULA da rede VPC, selecione Ativado.
Para Atribuir intervalo IPv6 interno, selecione Automaticamente ou Manualmente.
Se selecionar Manualmente, introduza um intervalo de
/48
no intervalo defd20::/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
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.
- Na Google Cloud consola, aceda à página Redes VPC.
Aceda à página Redes de VPC - Clique no nome da rede VPC à qual quer adicionar uma sub-rede apenas de proxy.
- Clique em Adicionar sub-rede.
- Introduza um nome.
- Selecione uma região.
- Em Finalidade, selecione Proxy gerido regional.
- Para Função, selecione Cópia de segurança.
- Para o Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
- Introduza um intervalo de endereços IP.
- Clique em Adicionar.
- Na Google Cloud consola, aceda à página Redes VPC.
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.
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:
- Na Google Cloud consola, aceda à página Redes VPC.
Aceda à página Redes de VPC - Clique no nome da rede VPC que quer modificar.
- 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.
- Clique em Ativar.
- Especifique um Limite de tempo de esgotamento opcional.
- Clique em Ativar a sub-rede.
- Na Google Cloud consola, aceda à página Redes VPC.
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.
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 recentementeREGION
: 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 VPCBACKUP_PROXY_ONLY_SUBNET_RANGE
: o intervalo CIDR da sub-rede apenas de proxy de cópia de segurança criada recentemente
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-endACTIVE_PROXY_ONLY_SUBNET_RANGE
: o intervalo CIDR da sub-rede só de proxy ativa atualBACKUP_PROXY_ONLY_SUBNET_RANGE
: o intervalo CIDR da sub-rede apenas de proxy de cópia de segurança
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
como0s
. 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 recentementeREGION
: 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
Monitorize o estado da drenagem através de um comando
list
oudescribe
. 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
.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
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:
- Elimine instâncias específicas de um grupo
- Crie uma VM de pilha dupla
- 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
Na Google Cloud consola, aceda à página Modelos de instâncias.
- Clique no modelo de instância que quer copiar e atualizar.
- Clique em Criar semelhante.
- Expanda a secção Opções avançadas.
- Para etiquetas de rede, introduza
allow-health-check-ipv6
. - Na secção Interfaces de rede, clique em Adicionar uma interface de rede.
- Na lista Rede, selecione a rede VPC no modo personalizado.
- Na lista Sub-rede, selecione
SUBNET
. - Para o Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
- Clique em Criar.
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
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique em Criar instância.
Defina o Nome como
vm-a1
.Para a Região, escolha
REGION_A
e escolha qualquer valor para o campo Zona. Esta zona é denominadaGCP_NEG_ZONE
neste procedimento.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.
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)
- Rede:
- 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
Clique em Criar.
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
- Nome:
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
devm-a1
e qualquer zonaGCP_NEG_ZONE
à sua escolha.VM_NAME
devm-a2
e a mesma zonaGCP_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:
Na Google Cloud consola, aceda à página Grupos de pontos finais de rede.
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.Na secção Pontos finais de rede neste grupo, selecione o ponto final do NEG criado anteriormente. Clique em Remover ponto final.
Na secção Pontos finais de rede neste grupo, clique em Adicionar ponto final de rede.
Selecione a instância de VM.
Na secção Interface de rede, é apresentado o nome, a zona e a sub-rede da VM.
No campo Endereço IPv4, introduza o endereço IPv4 do novo ponto final de rede.
No campo Endereço IPv6, introduza o endereço IPv6 do novo ponto final de rede.
Selecione o Tipo de porta.
- 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 porta80
. - Se selecionar Personalizado, introduza o Número da porta do ponto final a usar.
- Se selecionar Predefinição, o ponto final usa a porta predefinida
Para adicionar mais pontos finais, clique em Adicionar ponto final de rede e repita os passos anteriores.
Depois de adicionar todos os pontos finais, clique em Criar.
gcloud
Adicione pontos finais (
GCE_VM_IP_PORT
pontos finais) aZONAL_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
Na Google Cloud consola, aceda à página Políticas de firewall.
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
- Nome:
Clique em Criar.
gcloud
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 Application Load Balancer externo regional ou um Application Load Balancer interno, tem de atualizar a regra de firewall de entradafw-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
Na Google Cloud consola, aceda à página Políticas de firewall.
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
- Intervalos IPv6 de origem:
Clique em Guardar.
gcloud
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
Crie um novo serviço de back-end e uma regra de encaminhamento para IPv6
Esta secção descreve o procedimento para criar um novo serviço de back-end e uma regra de encaminhamento para IPv6. Tenha em atenção que a regra de encaminhamento IPv6 só pode ser criada para balanceadores de carga de aplicações externos globais. As regras de encaminhamento IPv6 não são suportadas para balanceadores de carga de aplicações internos entre regiões, balanceadores de carga de aplicações externos regionais e balanceadores de carga de aplicações internos regionais.
Neste ponto do processo, tanto BACKEND_SERVICE
como BACKEND_SERVICE_IPV6
são capazes de publicar tráfego. Para evitar a interrupção do tráfego, crie um novo serviço de back-end com a política de seleção de endereços IP definida como Prefer IPv6
. Depois de criar o novo serviço de back-end, pode encaminhar o tráfego para o novo serviço de back-end IPv6.
Consola
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Clique no nome do balanceador de carga.
Clique em Edit.
Configure o serviço de back-end:
- Clique em Configuração de back-end.
- No campo Serviço de back-end, selecione Criar um serviço de back-end.
- Defina o Nome como BACKEND_SERVICE_IPV6.
- Para Tipo de back-end, selecione Grupo de pontos finais da rede zonal.
- Na lista Política de seleção de endereços IP, selecione Preferir IPv6.
- No campo Protocolo, selecione HTTP.
- No painel Novo back-end, faça o seguinte:
- Na lista grupo de pontos finais de rede, selecione ZONAL_NEG.
- Para RPS máximo, introduza
10
.
- Na lista Verificação de funcionamento, selecione uma verificação de funcionamento de HTTP.
- Clique em Concluído.
Configure o front-end IPv6:
A regra de encaminhamento com IPv6 não é suportada para balanceadores de carga de aplicações internos entre regiões, balanceadores de carga de aplicações externos regionais e balanceadores de carga de aplicações internos regionais.
- Clique em Configuração do front-end.
- Clique em Adicionar IP e porta do front-end.
- No campo Nome, introduza um nome para a regra de encaminhamento.
- No campo Protocolo, selecione
HTTP
. - Defina a versão do IP como
IPv6
. - Clique em Concluído.
- Clique em Atualizar.
Configure regras de encaminhamento
- Clique em Regras de encaminhamento.
- Clique em Regra avançada de anfitrião e caminho.
- Clique em Atualizar.
gcloud
Crie uma verificação de funcionamento:
gcloud compute health-checks create http HEALTH_CHECK \ --port 80
Crie o serviço de back-end para o tráfego HTTP:
Global
Para o Application Load Balancer externo global, use o comando:
gcloud 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
entre regiões
Para o Application Load Balancer interno entre regiões, use o comando:
gcloud 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 o balanceador de carga de aplicações externo regional, use o comando:
gcloud 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 aplicações interno regional, use o comando:
gcloud 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
Adicione os NEGs zonais de pilha dupla como back-end ao serviço de back-end.
Global
Para o Application Load Balancer externo global, use o comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --network-endpoint-group=ZONAL_NEG \ --network-endpoint-group-zone=ZONE \ --max-rate-per-endpoint=10 \ --global
entre regiões
Para o Application Load Balancer interno entre regiões, use o comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --network-endpoint-group=ZONAL_NEG \ --network-endpoint-group-zone=ZONE \ --max-rate-per-endpoint=10 \ --global
regional
Para o balanceador de carga de aplicações externo regional e o balanceador de carga de aplicações interno regional, use o comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --network-endpoint-group=ZONAL_NEG \ --network-endpoint-group-zone=ZONE \ --max-rate-per-endpoint=10 \ --region=REGION
Adicione os grupos de instâncias de pilha dupla como back-end ao serviço de back-end.
Global
Para o Application Load Balancer externo global, use o comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --instance-group=INSTANCE_GROUP \ --global
entre regiões
Para o Application Load Balancer interno entre regiões, use o comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --instance-group=INSTANCE_GROUP \ --global
regional
Para o balanceador de carga de aplicações externo regional e o balanceador de carga de aplicações interno regional, use o comando:
gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \ --instance-group=INSTANCE_GROUP \ --region=REGION
Apenas para balanceadores de carga de aplicações externos globais. Crie a regra de encaminhamento IPv6 para o balanceador de carga de aplicações externo global. Use o comando:
gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --global \ --target-http-proxy=TARGET_PROXY \ --ports=443
Encaminhe tráfego para o novo serviço de back-end IPv6
Atualize o mapa de URLs para direcionar uma determinada fração do tráfego de clientes para o novo serviço de back-end IPv6BACKEND_SERVICE_IPV6
.
Use o seguinte comando para editar os mapas de URLs:
Global
Para o Application Load Balancer externo global, use o comando:
gcloud compute url-maps edit URL_MAP \ --global
entre regiões
Para o Application Load Balancer interno entre regiões, use o comando:
gcloud compute url-maps edit URL_MAP \ --global
regional
Para o balanceador de carga de aplicações externo regional e o balanceador de carga de aplicações interno regional, use o comando:
gcloud compute url-maps edit URL_MAP \ --region=REGION
No editor de texto apresentado, adicione um
routeRule
com uma açãoweightedBackendServices
que direcione uma percentagem do tráfego IPv6 paraBACKEND_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 percentagem de ponderação do
novo serviço de back-end BACKEND_SERVICE_IPV6
de forma incremental
até 100% editando o mapa de URLs várias vezes.
Configure a política de seleção de endereços IP
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 |
Consola
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Clique no nome do balanceador de carga.
Clique em Edit.
Clique em Configuração de back-end.
No campo Serviço de back-end, selecione BACKEND_SERVICE_IPV6.
O Tipo de back-end tem de ser Grupo de pontos finais de rede zonal ou Grupo de instâncias.
Na lista Política de seleção de endereços IP, selecione IP_ADDRESS_SELECTION_POLICY.
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 Application Load Balancer externo global, use o comando:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \ --global
entre regiões
Para o Application Load Balancer interno entre regiões, use o comando:
gcloud 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 o balanceador de carga de aplicações externo regional, use o comando:
gcloud 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 aplicações interno regional, use o comando:
gcloud compute backend-services update BACKEND_SERVICE_IPV6 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --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 migraçã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
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Clique no nome do balanceador de carga.
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.
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
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
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
Use o SSH para estabelecer ligação à instância do cliente.
gcloud compute ssh client-vm \ --zone=ZONE
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.
O HttpRequest
contém o endereço backend_ip
associado ao
back-end. Ao examinar os registos e comparar o endereço IPv4 e IPv6 de destino do backend_ip
, pode confirmar que endereço IP é usado.