Terminação IPv6 para balanceadores de carga HTTP(S) externos, de proxy SSL e de proxy externo

O Google Cloud é compatível com clientes IPv6 com balanceadores de carga de proxy, como os balanceadores de carga de aplicativo externos globais e os balanceadores de carga de rede de proxy externo. O balanceador de carga aceita conexões IPv6 dos usuários e, em seguida, faz proxy dessas conexões para os back-ends.

Configure os endereços IP externos IPv4 e IPv6 para os seguintes balanceadores de carga de proxy:

  • Balanceador de carga de aplicativo externo global
  • Balanceador de carga de aplicativo clássico
  • Balanceador de carga de rede de proxy externo
Balanceamento de carga IPv6 global.
Balanceamento de carga IPv6 global (clique para ampliar).

A terminação IPv6 permite o gerenciamento de solicitações IPv6 de seus usuários e a transmissão em proxy delas por IPv4 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 registro 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.

  • Executar 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 IPv4 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 mais próximos com capacidade disponível. 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. Ele coloca a solicitação em uma conexão IPv4 para um back-end.
  4. No caminho inverso, o balanceador de carga recebe a resposta IPv4 do back-end e, em seguida, coloca-a na conexão IPv6 de volta para o cliente original.

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.

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.

Limitações

  • O tráfego IPv6 não é compatível com 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 interno regional, balanceador de carga de rede de proxy interno entre regiões, balanceadores de carga de rede de proxy externo regional e balanceadores de carga de rede de passagem interna.

A seguir