Configurar pilha dupla (IPv4 e IPv6)

As sub-redes de pilha dupla permitem que os recursos do App Engine enviem tráfego IPv4 e IPv6 para uma rede VPC com saída de VPC direta. É possível mudar uma sub-rede somente IPv4 (pilha única) para uma sub-rede de pilha dupla.

Tipos de sub-rede

As redes VPC oferecem suporte aos seguintes tipos de sub-rede do Compute Engine:

  • Sub-redes somente IPv4 (pilha única), com apenas intervalos de sub-rede IPv4

  • Sub-redes IPv4 e IPv6 (pilha dupla), com intervalos de sub-rede IPv4 e IPv6

Limitações de pilha dupla

Antes de mudar o tipo de pilha em um recurso do App Engine, considere as seguintes limitações:

  • O suporte a pilha dupla só está disponível com sub-redes em uma rede VPC de modo personalizado. Para que o tipo de acesso interno esteja disponível para sub-redes de pilha dupla, o intervalo IPv6 interno da rede VPC precisa estar ativado. Configure ou converta a rede VPC para o modo personalizado.

  • Em comparação com sub-redes somente IPv4, as sub-redes de pilha dupla podem apresentar latências de inicialização a frio elevadas, limitando a rapidez com que o aplicativo pode escalonar verticalmente.

  • NAT64 não é compatível.

Antes de começar

Verifique se o agente de serviço do App Engine tem o papel de administrador de IP público do Compute (roles/compute.publicIpAdmin) para usar a sub-rede com IPv6 externo.

Configurar uma sub-rede de pilha dupla

Sub-redes de pilha dupla têm intervalos de endereços IPv4 e IPv6.

Para configurar uma sub-rede de pilha dupla, use o Google Cloud console ou a Google Cloud CLI:

Console

  1. Acesse o Google Cloud console e ative a API Compute Engine:

    Ativar a API Compute Engine

  2. Navegue até a página Redes VPC:

    Acessar redes VPC

  3. Clique em Criar rede VPC se estiver criando uma nova rede de modo personalizado. Se você estiver usando uma rede VPC, clique no nome dela para mostrar a página Detalhes da rede VPC.

  4. Se você estiver criando uma rede ou convertendo uma rede atual, insira o nome e verifique se o Modo de criação de sub-rede está definido como Personalizado e selecione Configurar um intervalo IPv6 interno ULA para esta rede VPC.

  5. Na guia Sub-redes, clique em Adicionar sub-rede. No painel que aparecerá, faça o seguinte:

    1. Forneça um Nome.
    2. Selecione uma Região.
    3. Em Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
    4. Digite um intervalo de IPv4. Esse é o intervalo IPv4 principal da sub-rede.
    5. Selecione o Tipo de acesso IPv6.

      Se a opção Interno não estiver disponível e você precisar dela, verifique se um intervalo IPv6 interno está atribuído à rede.

    6. Clique em Adicionar.

gcloud

  1. Para criar uma rede de modo personalizado que ofereça suporte a sub-redes de pilha dupla, execute o comando gcloud compute networks create.

    Para configurar intervalos IPv6 internos em qualquer sub-rede nessa rede, use a sinalização --enable-ula-internal-ipv6. Essa opção atribui um prefixo ULA /48 de do intervalo fd20::/20 usado pelo Google Cloud para intervalos de sub-rede IPv6 internos.

    gcloud compute networks create NETWORK \
      --subnet-mode=custom \
      --enable-ula-internal-ipv6

    Substitua NETWORK pelo nome da rede VPC que vai conter a nova sub-rede.

  2. Para converter ou atualizar uma rede de modo personalizado para que ela ofereça suporte a sub-redes de pilha dupla, execute o seguinte comando:

    gcloud compute networks update NETWORK \
      --switch-to-custom-subnet-mode \
      --enable-ula-internal-ipv6

    Substitua NETWORK pelo nome da rede VPC que vai conter a nova sub-rede.

  3. Para criar uma sub-rede de pilha dupla com um intervalo IPv6, execute o subnets create comando usando as configurações de pilha dupla:

    gcloud compute networks subnets create SUBNET \
      --network=NETWORK \
      --range=PRIMARY_IPv4_RANGE \
      --stack-type=IPV4_IPV6 \
      --ipv6-access-type=IPV6_ACCESS_TYPE \
      --region=REGION

    Substitua:

    • SUBNET: um nome para a nova sub-rede.
    • NETWORK: o nome da rede VPC que vai conter a nova sub-rede.
    • PRIMARY_IPv4_RANGE: o intervalo IPv4 principal da nova sub-rede, em notação CIDR. Saiba mais em Intervalos de sub-rede IPv4.
    • IPV6_ACCESS_TYPE: o tipo de acesso IPv6 da nova sub-rede, internal ou external.
    • REGION: a Google Cloud região do em que a nova sub-rede será criada.

Adicionar a sub-rede de pilha dupla a um recurso do App Engine

Depois de criar uma sub-rede de pilha dupla, configure o serviço do App Engine para usar a sub-rede:

  1. No arquivo app.yaml, especifique a rede e a sub-rede no campo vpc_access:

    vpc_access:
      network_interface:
        network: NETWORK
        subnet: SUBNET
      vpc_egress: EGRESS_SETTING

    Substitua:

    • NETWORK: o nome da rede criada na etapa anterior.

    • SUBNET: o nome da sub-rede criada na etapa anterior.

    • Opcional: EGRESS_SETTING: controla como o tráfego de saída é roteado. Esse campo oferece suporte às seguintes configurações:

      • all-traffic: todas as solicitações de saída são roteadas pela rede VPC.
      • private-ranges-only (padrão): apenas o tráfego para endereços IP internos é roteado pela rede VPC. O tráfego da Internet usa o caminho padrão do App Engine.
  2. Implante no App Engine executando o seguinte comando:

    gcloud beta app deploy

Mudar uma sub-rede de pilha única para pilha dupla

Para adicionar um intervalo de sub-rede IPv6 a uma sub-rede somente IPv4 em uma rede VPC de modo personalizado, consulte Alterar o tipo de pilha de uma sub-rede para pilha dupla. Em seguida, implante o serviço do App Engine na sub-rede de pilha dupla.

Mudar uma sub-rede de pilha dupla para pilha única

Para mudar a sub-rede de pilha dupla de um recurso para uma sub-rede de pilha única, consulte Mudar uma sub-rede de pilha dupla para somente IPv4. Em seguida, implante o serviço do App Engine na sub-rede de pilha dupla.

Verificar a rede e a sub-rede

Para verificar se o recurso está na rede VPC, execute o seguinte comando:

gcloud beta app versions describe VERSION --service=SERVICE

Substitua:

  • VERSION: a versão implantada do serviço
  • SERVICE: o serviço implantado

O exemplo de saída a seguir mostra sua rede e sub-rede:

  vpcAccess:
  networkInterfaces:
  - network: projects/YOUR_PROJECT/global/networks/YOUR_NETWORK
    subnet: projects/YOUR_PROJECT/regions/YOUR_REGION/subnetworks/YOUR_SUBNET
  vpcEgress: ALL_TRAFFIC/PRIVATE_RANGES_ONLY