Public NAT

O Public NAT permite que as instâncias de máquina virtual (VM) do Compute Engine se comuniquem com a Internet. Ele aloca um conjunto compartilhado de endereços IPv4 externos e portas de origem a cada VM que o usa, para criar conexões de saída com a Internet.

Com o Public NAT, as instâncias de VM que não têm endereços IPv4 externos podem se comunicar com destinos IPv4 na Internet. O Public NAT também permite que as instâncias de VM com endereços IPv6 externos ou internos se conectem a destinos IPv4 na Internet.

Especificações

O Public NAT realiza os seguintes tipos de conversão de endereços de rede (NAT):

  • De IPv4 para IPv4 ou NAT44. Saiba mais em NAT44 no Public NAT.

  • De IPv6 para IPv4 ou NAT64. O NAT64 está disponível para instâncias de VM do Compute Engine. Para nós do Google Kubernetes Engine (GKE), endpoints sem servidor e grupos de endpoints de rede da Internet regionais, o Public NAT traduz apenas endereços IPv4. Saiba mais em NAT64 no Public NAT.

Especificações gerais

  • O Public NAT permite conexões de saída e as respostas de entrada a essas conexões. Cada gateway do Cloud NAT para o Public NAT realiza NAT de origem no tráfego de saída e NAT de destino para pacotes de resposta estabelecidos.

  • O Public NAT não permite a entrada de solicitações da Internet que não foram pedidas, mesmo se as regras de firewall permitirem isso. Saiba mais em RFCs aplicáveis.

  • Cada gateway do Cloud NAT para Public NAT está associado a uma única rede VPC, região e Cloud Router. O gateway do Cloud NAT e o Cloud Router fornecem um plano de controle. Eles não estão envolvidos no plano de dados, portanto, os pacotes não passam pelo gateway do Cloud NAT ou pelo Cloud Router.

    Embora um gateway do Cloud NAT para Public NAT seja gerenciado por um Cloud Router, o Public NAT não usa nem depende do protocolo de gateway de borda.

  • Para NAT44, o Public NAT faz a conversão dos pacotes de saída enviados pelos seguintes itens:

    • O endereço IP interno principal da interface de rede da VM, desde que não haja um endereço IP externo atribuído à interface: se houver um endereço IP externo atribuído à interface, o Google Cloud vai fazer automaticamente a NAT individual dos pacotes cujas origens correspondam ao IP interno principal da interface, porque a interface de rede atende aos requisitos de acesso à Internet do Google Cloud . A existência de um endereço IP externo em uma interface sempre tem precedência e sempre realiza NAT um para um, sem usar o Public NAT.

    • Um intervalo de IP de alias atribuído à interface de rede da VM: mesmo que haja um endereço IP externo atribuído à interface de rede, é possível configurar um gateway do Cloud NAT para Public NAT para fazer a conversão dos pacotes que têm como origem um intervalo de IP de alias da interface. Um endereço IP externo em uma interface nunca realiza NAT um para um para endereços IP de alias.

    • Clusters do GKE: o Public NAT pode prestar o serviço mesmo que o cluster tenha endereços IP externos em determinadas circunstâncias. Saiba mais em Interação do GKE.

  • Para NAT64, o Public NAT realiza a conversão dos pacotes de saída enviados pelos seguintes itens:

    • O intervalo de endereços /96 interno da interface de rede somente IPv6 da VM.
    • O intervalo de endereços /96 externos da interface de rede somente IPv6 da VM.

Rotas e regras de firewall

O Public NAT depende de rotas estáticas locais em que os próximos saltos são o gateway de Internet padrão. Uma rota padrão geralmente atende a esse requisito. Saiba mais em interações de rotas.

As regras de firewall do Cloud NGFW são aplicadas diretamente às interfaces de rede das VMs do Compute Engine, não aos gateways do Cloud NAT para Public NAT.

