Regras do Cloud NAT
Esta página oferece uma visão geral das regras do Cloud NAT para NAT público. Essas regras permitem definir como o Cloud NAT é usado para se conectar à Internet.
As regras do Cloud NAT para Public NAT são compatíveis com a conversão de endereços de rede de origem (SNAT) com base no endereço de origem (prévia) ou de destino.
Regras NAT
Por padrão, quando você configura um gateway do Cloud NAT para o Public NAT, os pacotes traduzidos por esse gateway usam o mesmo conjunto de endereços IP NAT para alcançar todos os endereços da Internet. Se você precisar de mais controle sobre os pacotes traduzidos pelo Cloud NAT, adicione regras NAT.
A regra NAT define uma condição de correspondência e uma ação correspondente. Depois de especificar as regras NAT, cada pacote será correspondido com cada regra NAT. Se um pacote corresponder à condição definida em uma regra, a ação relativa a essa correspondência ocorrerá.
As regras de NAT para o Public NAT são compatíveis com a correspondência de endereços de origem e destino:
- Em regras baseadas na origem (pré-lançamento), os pacotes são correspondidos pelo endereço IP de origem. Somente endereços de origem IPv4 são aceitos.
- Em regras baseadas em destino, os pacotes são correspondidos pelo endereço IP de destino. Somente endereços de destino IPv4 são aceitos.
Não é permitido combinar condições com base na origem e no destino em uma única regra de NAT. Para mais informações, consulte Especificações de regras de NAT.
Exemplos de configuração de regras do Cloud NAT
Nesta seção, você encontra exemplos de configuração para regras NAT baseadas em origem e destino.
Regras com base em fontes
O exemplo a seguir mostra como usar regras NAT baseadas na origem.
Por padrão, quando um gateway do Cloud NAT é configurado para tráfego IPv4 em uma sub-rede, ele fornece NAT para o endereço IP interno principal e intervalos de IP de alias de qualquer instância de VM nessa sub-rede. Ao usar regras NAT baseadas na origem, também é possível configurar o NAT para instâncias de VM com o encaminhamento de IP ativado.
Neste exemplo, o Cloud NAT está configurado em Subnet A. Na sub-rede, uma instância de VM com o endereço IP interno principal 10.1.1.2 e um intervalo de IP de alias 10.2.1.0/24 envia tráfego para a Internet. Considere os seguintes requisitos para a instância de VM:
- Se um pacote for originado do intervalo de IP
192.168.1.0/24, a VM precisará usar o endereço IP NAT203.0.113.10para enviar tráfego a qualquer destino da Internet. - Se um pacote for originado do intervalo de IP
192.168.2.0/24, a VM precisará usar o endereço IP NAT203.0.113.20para enviar tráfego a qualquer destino da Internet. - Se um pacote for originado do endereço IP
10.1.1.2ou do intervalo de IPs10.2.1.0/24, a VM precisará usar o endereço IP NAT203.0.113.30para enviar tráfego a qualquer destino da Internet.
Para atender a esses requisitos, crie duas regras de NAT baseadas na origem para pacotes encaminhados e a regra padrão para pacotes do endereço IP interno principal e do intervalo de IP de alias da instância de VM:
- Regra 1 com base na origem: se o endereço de origem for
192.168.1.0/24, use203.0.113.10para enviar tráfego à Internet. - Regra 2 baseada na origem: se o endereço de origem for
192.168.2.0/24, use203.0.113.20para enviar tráfego à Internet. - A regra padrão: para todos os outros pacotes, use
203.0.113.30para enviar tráfego à Internet.
Se o endereço de origem de um pacote encaminhado pela instância de VM não corresponder à regra 1 ou à regra 2, o pacote será descartado.
Para outro exemplo de como usar regras de NAT baseadas na origem, consulte Cloud WAN por dentro: uma análise mais detalhada dos recursos de rede diferenciados.
Regras com base no destino
O exemplo a seguir ilustra como usar regras NAT quando o destino permite o acesso de apenas alguns endereços IP. Recomendamos que o tráfego para esses destinos das VMs do Google Cloud em sub-redes particulares seja fornecido pela SNAT com apenas os endereços IP permitidos. Além disso, recomendamos que você não use esses endereços IP para outros destinos.
Considere os seguintes requisitos para VMs em Subnet-1 (10.10.10.0/24), que estão na região A da rede VPC test:
- As VMs precisam usar o endereço IP NAT
203.0.113.20para enviar o tráfego para o destino198.51.100.20/30. - As VMs precisam usar o endereço IP NAT
203.0.113.30para enviar o tráfego para o destino198.51.100.30ou198.51.100.31. - As VMs precisam usar o endereço IP NAT
203.0.113.40para enviar tráfego para qualquer outro destino da Internet.
Essa rede VPC também contém duas sub-redes adicionais na mesma região. Essas VMs precisam usar o endereço IP NAT 203.0.113.10 para enviar o tráfego para qualquer destino.
É possível usar regras NAT neste exemplo, mas são necessários dois gateways NAT porque
Subnet-1 (10.10.10.0/24) tem regras NAT diferentes das outras
sub-redes. Para criar esta configuração, siga estes passos:
- Crie um gateway chamado
Cloud NAT Gateway 1paraSubnet-1com o endereço IP NAT203.0.113.40e adicione as seguintes regras:- Regra NAT 1 em
Cloud NAT Gateway 1: quando o destino for198.51.100.20/30, use203.0.113.20para NAT. - Regra NAT 2 em
Cloud NAT Gateway 1: quando o destino for198.51.100.30ou198.51.100.31, use203.0.113.30para NAT.
- Regra NAT 1 em
- Crie um gateway chamado
Cloud NAT Gateway 2para as outras sub-redes da região e atribua o endereço IP NAT como203.0.113.10. Nenhuma regra NAT é necessária nesta etapa.
Especificações de regras NAT
- O Cloud NAT é compatível com regras baseadas em origem e destino. Cada regra define uma condição com base no endereço de origem ou de destino, mas não em ambos.
- Uma prioridade de regra identifica exclusivamente uma regra NAT, de 0 (prioridade mais alta) a 65.000 (prioridade mais baixa). Duas regras não podem ter a mesma prioridade.
- Cada configuração NAT tem uma regra padrão:
- A regra padrão é aplicada quando nenhuma outra regra NAT corresponde à mesma configuração NAT.
- A prioridade da regra padrão é
65001. - Para regras baseadas em origem e destino, o intervalo CIDR de IP da regra padrão é
0.0.0.0/0. - A regra padrão não se aplica a pacotes encaminhados. Para usar o NAT nesses pacotes, a configuração precisa incluir uma regra correspondente baseada na origem. Para mais informações, consulte Regras com base na origem.
- As regras do Cloud NAT são compatíveis somente quando o valor da opção de alocação
de IP NAT é
MANUAL_ONLY. Todos os endereços IP configurados em uma determinada regra precisam ser do mesmo nível.
Não é possível usar uma combinação de endereços IP de nível Premium e Padrão na mesma regra (incluindo a regra padrão).
Os intervalos de CIDR de IP nas condições de correspondência não podem se sobrepor em regras NAT. No máximo, uma regra pode ser aplicada a um determinado pacote. Se um pacote corresponder a uma regra baseada na origem e no destino, o Cloud NAT vai aplicar a regra com maior prioridade.
Não é possível criar uma regra NAT com
0.0.0.0/0como o intervalo de origem ou destino porque ele é usado pela regra padrão.Os endereços IP NAT entre regras NAT não podem se sobrepor.
As regras precisam ter um endereço IP
ActiveouDrainnão vazio. Se a regra tiver um endereço IPActivevazio, novas conexões que correspondem à regra NAT serão descartadas.As regras NAT não podem ser adicionadas a um gateway NAT que tenha o mapeamento independente de endpoint (EIM) ativado. Não é possível ativar o EIM em um gateway NAT que tenha regras NAT.
Além disso, todas as VMs recebem portas atribuídas a elas a partir do valor das portas mínimas por VM para cada regra do Cloud NAT. Se as portas alocadas a uma VM de uma regra NAT estiverem esgotadas, as novas conexões que correspondem à regra NAT serão descartadas.
Por exemplo, se você configurar 4.096 portas por VM e tiver 16 VMs e 2 regras NAT
(rule1 com 1 endereço IP e rule2 com 2 endereços IP), junto com a regra padrão
(default) com 2 endereços IP, todas as 16 VMs receberão 4.096 portas em cada pacote
de regras NAT. Neste exemplo, não há problemas em default ou rule2 para
todas as VMs, mas rule1 não pode alocar portas para todas as VMs.
Portanto, o tráfego de VMs que precisam passar por rule1 pode ser descartado
e mostrar sinais de estar sem recursos porque o tráfego não usa a
regra padrão.
Linguagem de expressão de regras
As regras NAT são escritas usando a sintaxe da Common Expression Language.
Uma expressão requer dois componentes:
- Atributos que podem ser inspecionados em expressões de regra.
- Operações que podem ser executadas nos atributos como parte de uma expressão.
Por exemplo, a expressão a seguir usa os atributos destination.ip e
198.51.100.0/24 na operação inIpRange(). Nesse caso, a expressão
retornará como verdadeiro se destination.ip estiver dentro do intervalo de endereços IP de 198.51.100.0/24.
inIpRange(destination.ip, '198.51.100.0/24')
As regras NAT são compatíveis apenas com os seguintes atributos e operações:
Atributos
Os atributos representam informações de um pacote de saída, como o endereço IP de origem e de destino.
| Nome do atributo | Descrição |
|---|---|
source.ip |
Endereço IP de origem do pacote |
destination.ip |
Endereço IP de destino do pacote |
Operações
A referência a seguir descreve os operadores que podem ser usados com atributos para definir expressões de regra.
| Operação | Descrição |
|---|---|
inIpRange(string, string) -> bool |
inIpRange(x, y) retorna true se o intervalo IP CIDR y contiver o endereço IP x. |
|| |
Operador lógico. x || y retorna true se x ou y for true. |
== |
Operador de igualdade. x == y retorna true se x for igual a y. |
Exemplos de expressões
É possível fazer a correspondência de pacotes com base no endereço de origem ou de destino, mas não em ambos.
Exemplos de correspondência baseada em fontes
Corresponda a pacotes com o endereço IP de origem 10.0.0.25:
"source.ip == '10.0.0.25'"
Faça a correspondência de pacotes com o endereço IP de origem 10.0.0.25 ou 10.0.0.26:
"source.ip == '10.0.0.25' || source.ip == '10.0.0.26'"
Corresponda a pacotes com o intervalo de endereços IP de origem 10.0.2.0/24:
"inIpRange(source.ip, '10.0.2.0/24')"
Faça a correspondência de pacotes com o endereço IP de origem 10.0.0.25 ou o intervalo de endereços IP de origem 10.0.2.0/24:
"source.ip == '10.0.0.25' || inIpRange(source.ip, '10.0.2.0/24')"
Exemplos de correspondência com base no destino
Corresponder pacotes com o endereço IP de destino 198.51.100.20:
"destination.ip == '198.51.100.20'"
Corresponda a pacotes com o endereço IP de destino 198.51.100.20 ou 198.51.100.21:
"destination.ip == '198.51.100.20' || destination.ip == '198.51.100.21'"
Corresponda a pacotes com o intervalo de endereços IP de destino 198.51.100.10/30:
"inIpRange(destination.ip, '198.51.100.10/30')"
Corresponda a pacotes com o endereço IP de destino 198.51.100.20 ou o intervalo de endereços IP de destino 198.51.100.10/30:
"destination.ip == '198.51.100.20' || inIpRange(destination.ip, '198.51.100.10/30')"
A seguir
- Saiba como configurar regras NAT.