IPv6 para balanceadores de carga de aplicativo e balanceadores de carga de rede de proxy

Este documento mostra como o tráfego IPv6 é processado pelos balanceadores de carga de proxy. 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.

O Google Cloud oferece suporte ao tráfego IPv6 para balanceadores de carga de rede de passagem com base em serviço de back-end. Para mais informações, consulte Balanceador de carga de rede de passagem externa baseado em serviço de back-end e Visão geral do balanceador de carga de rede de passagem interno baseado em serviço de back-end.

Os balanceadores de carga de aplicativo externos globais e os balanceadores de carga de rede de proxy externo global encerram o tráfego IPv6 de entrada e, em seguida, fazem proxy desse tráfego por uma conexão IPv4 ou IPv6 para seus back-ends IPv4 e IPv6 (pilha dupla).

A tabela a seguir indica quais balanceadores de carga oferecem suporte a front-ends IPv6 e back-ends IPv4 e IPv6 (pilha dupla):

Recurso balanceador de carga de aplicativo Balanceador de carga de rede de proxy
Interno Externo Interno Externo
Front-ends IPv6 global
clássico+
global
clássico+
Back-ends IPv4 e IPv6 (pilha dupla) entre regiões*
regional*
global*
regional*
entre regiões*
regional*
global*
regional*

* Oferece suporte a grupos de instâncias IPv4 e IPv6 (pilha dupla) e back-ends de NEG por zona. Os NEGs zonais oferecem suporte à pilha dupla apenas em endpoints do tipo GCE_VM_IP_PORT.

+ Compatível com o nível Premium

As seções a seguir neste documento descrevem como o tráfego IPv6 é processado por balanceadores de carga de aplicativo externos globais e balanceadores de carga de rede de proxy externos globais.

O exemplo a seguir mostra como o balanceamento de carga funciona para clientes IPv6 globais:

Balanceamento de carga IPv6 global.
Balanceamento de carga IPv6 global (clique para ampliar).

O encerramento do IPv6 permite processar as solicitações IPv6 dos usuários e usá-las como proxy em IPv4 ou IPv6 para seus back-ends. Ao usar o IPv6, é possível fazer o seguinte:

  • Usar apenas um endereço IPv6 anycast para a implantação multirregional. Só é preciso um endereço IPv6 do balanceador de carga para instâncias de aplicativos em execução em várias regiões. Isso significa que o servidor DNS tem apenas um AAAA (em inglês) e que não é necessário fazer o balanceamento de carga de vários endereços IPv6. O armazenamento em cache de registros AAAA por clientes não é um problema porque haverá apenas um endereço a ser armazenado. A carga das solicitações de usuários para o endereço IPv6 é automaticamente balanceada e enviada para o back-end íntegro mais próximo com capacidade disponível.

  • Balancear carga do tráfego de cliente em HTTP, HTTPS, HTTP/2, TCP e SSL/TLS IPv6.

  • Estourar a capacidade em várias regiões com apenas um endereço do balanceador de carga IPv6. Se os back-ends de uma região estiverem sem recursos ou não íntegros, o balanceador de carga global direcionará automaticamente as solicitações dos usuários para a região mais próxima com recursos disponíveis. Quando a região mais próxima tiver recursos disponíveis, o balanceamento de carga global voltará a ser veiculado nela. O balanceamento de carga global requer o nível Premium dos níveis de serviço de rede.

  • Execute implantações de pilha dupla. Para atender aos clientes IPv6 e IPv4, crie dois recursos de IP do balanceador de carga, um para IPv6 e outro para IPv4, e associe ambos às mesmas instâncias do aplicativo. Os clientes IPv4 se conectam ao endereço IPv4 enquanto os clientes IPv6 se conectam ao endereço IPv6. Em seguida, a carga desses clientes é balanceada automaticamente e enviada para os back-ends íntegros de pilha dupla IPv4 ou IPv6 com capacidade disponível. Para saber quais balanceadores de carga oferecem suporte a back-ends de pilha dupla, consulte Tabela: serviços de back-end e tipos de back-end com suporte. Nós fornecemos regras de encaminhamento de IPv6 sem cobrança. Assim, você pagará apenas pelas regras de encaminhamento de IPv4.

    Direcionamento do tráfego IPv4 e IPv6 para os mesmos back-ends.
    Direcionamento do tráfego IPv4 e IPv6 para os mesmos back-ends (clique para ampliar).

Término IPv6 e proxy

A configuração da terminação IPv6 para os balanceadores de carga permite que os back-ends apareçam como aplicativos IPv6 para os clientes IPv6, como mostrado na figura a seguir:

Encerramento do IPv6 no balanceamento de carga
Terminação IPv6 para balanceamento de carga (clique para ampliar).

Quando um usuário se conecta ao balanceador de carga via IPv6, acontece o seguinte:

  1. O balanceador de carga, com o endereço IPv6 e a regra de encaminhamento, aguarda as conexões do usuário.
  2. Um cliente IPv6 se conecta ao balanceador de carga via IPv6.
  3. O balanceador de carga atua como um proxy reverso e encerra a conexão do cliente IPv6. Com base na política de seleção de endereço IP do serviço de back-end, ele coloca a solicitação em uma conexão IPv4 ou IPv6 com um back-end.
  4. No caminho inverso, o balanceador de carga recebe a resposta do back-end e, em seguida, coloca-a na conexão IPv6 de volta para o cliente original.