Quando um gateway do Cloud NAT para Public NAT faz a conversão para a interface de rede de uma VM, as regras de firewall de saída aplicáveis são avaliadas como pacotes para essa interface de rede antes da NAT. As regras de firewall de entrada são avaliadas depois que os pacotes são processados pela NAT. Não é necessário criar regras de firewall especificamente para NAT.

No entanto, caso você queira ativar o NAT64 em uma rede VPC que tem uma regra de firewall de negação de saída para um destino IPv4, recomendamos criar outra regra de firewall de negação de saída para o endereço IPv6 incorporado ao IPv4 do destino. Dessa forma, o tráfego das VMs que usam NAT64 não poderá burlar a regra de firewall IPv4. Por exemplo, se o destino na regra IPv4 for 1.2.3.4/32, o destino na regra IPv6 precisará ser 64:ff9b:0102:0304/128. Para saber mais sobre endereços IPv6 incorporados ao IPv4, consulte NAT64.

Aplicabilidade do intervalo de endereços IP de sub-rede

O Public NAT faz a conversão para intervalos de sub-rede IPv4, intervalos de sub-rede IPv6 ou ambos:

  • Para intervalos de sub-rede IPv4, use as seguintes opções para configurar a NAT para intervalos de endereços IP principais, intervalos de IP de alias ou ambos:

    • Intervalos de endereços IPv4 primários e secundários de todas as sub-redes na região: um único gateway do Cloud NAT faz a conversão para os endereços IP internos principais e todos os intervalos de IP de alias das VMs qualificadas cujas interfaces de rede usam uma sub-rede IPv4 na região.

    • Intervalos de endereços IPv4 principais de todas as sub-redes na região: um único gateway do Cloud NAT faz a conversão para os endereços IP internos principais e intervalos de IP dos intervalos principais de VMs cujas interfaces de rede usam uma sub-rede IPv4 na região. É possível criar outros gateways do Cloud NAT para Public NAT na região para fazer a conversão para intervalos de IP de alias de intervalos de endereços IP de sub-redes secundários das VMs qualificadas.

    • Lista de sub-redes personalizadas: um único gateway do Cloud NAT faz a conversão para os endereços IP internos principais e todos os intervalos de IP de alias das VMs qualificadas cujas interfaces de rede usam uma sub-rede de uma determinada lista.

    • Intervalos de endereços IPv4 de sub-rede personalizada: é possível criar quantos gateways do Cloud NAT para Public NAT forem necessários, sujeitos às cotas e limites do Public NAT. Você escolhe quais intervalos de endereços IP primários ou secundários da sub-rede serão atendidos por cada gateway.

  • Para intervalos de sub-rede IPv6, use as seguintes opções para configurar o NAT em intervalos de endereços IP internos e/ou externos:

    • Intervalos de endereços IPv6 internos e externos de todas as sub-redes na região: um único gateway do Cloud NAT faz a conversão para todos os intervalos de endereços IP internos e externos na região.
    • Lista personalizada de sub-redes: um único gateway do Cloud NAT faz a conversão para os intervalos de endereços IP internos e externos das VMs qualificadas cujas interfaces de rede usam uma sub-rede da lista especificada.

Usar mais de um gateway do Cloud NAT

É possível ter mais de um gateway do Cloud NAT para Public NAT na mesma região de uma rede VPC, contanto que uma das seguintes condições seja verdadeira:

  • Cada gateway está configurado para uma sub-rede diferente.

  • Em uma única sub-rede, cada gateway está configurado para um intervalo de endereços IP diferente. É possível associar um gateway do Cloud NAT para Public NAT a uma sub-rede ou intervalo de endereços IP específico usando um mapeamento personalizado do Cloud NAT.

Desde que os gateways de NAT mapeados não se sobreponham, é possível criar quantos gateways do Cloud NAT para Public NAT forem necessários, sujeitos às cotas e limites do Public NAT. Saiba mais em Limitações dos gateways do Cloud NAT.

Largura de banda

Usar um gateway do Cloud NAT para Public NAT não muda a quantidade de largura de banda de entrada ou de saída que uma VM pode usar. As especificações de largura de banda variam por tipo de máquina e estão disponíveis em Largura de banda de rede na documentação do Compute Engine.

