Public NAT

O Public NAT permite que as instâncias de máquina virtual (VM) do Google Cloud que não têm endereços IP públicos se comuniquem com a Internet usando um conjunto de endereços IP públicos compartilhados. O Cloud NAT usa um gateway do Public NAT que aloca um conjunto de endereços IP externos e portas de origem para cada VM que usa o gateway para criar conexões de saída com a Internet.

Fluxo de trabalho e configuração básica do Public NAT

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

Exemplo de tradução do Public NAT.
Exemplo de traduçã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 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 do 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 Public 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 do alias do intervalo de endereços IP principal de subnet-3, 192.168.1.0/24.

Exemplo de fluxo de trabalho do Public NAT

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

  • Mínimo de portas por instância: 64
  • Dois endereços IP de conversão de endereços de rede (NAT) atribuídos manualmente: 192.0.2.50 e 192.0.2.60
  • NAT fornecido 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 porta de origem do NAT para cada uma das VMs na rede. Por exemplo, o gateway do Public NAT reserva 64 portas de origem para a VM com endereço IP interno 10.240.0.4. O endereço IP 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 até 192.0.2.50:34063

Quando a VM envia um pacote para o 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 um dos endereços IP de origem NAT reservados da VM e das tuplas da porta de origem
    • Porta de origem: 34022, uma porta de origem não utilizada de uma das tuplas de porta de origem 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 de destino e a porta de destino do pacote de resposta para que o pacote 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

Especificações

Especificações gerais

É possível configurar um gateway do Public NAT para fornecer NAT à Internet para pacotes enviados do seguinte:

  • O endereço IP interno principal da interface de rede da VM do Compute Engine, desde que a interface de rede não tenha um endereço IP externo atribuído a ela. Se a interface de rede tiver um endereço IP externo atribuído a ela, o Google Cloud executará automaticamente NAT individual para pacotes cujas origens correspondem ao endereço 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 a interface de rede tenha um endereço IP externo atribuído a ela, é possível configurar um gateway do Public NAT para fornecer NAT para pacotes cujas origens sejam provenientes de 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.

  • Para clusters do Google Kubernetes Engine (GKE), o Public NAT pode fornecer serviços, mesmo se o cluster tiver endereços IP externos em determinadas circunstâncias. Para mais detalhes, consulte Interação do GKE.

O Public NAT permite conexões de saída e as respostas de entrada para essas conexões. Cada gateway do Public NAT realiza NAT de origem na saída e NAT de destino para os pacotes de resposta estabelecidos.

O Public NAT não permite solicitações de entrada não solicitadas da Internet, mesmo se as regras de firewall permitirem essas solicitações. Para mais informações, consulte RFCs aplicáveis.

Cada gateway do Public NAT está associado a uma única rede VPC, região e Cloud Router. O Public 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 Public NAT ou pelo Cloud Router.

Rotas e regras de firewall

O Public NAT depende de rotas estáticas personalizadas em que os próximos saltos são o gateway de Internet padrão. Para utilizar completamente um gateway do Public NAT, sua rede de nuvem privada virtual precisa de uma rota padrão que tenha o gateway de Internet padrão como próximo salto. Para mais informações, consulte interações de rotas.

O NAT público não tem requisitos de regra de NGFW do Cloud. As regras de firewall são aplicadas diretamente às interfaces de rede das VMs do Compute Engine, não aos do Public NAT.

Você não precisa criar regras de firewall especiais que permitam conexões de ou para endereços IP NAT. Quando um gateway do Public NAT fornece NAT 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 de NAT. As regras de firewall de entrada são avaliadas depois que os pacotes são processados pelo NAT.

Aplicabilidade da faixa de endereços IP de sub-rede

É possível configurar o gateway do Public NAT para fornecer NAT para o endereço IP interno principal da interface de VM, intervalos de IP de alias ou ambos. Para fazer essa configuração, escolha os intervalos de endereços IP de sub-rede aos quais o gateway deve se aplicar.