Limitações

  • Os balanceadores de carga de rede de proxy clássico e os de aplicativo clássicos não são compatíveis com back-ends de pilha dupla. O tráfego IPv6 é encerrado pelo balanceador de carga e depois encaminhado por proxy por uma conexão IPv4 para os back-ends.

  • Balanceadores de carga de aplicativo externos regionais, balanceadores de carga de aplicativo internos entre regiões, balanceadores de carga de aplicativo internos regionais, balanceadores de carga de rede de proxy internos regionais, balanceadores de carga de rede de proxy internos entre regiões ou balanceadores de carga de rede de proxy externos regionais não oferecem suporte a frontend IPv6. O tráfego IPv4 de entrada é encaminhado por proxy por uma conexão IPv4 ou IPv6 para os back-ends 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).

Alocação de endereços IPv6 para regras de encaminhamento do balanceador de carga

Ao configurar um balanceador de carga externo, você fornece uma ou mais regras de encaminhamento globais para ele, cada uma com um endereço IP externo IPv4 ou IPv6 (ou ambos) roteado publicamente. É possível usar esse endereço IP nos registros DNS do seu site.

Ao criar uma regra de encaminhamento, você pode usar um endereço IP estático reservado para seu projeto ou fazer com que a regra de encaminhamento adquira automaticamente um endereço IP temporário durante a criação da regra. Um endereço IP estático é reservado ao seu projeto, e você pode mantê-lo até liberá-lo deliberadamente. Um endereço temporário pertence à regra de encaminhamento enquanto ela existir. Se você excluir a regra de encaminhamento, o endereço temporário será liberado no pool do Google Cloud.

Se você precisa de um endereço IPv4 e IPv6 para seu balanceador de carga, é possível criar duas regras de encaminhamento associando um endereço IPv4 a uma delas e um endereço IPv6 à outra. Em seguida, associe as duas regras ao mesmo balanceador de carga.

Formato de endereço IPv6

O Google Cloud aloca um intervalo de endereços /64 IPv6 para as regras de encaminhamento de IPv6. A CLI do Google Cloud lista endereços IPv6 com 64 bits menos significativos definidos como 0, mas o balanceador de carga aceita tráfego no intervalo completo. Portanto, será possível ver outros endereços IPv6 do balanceador de carga no intervalo alocado nos cabeçalhos X-Forwarded-For, dependendo do endereço IP do servidor IPv6 a que o cliente se conectou.

Ao formatar um endereço IPv6, o Google Cloud segue as recomendações da RFC 5952, seção 4.

Cabeçalho de IP do cliente com terminação IPv6 para balanceadores de carga de aplicativos externos

Quando o balanceador de carga encaminha a conexão IPv6 do cliente via proxy a uma conexão IPv4 do seu back-end, o endereço IP inicial da origem é substituído pelo endereço IP do balanceador de carga. No entanto, muitas vezes o endereço IP original precisa ser conhecido pelos back-ends para geração de registros, tomada de decisões ou outras finalidades. O Google Cloud fornece um cabeçalho HTTP que se propaga para os back-ends e inclui o endereço IP do cliente IPv6 original.

Os cabeçalhos HTTP para IPv6 são semelhantes aos do IPv4. O formato das solicitações é o seguinte:

  • X-Forwarded-For: CLIENT_IP_ADDRESS, GLOBAL_FORWARDING_RULE_EXTERNAL_IP_ADDRESSES

O último elemento exibe o endereço IP do balanceador de carga. O penúltimo exibe o endereço IP do cliente visualizado pelo balanceador de carga. É possível que haja outros elementos no cabeçalho X-Forwarded-For quando o cliente ou os proxies intervenientes adicionarem outros cabeçalhos X-Forwarded-For antes de enviarem a solicitação ao balanceador de carga.

Este é um exemplo de cabeçalho X-Forwarded-For:

X-Forwarded-For: 2001:db8:abcd:1::1234, 2607:f8b0:4005:801::200e

2001:db8:abcd:1::1234 é o endereço IPv6 do cliente. 2607:f8b0:4005:801::200e é o endereço IPv6 do balanceador de carga de aplicativo externo.

Converter de pilha única para pilha dupla

É possível converter recursos do balanceador de carga que usam apenas IPv4 (pilha única) para IPv4 e IPv6 (pilha dupla). Ao atualizar os recursos do balanceador de carga, você pode encaminhar automaticamente o tráfego IPv6 para seus back-ends.

Para instruções sobre como converter os recursos e back-ends do balanceador de carga para pilha dupla, consulte a documentação a seguir:

Balanceador de carga Documentação
Balanceador de carga de aplicativo externo global
Balanceador de carga de aplicativo interno entre regiões
Balanceador de carga de aplicativo externo regional
Balanceador de carga de aplicativo interno regional
Converter o balanceador de carga de aplicativo em IPv6
Balanceador de carga de rede de proxy SSL e proxy TCP global
Balanceador de carga de rede de proxy interno entre regiões
Balanceador de carga de rede de proxy externo regional
Balanceador de carga de rede de proxy interno regional
Converter o balanceador de carga de rede de proxy para IPv6

Preços

As regras de encaminhamento para a terminação IPv6 são fornecidas sem custo adicional. Você não é cobrado por endereços IPv6 temporários. Endereços IPv6 reservados são cobrados de acordo com as taxas atuais, estando em uso ou não. Caso contrário, o sistema de preços do balanceamento de carga IPv6 será igual ao preço do balanceamento de carga IPv4. Para detalhes sobre preços de balanceamento de carga, consulte Preços de rede.

A seguir

* Protocolo de seleção de endereço IP