VMs com mais de uma interface de rede

Se você configurar uma VM para ter mais de uma interface de rede, cada interface precisará estar em uma rede VPC separada. Portanto, observe o seguinte:

  • Um gateway do Cloud NAT para Public NAT só pode ser aplicado a uma única interface de rede de uma VM. Gateways separados do Cloud NAT para Public NAT podem fazer a conversão para a mesma VM, onde cada gateway se aplica a uma interface separada.
  • Em uma VM com mais de uma interface de rede, uma delas pode ter um endereço IPv4 externo e, portanto, não estar qualificada para o Public NAT. Já outra das interfaces poderá estar qualificada para NAT se não tiver um endereço IPv4 externo e se você configurar um gateway do Cloud NAT para Public NAT para o intervalo apropriado de endereços IP da sub-rede. Para IPv6, há suporte a endereços internos e externos.

Portas e endereços IP de NAT

Ao criar um gateway do Cloud NAT para Public NAT, você pode optar por fazer com que o gateway aloque endereços IP externos regionais automaticamente. Também é possível atribuir manualmente um número fixo de endereços IP externos regionais ao gateway.

Para um gateway do Cloud NAT para Public NAT com alocação automática de endereços IP de NAT, considere o seguinte:

  • Selecione os níveis de serviço de rede (nível Premium ou Standard) em que o gateway do Cloud NAT aloca os endereços IP.
  • Quando você muda o nível de um gateway do Cloud NAT para Public NAT que alocou automaticamente endereços IP de NAT, o Google Cloud libera todos os endereços IP atribuídos ao gateway e desativa todas as alocações de porta.

    Um novo conjunto de endereços IP do nível recém-selecionado é alocado automaticamente, e novas portas são alocadas a todos os endpoints.

Para um determinado gateway do Cloud NAT para Public NAT, também é possível atribuir manualmente endereços IP do nível Premium, Standard ou ambos, sujeito a determinadas condições.

Saiba mais sobre a atribuição de endereços IP de NAT em Endereços IP do Public NAT.

É possível configurar o número de portas de origem que cada gateway do Cloud NAT para Public NAT reserva em cada VM em que a conversão é feita. É possível configurar a alocação estática de porta, em que o mesmo número de portas é reservado para cada VM, ou alocação dinâmica de porta, em que o número de portas reservadas pode variar entre os limites mínimo e máximo especificados.

A configuração de intervalos de endereço IP da sub-rede atendidos pelo gateway determina quais VMs vão receber a NAT.

Saiba mais em Portas.

RFCs aplicáveis

O Public NAT dá suporte a mapeamento independente de endpoint e filtragem dependente de endpoint, conforme definido na RFC 5128. É possível ativar ou desativar o mapeamento independente de endpoint. Por padrão, o mapeamento independente de endpoint fica desativado quando você cria um gateway NAT.

Mapeamento independente de endpoint significa que, se uma VM envia pacotes de um determinado endereço IP interno e par de portas a vários destinos diferentes, o gateway associa todos esses pacotes ao mesmo par de endereços e porta da NAT, seja qual for o destino. Confira mais detalhes e as implicações do recurso em Reutilização simultânea de portas e mapeamento independente de endpoint.

Filtragem dependente de endpoint significa que os pacotes de resposta da Internet poderão entrar apenas se vierem de um endereço IP e uma porta aos quais uma VM já enviou pacotes. A filtragem depende do endpoint, sem relação com o tipo de mapeamento de endpoints. Este recurso está sempre ativado e não pode ser configurado pelo usuário.

Saiba mais sobre a relação entre portas e conexões em Portas e conexões e Exemplo de fluxo NAT.

O Public NAT é uma NAT de cone restrito de porta, segundo a definição da RFC 3489.

Travessia de NAT

