NAT público
O NAT público permite que as instâncias de máquinas virtuais (VMs) do Compute Engine comuniquem com a Internet através da atribuição de um conjunto de endereços IPv4 externos partilhados e portas de origem a cada VM que usa o NAT público para criar ligações de saída à Internet.
Com o NAT público, as instâncias de VM que não têm endereços IPv4 externos podem comunicar com destinos IPv4 na Internet. A NAT pública também permite que as suas instâncias de VM com endereços IPv6 externos ou internos se liguem a destinos IPv4 na Internet.
Especificações
O NAT público suporta a tradução de endereços de rede (NAT) para o seguinte:
De IPv4 para IPv4 ou NAT44. Para mais informações, consulte o artigo NAT44 no NAT público.
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), pontos finais sem servidor e grupos de pontos finais de rede da Internet regionais, o NAT público traduz apenas endereços IPv4. Para mais informações, consulte o artigo NAT64 no NAT público.
Especificações gerais
-
O NAT público permite ligações de saída e as respostas de entrada a essas ligações. Cada gateway do Cloud NAT para NAT público executa o NAT de origem no tráfego de saída e o NAT de destino para pacotes de resposta estabelecidos.
-
A NAT pública não permite pedidos de entrada não solicitados da Internet, mesmo que as regras da firewall permitam esses pedidos. Para mais informações, consulte o artigo RFCs aplicáveis.
-
Cada gateway do Cloud NAT para NAT público está associada a uma única rede VPC, região e Cloud Router. A gateway do Cloud NAT e o Cloud Router fornecem um plano de controlo. Não estão envolvidos no plano de dados, pelo que os pacotes não passam pela gateway do Cloud NAT nem pelo Cloud Router.
Embora uma gateway do Cloud NAT para NAT público seja gerida por um Cloud Router, o NAT público não usa nem depende do Border Gateway Protocol.
Para NAT44, a NAT pública pode fornecer NAT para pacotes de saída enviados a partir do seguinte:
O endereço IP interno principal da interface de rede da VM, desde que a interface de rede não tenha um endereço IP externo atribuído: se a interface de rede tiver um endereço IP externo atribuído, Google Cloud executa automaticamente o NAT individual para pacotes cujas origens correspondam ao endereço IP interno principal da interface porque a interface de rede cumpre os Google Cloud requisitos de acesso à Internet. A existência de um endereço IP externo numa interface tem sempre precedência e realiza sempre NAT um para um, sem usar NAT público.
Um intervalo de IPs de alias atribuído à interface de rede da VM: mesmo que a interface de rede tenha um endereço IP externo atribuído, pode configurar um gateway Cloud NAT para o NAT público para fornecer NAT para pacotes cujas origens provenham de um intervalo de IPs de alias da interface. Um endereço IP externo numa interface nunca executa NAT um para um para endereços IP de alias.
Clusters do GKE: o NAT público pode fornecer serviços mesmo que o cluster tenha endereços IP externos em determinadas circunstâncias. Para obter detalhes, consulte o artigo Interação com o GKE.
Para NAT64, a NAT pública pode fornecer NAT para pacotes de saída enviados a partir do seguinte:
- O intervalo de endereços /96 interno da interface de rede apenas IPv6 da VM.
- O intervalo de endereços /96 externo da interface de rede apenas IPv6 da VM.
Rotas e regras de firewall
A NAT pública baseia-se em rotas estáticas locais cujos saltos seguintes são o gateway de Internet predefinido. Normalmente, uma rota predefinida cumpre este requisito. Para mais informações, consulte o artigo Interações com rotas.
As regras de firewall do NGFW da nuvem são aplicadas diretamente às interfaces de rede das VMs do Compute Engine e não aos gateways NAT da nuvem para NAT público.
Quando um gateway Cloud NAT para NAT público 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 do NAT. As regras de firewall de entrada são avaliadas depois de os pacotes terem sido processados pelo NAT. Não precisa de criar regras de firewall especificamente para o NAT.
No entanto, se quiser ativar o NAT64 numa rede VPC que tenha uma regra de firewall de recusa de saída para um destino IPv4, recomendamos que crie uma regra de firewall de recusa de saída adicional para o endereço IPv6 incorporado no IPv4 do destino. Isto garante que o tráfego das VMs que usam NAT64 não pode contornar a regra de firewall IPv4. Por exemplo, se o destino na regra IPv4 for 1.2.3.4/32
, o destino na regra IPv6 tem de ser 64:ff9b:0102:0304/128
. Para saber mais sobre os endereços IPv6 incorporados no IPv4,
consulte NAT64.
Aplicabilidade do intervalo de endereços IP da sub-rede
A NAT pública pode fornecer NAT para intervalos de sub-redes IPv4, intervalos de sub-redes IPv6 ou ambos:
Para intervalos de sub-redes IPv4, pode usar 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 fornece NAT para os endereços IP internos primários e todos os intervalos de IP de alias de VMs elegíveis 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 fornece NAT para os endereços IP internos principais e os intervalos de IP de alias dos intervalos de endereços IP principais da sub-rede de VMs elegíveis cujas interfaces de rede usam uma sub-rede IPv4 na região. Pode criar gateways Cloud NAT adicionais para NAT pública na região para fornecer NAT para intervalos de IP de alias de intervalos de endereços IP secundários de sub-redes de VMs elegíveis.
-
Lista de sub-redes personalizadas: um único gateway do Cloud NAT fornece NAT para os endereços IP internos principais e todos os intervalos de IP de alias das VMs elegíveis cujas interfaces de rede usam uma sub-rede de uma lista de sub-redes especificadas.
-
Intervalos de endereços IPv4 de sub-rede personalizados: pode criar quantos gateways NAT da nuvem forem necessários para a NAT pública, sujeitos a quotas e limites da NAT pública. Escolhe os intervalos de endereços IP principais ou secundários da sub-rede que devem ser publicados por cada gateway.
-
Para intervalos de sub-redes IPv6, pode usar as seguintes opções para configurar o NAT para intervalos de endereços IP internos, intervalos de endereços IP externos ou ambos:
- Intervalos de endereços IPv6 internos e externos de todas as sub-redes na região: um único gateway do Cloud NAT fornece NAT para todos os intervalos de endereços IP internos e externos na região.
- Lista de sub-redes personalizada: um único gateway do Cloud NAT fornece NAT para os intervalos de endereços IP internos e externos de VMs elegíveis cujas interfaces de rede usam uma sub-rede de uma lista de sub-redes especificadas.
Vários gateways do Cloud NAT
Pode ter vários gateways Cloud NAT para NAT público na mesma região de uma rede VPC se uma das seguintes condições for verdadeira:
Cada gateway está configurado para uma sub-rede diferente.
Numa única sub-rede, cada gateway está configurado para um intervalo de endereços IP diferente. Pode mapear um gateway do Cloud NAT para NAT público para um intervalo de endereços IP ou uma sub-rede específica através de um mapeamento do Cloud NAT personalizado.
Desde que os gateways NAT mapeados não se sobreponham, pode criar o número de gateways Cloud NAT para NAT pública que forem necessários, sujeito às quotas e aos limites da NAT pública. Para mais informações, consulte as limitações das gateways NAT da nuvem.
Largura de banda
A utilização de um gateway NAT da nuvem para o NAT público não altera a quantidade de largura de banda de saída nem de entrada que uma VM pode usar. Para ver as especificações de largura de banda, que variam consoante o tipo de máquina, consulte o artigo Largura de banda da rede na documentação do Compute Engine.
VMs com várias interfaces de rede
Se configurar uma VM para ter várias interfaces de rede, cada interface tem de estar numa rede VPC separada. Consequentemente, o seguinte é verdadeiro:
- Uma gateway do Cloud NAT para NAT público só pode aplicar-se a uma única interface de rede de uma VM. As gateways do Cloud NAT separadas para o NAT público podem fornecer NAT à mesma VM, em que cada gateway se aplica a uma interface separada.
- Uma interface de uma VM com várias interfaces de rede pode ter um endereço IPv4 externo, o que torna essa interface inelegível para o NAT público, enquanto outra das respetivas interfaces pode ser elegível para o NAT se essa interface não tiver um endereço IPv4 externo e tiver configurado um gateway Cloud NAT para aplicar o NAT público ao intervalo de endereços IP da sub-rede adequado. Para IPv6, são suportados endereços IPv6 internos e externos.
Portas e endereços IP NAT
Quando cria um gateway NAT da nuvem para o NAT público, pode optar por que o gateway atribua automaticamente endereços IP externos regionais. Em alternativa, pode atribuir manualmente um número fixo de endereços IP externos regionais ao gateway.
Para uma gateway do Cloud NAT para NAT pública com atribuição automática de endereços IP de NAT, considere o seguinte:
- Pode selecionar os níveis de serviço de rede (nível Premium ou nível Standard) a partir dos quais o gateway Cloud NAT atribui os endereços IP.
Quando altera o nível de um gateway NAT da nuvem para NAT público que tenha atribuído automaticamente endereços IP NAT, Google Cloud liberta todos os endereços IP atribuídos para esse gateway e retira todas as atribuições de portas.
É automaticamente atribuído um novo conjunto de endereços IP do nível recém-selecionado e são fornecidas novas atribuições de portas a todos os pontos finais.
Para um determinado gateway Cloud NAT para NAT público, também pode atribuir manualmente endereços IP da camada Premium ou da camada Standard, ou ambas, sujeitos a determinadas condições.
Para ver detalhes sobre a atribuição de endereços IP NAT, consulte o artigo Endereços IP NAT públicos.
Pode configurar o número de portas de origem que cada gateway do Cloud NAT para NAT público reserva em cada VM para a qual vai fornecer serviços de NAT. Pode configurar a atribuição de portas estática, em que o mesmo número de portas é reservado para cada VM, ou a atribuição de portas dinâmica, em que o número de portas reservadas pode variar entre os limites mínimo e máximo que especificar.
As VMs para as quais o NAT deve ser fornecido são determinadas pelos intervalos de endereços IP da sub-rede que o gateway está configurado para publicar.
Para mais informações sobre as portas, consulte o artigo Portas.
RFCs aplicáveis
O NAT público suporta o mapeamento independente do ponto final e a filtragem dependente do ponto final, conforme definido na RFC 5128. Pode ativar ou desativar o mapeamento independente do ponto final. Por predefinição, o mapeamento independente do ponto final está desativado quando cria um gateway NAT.
A mapeamento independente do ponto final significa que, se uma VM enviar pacotes a partir de um determinado par de porta e endereço IP interno para vários destinos diferentes, o gateway mapeia todos esses pacotes para o mesmo par de porta e endereço IP NAT, independentemente do destino dos pacotes. Para ver detalhes e implicações relativos ao mapeamento independente do ponto final, consulte os artigos Reutilização simultânea de portas e mapeamento independente do ponto final.
A filtragem dependente do ponto final significa que os pacotes de resposta da Internet só são permitidos se forem provenientes de um endereço IP e de uma porta para os quais uma VM já tinha enviado pacotes. A filtragem depende do ponto final, independentemente do tipo de mapeamento de pontos finais. Esta funcionalidade está sempre ativada e não é configurável pelo utilizador.
Para mais informações sobre a relação entre portas e ligações, consulte Portas e ligações e o exemplo de fluxo de NAT.
O NAT público é um NAT de cone restrito por porta, conforme definido no RFC 3489.
Transposição de NAT
Se o mapeamento independente do ponto final estiver ativado, o NAT público é compatível com protocolos de travessia NAT comuns, como STUN e TURN, se implementar os seus próprios servidores STUN ou TURN:
- O STUN (Session Traversal Utilities for NAT, RFC 5389) permite a comunicação direta entre VMs atrás de NAT quando é estabelecido um canal de comunicação.
- O TURN (Traversal Using Relays around NAT, RFC 5766) permite a comunicação entre VMs atrás de NAT através de um terceiro servidor onde esse servidor tem um endereço IP externo. Cada VM liga-se ao endereço IP externo do servidor e esse servidor retransmite a comunicação entre as duas VMs. O TURN é mais robusto, mas consome mais largura de banda e recursos.
Limites de tempo de NAT
A NAT pública define limites de tempo para as ligações de protocolos. Para ver informações sobre estes limites de tempo e os respetivos valores predefinidos, consulte o artigo Limites de tempo de NAT.
NAT44 no NAT público
O diagrama seguinte mostra uma configuração básica de NAT pública para tráfego IPv4:
Neste exemplo:
O gateway
nat-gw-us-east
está configurado para se aplicar ao intervalo de endereços IP principal desubnet-1
na regiãous-east1
. Uma VM cuja interface de rede não tenha um endereço IP externo pode enviar tráfego para a Internet através do respetivo endereço IP interno principal ou de um intervalo de IPs de alias do intervalo de endereços IP principal desubnet-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 aceder à 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 se aplicar ao intervalo de endereços IP principal desubnet-3
na regiãoeurope-west1
. Uma VM cuja interface de rede não tenha um endereço IP externo pode enviar tráfego para a Internet através do respetivo endereço IP interno principal ou de um intervalo de IPs de alias do intervalo de endereços IP principal desubnet-3
, 192.168.1.0/24.
Exemplo de fluxo de trabalho
No diagrama anterior, uma VM com o endereço IP interno principal 10.240.0.4, sem um endereço IP externo, tem de transferir uma atualização do endereço IP externo 203.0.113.1. No diagrama, o gateway nat-gw-us-east
está configurado
da seguinte forma:
- Portas mínimas por instância: 64
- Dois endereços IP NAT atribuídos manualmente: 192.0.2.50 e 192.0.2.60
- NAT fornecido para o intervalo de endereços IP principal de
subnet-1
A NAT pública segue o procedimento de reserva de portas para reservar os seguintes tuplos de endereço IP de origem da NAT e de porta de origem para cada uma das VMs na rede. Por exemplo, o gateway de NAT da nuvem para NAT pública reserva 64 portas de origem para a VM com o endereço IP interno 10.240.0.4. O endereço IP NAT 192.0.2.50 tem 64 portas não reservadas, pelo que o gateway reserva o seguinte conjunto de 64 tuplos de endereço IP de origem NAT e porta de origem para essa VM:
- 192.0.2.50:34000 a 192.0.2.50:34063
Quando a VM envia um pacote para o servidor de atualizações 203.0.113.1 na porta de destino 80, através do protocolo TCP, ocorre o seguinte:
A VM envia um pacote de pedido com estes atributos:
- Endereço IP de origem: 10.240.0.4, o endereço IP interno principal da VM
- Porta de origem: 24000, a porta de origem efémera escolhida pelo sistema operativo da VM
- Endereço de destino: 203.0.113.1, o endereço IP externo do servidor de atualizações
- Porta de destino: 80, a porta de destino para o tráfego HTTP para o servidor de atualização
- Protocolo: TCP
O gateway
nat-gw-us-east
executa a tradução de endereços de rede de origem (SNAT) na saída, reescrevendo o endereço IP de origem NAT e a porta de origem do pacote de pedido. O pacote modificado é enviado para a Internet se a rede da nuvem virtual privada (VPC) tiver uma rota para o destino 203.0.113.1 cujo próximo salto seja o gateway de Internet predefinido. Normalmente, uma rota predefinida cumpre este requisito.- Endereço IP de origem NAT: 192.0.2.50, de uma das tuplas de porta de origem e endereço IP de origem NAT reservadas da VM
- Porta de origem: 34022, uma porta de origem não usada de uma das tuplas de portas de origem reservadas da VM
- Endereço de destino: 203.0.113.1, inalterado
- Porta de destino: 80, sem alterações
- Protocolo: TCP, sem alterações
Quando o servidor de atualizações 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ções
- Endereço de destino: 192.0.2.50, correspondente ao endereço IP de origem NAT original do pacote de pedido
- Porta de destino: 34022, correspondente à porta de origem do pacote de pedido
- Protocolo: TCP, sem alterações
O gateway
nat-gw-us-east
executa a tradução de endereços de rede de destino (DNAT) 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, sem alterações
- Porta de origem: 80, sem alterações
- Endereço de destino: 10.240.0.4, o endereço IP interno principal da VM
- Porta de destino: 24000, correspondente à porta de origem efémera original do pacote de pedido
- Protocolo: TCP, sem alterações
NAT64 no NAT público
O NAT64 permite que as instâncias de VM com interfaces de rede apenas IPv6 comuniquem com destinos IPv4 na Internet. A NAT pública suporta NAT64 para endereços IPv6 externos e internos. Se quiser configurar o NAT64, também tem de configurar o DNS64.
A configuração do DNS64 no Cloud DNS permite o seguinte comportamento:
- Quando uma instância de VM apenas IPv6 inicia um pedido para resolver o nome de um destino da Internet que tem apenas um endereço IPv4, o servidor DNS64 procura registos
A
. Se for encontrado um registo
A
, o servidor DNS64 sintetiza um endereço IPv6 incorporado em IPv4 antepondo o prefixo64:ff9b::/96
ao endereço IPv4 de destino obtido a partir do registoA
. Por exemplo, se o endereço IPv4 de destino for 203.0.113.1, o servidor devolve 64:ff9b::cb00:7101, ondecb00:7101
é a representação hexadecimal de 203.0.113.1.Para mais informações, consulte o artigo DNS64.
Quando o pedido chega à gateway do Cloud NAT com o NAT64 ativado, a gateway executa o SNAT da seguinte forma:
- Substitui o endereço e a porta IPv6 de origem por um dos endereços e portas IPv4 externos que estão atribuídos ao gateway.
Traduz o endereço IPv6 de destino sintetizado, por exemplo, 64:ff9b::cb00:7101, para o endereço IPv4 original através dos últimos 32 bits do endereço sintetizado.
O gateway NAT da nuvem também usa os últimos 32 bits do endereço IPv6 sintetizado para determinar como o pacote de pedido é encaminhado para a Internet. Quando uma instância de VM apenas IPv6 envia um pacote para um destino com o prefixo
64:ff9b::/96
, a porta de entrada aplica a tabela de encaminhamento IPv4 da rede VPC ao endereço IPv4 de destino. Se a tabela de encaminhamento IPv4 tiver um caminho para o endereço IPv4 de destino cujo próximo salto seja o gateway de Internet predefinido, o pacote modificado é enviado para a Internet.
Quando a resposta é recebida, o gateway do Cloud NAT executa o DNAT da seguinte forma:
- Adicionar o prefixo
64:ff9b::/96
ao endereço IP de origem do pacote de resposta. - Reescrever o endereço de destino e a porta de destino do pacote de resposta para que o pacote seja entregue à VM.
Antes de configurar o NAT64, reveja as Limitações e as Regras de firewall e rotas.
O que se segue?
- Saiba mais sobre as interações do produto Cloud NAT.
- Saiba mais acerca dos endereços e das portas do Cloud NAT.
- Saiba mais sobre as regras do Cloud NAT.
- Configure a NAT pública.