Você pode configurar um gateway do Public NAT para fornecer NAT para os seguintes itens:

  • Intervalos de endereços IP primários e secundários de todas as sub-redes na região. Um único gateway do Public NAT fornece NAT para os endereços IP internos principais e todos os intervalos de IP do alias das VMs qualificadas cujas interfaces de rede usam uma sub-rede na região. Essa opção usa exatamente um gateway NAT por região.

  • Intervalos de endereços IP primários de todas as sub-redes na região. Um único gateway do Public NAT fornece NAT para os endereços IP internos principais e intervalos de IP do alias dos intervalos de endereços IP primários da sub-rede de VMs qualificadas com interfaces de rede que usam uma sub-rede na região. É possível criar outros gateways do Public NAT na região para fornecer NAT para intervalos de IP de alias a partir de intervalos de endereços IP de sub-redes secundários de VMs qualificadas.

  • Lista de sub-redes personalizadas. Um único gateway do Public NAT fornece NAT para os endereços IP internos primários e todos os intervalos de IP do alias das VMs qualificadas com interfaces de rede que usam uma sub-rede de uma lista de sub-redes especificadas.

  • Intervalos de endereços IP de sub-rede personalizados. É possível criar quantos gateways do Public NAT forem necessários, sujeito a cotas e limites do Public NAT. Você escolhe quais intervalos de endereços IP primários ou secundários da sub-rede serão disponibilizados por cada gateway.

Vários gateways NAT públicos

É possível ter vários gateways NAT públicos na mesma região de uma rede VPC se uma das condições a seguir for verdadeira:

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

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

Contanto que os gateways NAT mapeados não se sobreponham, é possível criar quantos gateways NAT públicos forem necessários, de acordo com as cotas e limites do NAT público. Para mais informações, consulte Limitações dos gateways do Cloud NAT.

Largura de banda

Usar um gateway do Public NAT não altera a quantidade de largura de banda de entrada ou de saída que uma VM pode usar. Para especificações de largura de banda, que variam por tipo de máquina, consulte Largura de banda de rede na documentação do Compute Engine.

VMs com várias interfaces de rede

Se você configurar uma VM para ter várias interfaces de rede, cada interface precisará estar em uma rede VPC separada. Consequentemente, os seguintes itens são verdadeiros:

  • Um gateway do Public NAT só pode ser aplicado a uma única interface de rede de uma VM. Gateways separados do Public NAT podem fornecer NAT para a mesma VM, onde cada gateway se aplica a uma interface separada.
  • Uma interface de uma VM com várias interfaces de rede pode ter um endereço IP externo e, portanto, não qualificada para o Public NAT, enquanto outra das interfaces pode se qualificar para o NAT se essa não tiver um endereço IP externo e você configurou um gateway do Public NAT para ser aplicado ao intervalo apropriado de endereços IP da sub-rede.

Portas e endereços IP NAT

Ao criar um gateway do Public NAT, você pode optar por fazer com que o gateway aloque endereços IP externos regionais automaticamente. Como alternativa, você pode atribuir manualmente um número fixo de endereços IP externos regionais ao gateway.

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

  • Selecione os níveis de serviço de rede (nível Premium ou Standard) em que o gateway do Public NAT aloca os endereços IP.
  • Quando você altera o nível de um gateway do Public NAT que alocou automaticamente endereços IP NAT, o Google Cloud libera todos os endereços IP atribuídos para esse 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 alocações de porta são fornecidas para todos os endpoints.

Para um determinado gateway do Public NAT, também é possível atribuir manualmente endereços IP do nível Premium, Padrão ou ambos, sujeitos a determinadas conditions.

Para detalhes sobre a atribuição de endereços IP NAT, consulte Endereços IP do Public NAT.

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

As VMs para as quais NAT deve ser fornecida são determinadas pelos intervalos de endereços IP de sub-rede que o gateway está configurado para veicular.

Para mais informações sobre portas, consulte Portas.

RFCs aplicáveis

O Public NAT é compatível com Mapeamento independente de endpoint e Filtragem dependente de endpoint, conforme definido no RFC 5128 (link em inglês). É 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 para vários destinos diferentes, o gateway mapeia todos esses pacotes para o mesmo NAT. Endereço IP e par de portas, independentemente do destino dos pacotes. Para mais detalhes e implicações para o mapeamento independente de endpoint, consulte 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 forem de um endereço IP e de uma porta para onde uma VM já enviou pacotes. A filtragem depende do endpoint, independentemente do tipo de mapeamento de endpoints. Este recurso está sempre ativado e não pode ser configurado pelo usuário.

Para mais informações sobre a relação entre portas e conexões, consulte Portas e conexões e o Exemplo de fluxo NAT.

O Public NAT é uma NAT cone restrito de porta, conforme definido no 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 seus próprios servidores 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 (Transversal usando relés em torno do NAT, RFC 5766) permite a comunicação entre VMs por meio de um terceiro servidor no qual esse servidor tem um endereço IP externo. Cada VM se conecta ao endereço IP externo do servidor e esse servidor 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 NAT público define tempos limite para conexões de protocolo. Para informações sobre esses tempos limite e os valores padrão deles, consulte Tempos limite de NAT.

A seguir