Se o mapeamento independente de endpoint estiver ativado, o Public NAT será compatível com protocolos NAT tradicionais, como STUN e TURN, se você implantar servidores próprios de STUN ou TURN:

  • STUN (Session Traversal Utilities para NAT, RFC 5389) permite a comunicação direta entre VMs por trás de NAT quando um canal de comunicação é estabelecido.
  • O TURN (Traversal Using Relays around NAT, RFC 5766) permite a comunicação entre VMs por meio de um terceiro servidor que tem um endereço IP externo. Cada VM se conecta ao endereço IP externo do servidor, que retransmite a comunicação entre as duas VMs. A TURN é mais robusta, mas consome mais largura de banda e recursos.

Tempo limite de NAT

O Public NAT define tempos limite para conexões de protocolo. Consulte os tempos limite e os valores padrão deles neste link.

NAT44 no Public NAT

O diagrama a seguir mostra uma configuração básica do Public NAT para tráfego IPv4:

Exemplo de conversão de IPv4 do Public NAT.
Exemplo de conversão do Public NAT (clique para ampliar).

Neste exemplo:

  • O gateway nat-gw-us-east está configurado para ser aplicado ao intervalo de endereços IP principal de subnet-1 na região us-east1. Uma VM com interface de rede sem um endereço IP externo pode enviar tráfego à Internet usando o endereço IP interno principal ou um intervalo de IP de alias do intervalo de endereços IP principal de subnet-1, 10.240.0.0/16.

  • Uma VM cuja interface de rede não tem um endereço IP externo e cujo endereço IP interno principal está localizado em subnet-2 não pode acessar a Internet porque nenhum gateway do Cloud NAT se aplica a qualquer intervalo de endereços IP dessa sub-rede.

  • O gateway nat-gw-eu está configurado para ser aplicado ao intervalo de endereços IP principal de subnet-3 na região europe-west1. Uma VM cuja interface de rede não tem um endereço IP externo pode enviar tráfego à Internet usando o endereço IP interno principal ou um intervalo de IP de alias do intervalo de endereços IP principal de subnet-3, 192.168.1.0/24.

Exemplo de fluxo de trabalho

No diagrama anterior, uma VM com endereço IP interno principal 10.240.0.4, sem um endereço IP externo, precisa baixar uma atualização do endereço IP externo 203.0.113.1. No diagrama, o gateway nat-gw-us-east está configurado da seguinte maneira:

  • Mínimo de portas por instância: 64
  • Dois endereços IP de NAT atribuídos manualmente: 192.0.2.50 e 192.0.2.60
  • NAT realizado para o intervalo de endereços IP primários de subnet-1.

O Public NAT segue o procedimento de reserva de porta para reservar o seguinte endereço IP de origem e as tuplas de origem da NAT para cada VM na rede. Por exemplo, o gateway do Cloud NAT para Public NAT reserva 64 portas de origem para a VM com endereço IP interno 10.240.0.4. O endereço IP de NAT 192.0.2.50 tem 64 portas não reservadas. Portanto, o gateway reserva o seguinte conjunto de 64 endereços IP de origem NAT e tuplas de porta de origem para essa VM:

  • 192.0.2.50:34000 a 192.0.2.50:34063

Quando a VM envia um pacote ao servidor de atualização 203.0.113.1 na porta de destino 80 usando o protocolo TCP, ocorre o seguinte:

  • A VM envia um pacote de solicitação com estes atributos:

    • Endereço IP de origem: 10.240.0.4, o endereço IP interno primário da VM
    • Porta de origem: 24000, a porta de origem temporária escolhida pelo sistema operacional da VM
    • Endereço de destino: 203.0.113.1, o endereço IP externo do servidor de atualização
    • Porta de destino: 80, a porta de destino do tráfego HTTP para o servidor de atualizações
    • Protocolo: TCP
  • O gateway nat-gw-us-east executa a conversão de endereços de rede de origem (SNAT, na sigla em inglês) na saída, reescrevendo o endereço IP de origem e a porta de origem do pacote de solicitação. O pacote modificado será enviado para a Internet se a rede de nuvem privada virtual (VPC) tiver uma rota para o destino 203.0.113.1 em que o próximo salto seja o gateway de Internet padrão. Uma rota padrão geralmente atende a esse requisito.

    • Endereço IP de origem NAT: 192.0.2.50, de uma das tuplas reservadas de endereço IP e porta de origem da NAT da VM.
    • Porta de origem: 34022, uma porta de origem não utilizada de uma das tuplas reservadas da VM
    • Endereço de destino: 203.0.113.1, inalterado
    • Porta de destino: 80, inalterada
    • Protocolo: TCP, inalterado
  • Quando o servidor de atualização envia um pacote de resposta, esse pacote chega ao gateway nat-gw-us-east com estes atributos:

    • Endereço IP de origem: 203.0.113.1, o endereço IP externo do servidor de atualização
    • Porta de origem: 80, a resposta HTTP do servidor de atualização
    • Endereço de destino: 192.0.2.50, que corresponde ao endereço IP de origem da NAT original do pacote de solicitação
    • Porta de destino: 34022, que corresponde à porta de origem do pacote de solicitação
    • Protocolo: TCP, inalterado
  • O gateway nat-gw-us-east executa a conversão de endereços de rede de destino (DNAT, na sigla em inglês) no pacote de resposta, reescrevendo o endereço e a porta de destino do pacote para que ele seja entregue à VM:

    • Endereço IP de origem: 203.0.113.1, inalterado
    • Porta de origem: 80, inalterada
    • Endereço de destino: 10.240.0.4, o endereço IP interno primário da VM
    • Porta de destino: 24000, que corresponde à porta de origem temporária original do pacote de solicitação
    • Protocolo: TCP, inalterado

NAT64 no Public NAT

O NAT64 permite que instâncias de VM com interfaces de rede somente IPv6 se comuniquem com destinos IPv4 na Internet. O Public NAT dá suporte a NAT64 para endereços IPv6 externos e internos. Se você quiser configurar o NAT64, também será necessário configurar o DNS64.

Confira o que acontece quando você configura o DNS64 no Cloud DNS:

  • Quando uma instância de VM somente IPv6 inicia uma solicitação para resolver o nome de um destino da Internet que tem apenas um endereço IPv4, o servidor DNS64 pesquisa registros A.
  • Se um registro A for encontrado, o servidor DNS64 vai sintetizar um endereço IPv6 incorporado ao IPv4 adicionando o prefixo 64:ff9b::/96 ao endereço IPv4 de destino obtido do registro A. Por exemplo, se o endereço IPv4 de destino for 203.0.113.1, o servidor vai retornar 64:ff9b::cb00:7101, em que cb00:7101 é a representação hexadecimal de 203.0.113.1.

    Saiba mais em DNS64.

Quando a solicitação chega ao gateway do Cloud NAT com o NAT64 ativado, o gateway realiza a SNAT fazendo o seguinte:

  • Substitui o endereço IPv6 de origem e a porta por um dos endereços IPv4 externos e portas alocados ao gateway.
  • Converte o endereço IPv6 de destino sintetizado, por exemplo, 64:ff9b::cb00:7101, no endereço IPv4 original usando os últimos 32 bits do endereço sintetizado.

    O gateway do Cloud NAT também usa os últimos 32 bits do endereço IPv6 sintetizado para determinar como o pacote de solicitação é encaminhado à Internet. Quando uma instância de VM somente IPv6 envia um pacote a um destino com o prefixo 64:ff9b::/96, o gateway aplica a tabela de roteamento IPv4 da rede VPC ao endereço IPv4 de destino. Se a tabela de roteamento IPv4 tiver uma rota para o endereço IPv4 de destino em que o próximo salto é o gateway de Internet padrão, o pacote modificado será enviado à Internet.

Quando a resposta é recebida, o gateway do Cloud NAT realiza a DNAT fazendo o seguinte:

  • Adiciona o prefixo 64:ff9b::/96 ao endereço IP de origem do pacote de resposta.
  • Reescreve o endereço e a porta de destino do pacote de resposta para que ele seja entregue à VM.

Antes de configurar o NAT64, leia as Limitações e as Rotas e regras de firewall.

A seguir