SNAT (Tradução de Endereço de Rede de Origem) com o Gateway NAT do Azure

A Tradução de Endereço de Rede de Origem (SNAT) permite que o tráfego de uma rede virtual privada se conecte à Internet enquanto permanece totalmente privado. O SNAT regrava o IP de origem e a porta do pacote de origem em uma combinação pública de IP e porta. As portas são usadas como identificadores exclusivos para distinguir conexões diferentes umas das outras. A internet usa um hash de cinco tuplas (protocolo, IP/porta de origem, IP/porta de destino) para fornecer essa distinção.

O SNAT também permite que várias instâncias privadas dentro de uma rede virtual usem o mesmo endereço IP público único ou conjunto de endereços IP (prefixo) para se conectar à Internet.

O gateway NAT permite um recurso SNAT muitos-para-um. Muitas instâncias privadas em uma sub-rede podem SNAT para um endereço IP público anexado ao gateway NAT, a fim de se conectar à Internet. Quando o gateway NAT faz várias conexões com o mesmo ponto de extremidade de destino, cada nova conexão usa uma porta SNAT diferente para que as conexões possam ser distinguidas umas das outras.

O esgotamento da porta SNAT ocorre quando um ponto de extremidade de origem ficou sem portas SNAT disponíveis para diferenciar entre novas conexões. Quando ocorre o esgotamento da porta SNAT, as conexões falham.

Dimensionar SNAT para gateway NAT

O dimensionamento do gateway NAT é principalmente uma função de gerenciar o inventário de portas SNAT compartilhado e disponível.

O inventário de portas SNAT é fornecido pelos endereços IP públicos, prefixos IP públicos ou ambos anexados ao gateway NAT. O inventário de portas SNAT é disponibilizado sob demanda para todas as instâncias dentro de uma sub-rede conectada ao gateway NAT. À medida que a carga de trabalho das instâncias privadas de uma sub-rede é dimensionada, o gateway NAT aloca portas SNAT conforme necessário.

Quando várias sub-redes dentro de uma rede virtual são conectadas ao mesmo recurso de gateway NAT, o inventário de porta SNAT fornecido pelo gateway NAT é compartilhado em todas as sub-redes.

Um único gateway NAT pode escalar até 16 endereços IP. Cada endereço IP público do gateway NAT fornece 64.512 portas SNAT para fazer conexões de saída. O gateway NAT pode ser dimensionado para mais de 1 milhão de portas SNAT. TCP e UDP são inventários de porta SNAT separados e não estão relacionados ao gateway NAT.

O gateway de NAT aloca dinamicamente as portas SNAT

O gateway NAT aloca dinamicamente portas SNAT nos recursos privados de uma sub-rede, como máquinas virtuais. Todas as portas SNAT disponíveis são usadas sob demanda por qualquer máquina virtual em sub-redes configuradas com gateway NAT.

Diagrama de alocação de porta SNAT.

Figura: Alocação de porta SNAT

A pré-alocação de portas SNAT para cada máquina virtual é necessária para outros métodos SNAT. Essa pré-alocação de portas SNAT pode causar o esgotamento da porta SNAT em algumas máquinas virtuais, enquanto outras ainda têm portas SNAT disponíveis para conexão de saída.

Com o gateway NAT, a pré-alocação de portas SNAT não é necessária, o que significa que as portas SNAT não são deixadas sem uso por máquinas virtuais que não precisam ativamente delas.

Depois que uma porta SNAT é lançada, ela fica disponível para uso por qualquer máquina virtual em sub-redes configuradas com gateway NAT. A alocação sob demanda permite que cargas de trabalho dinâmicas e divergentes em sub-redes usem portas SNAT conforme necessário. Enquanto as portas SNAT estiverem disponíveis, os fluxos SNAT serão bem-sucedidos.

Diagrama de exaustão da porta SNAT.

Figura: Exaustão da porta SNAT

Seleção e reutilização de portas SNAT do gateway NAT

O gateway NAT seleciona uma porta SNAT aleatoriamente fora do inventário disponível de portas para fazer novas conexões de saída. Se o gateway NAT não encontrar nenhuma porta SNAT disponível, ele reutilizará uma porta SNAT. A mesma porta SNAT pode ser usada para se conectar a vários destinos diferentes ao mesmo tempo.

Uma porta SNAT pode ser reutilizada para se conectar ao mesmo ponto de extremidade de destino. Antes que a porta seja reutilizada, o gateway NAT coloca um temporizador de reutilização de porta SNAT para resfriamento na porta após o fechamento da conexão.

O temporizador de reutilização de porta SNAT ajuda a evitar que as portas sejam selecionadas muito rapidamente para se conectar ao mesmo destino. Esse processo é útil quando os pontos de extremidade de destino têm firewalls ou outros serviços configurados que colocam um temporizador de resfriamento nas portas de origem. Os temporizadores de reutilização da porta SNAT variam com base em como um fluxo de conexão foi fechado. Para saber mais, consulte Temporizadores de reutilização de portas.

Diagrama de reutilização da porta SNAT.

Figura: Reutilização da porta SNAT

Exemplo de fluxos SNAT para gateway NAT

Muitos para um SNAT com gateway NAT

O gateway NAT fornece uma configuração de muitos para um na qual várias instâncias privadas dentro de uma sub-rede configurada de gateway NAT podem usar o mesmo endereço IP público para se conectar de saída.

Na tabela a seguir, duas máquinas virtuais diferentes (10.0.0.1 e 10.2.0.1) fazem conexões com o https://microsoft.com IP de destino 23.53.254.142. Quando o gateway NAT é configurado com o endereço IP público 65.52.1.1, os IPs de origem de cada máquina virtual são convertidos no endereço IP público do gateway NAT e em uma porta SNAT:

Fluxo Tupla de origem Tupla de origem após SNAT Tupla de destino
1 10.0.0.1:4283 65.52.1.1:1234 23.53.254.142:80
2 10.0.0.1:4284 65.52.1.1:1235 23.53.254.142:80
3 10.2.0.1:5768 65.52.1.1:1236 23.53.254.142:80

Mascaramento de IP ou mascaramento de porta é o ato de substituir o IP privado e a porta pelo IP e porta públicos antes de se conectar à Internet. Vários recursos privados podem ser mascarados atrás do mesmo IP público do gateway NAT.

O gateway NAT reutiliza uma porta SNAT para se conectar a um novo destino

Como mencionado anteriormente, o gateway NAT pode reutilizar a mesma porta SNAT para se conectar simultaneamente a um novo ponto de extremidade de destino. Na tabela a seguir, o gateway NAT converte o fluxo 4 para uma porta SNAT que já está em uso para outros destinos (consulte o fluxo 1 da tabela anterior).

Fluxo Tupla de origem Tupla de origem após SNAT Tupla de destino
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80

Porta SNAT do gateway NAT resfriada para reutilização no mesmo destino

Em um cenário em que o gateway NAT reutiliza uma porta SNAT para fazer novas conexões com o mesmo ponto de extremidade de destino, a porta SNAT é colocada pela primeira vez em uma fase de reutilização da porta SNAT para resfriamento. O período de reutilização da porta SNAT ajuda a garantir que as portas SNAT não sejam reutilizadas muito rapidamente ao se conectar ao mesmo destino. Essa reutilização da porta SNAT para resfriamento no gateway NAT é benéfica em cenários em que o ponto de extremidade de destino tem um firewall com seu próprio temporizador de porta de origem para resfriamento no local.

Para demonstrar esse comportamento de resfriamento de reutilização da porta SNAT, vamos examinar mais de perto o fluxo 4 da tabela anterior. O Flow 4 estava se conectando a um ponto de extremidade de destino encabeçado por um firewall com um temporizador de resfriamento da porta de origem de 20 segundos.

Fluxo Tupla de origem Tupla de origem após SNAT Tupla de destino A conexão do tipo de pacote é fechada com Temporizador de firewall de destino para resfriamento da porta de origem
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80 FINO TCP 20 segundos

O fluxo de conexão 4 é fechado com um pacote TCP FIN. Como a conexão é fechada com um pacote TCP FIN, o gateway NAT coloca a porta SNAT 1234 em resfriamento por 65 segundos antes que ela possa ser reutilizada. Como a porta 1234 está em resfriamento por mais tempo do que a duração do temporizador de resfriamento da porta de origem do firewall de 20 segundos, o fluxo de conexão 5 prossegue com a reutilização da porta SNAT 1234 sem problemas.

Fluxo Tupla de origem Tupla de origem após SNAT Tupla de destino
5 10.2.0.1:5769 65.52.1.1:1234 26.108.254.155:80

Lembre-se de que o gateway NAT coloca as portas SNAT sob diferentes temporizadores de resfriamento de reutilização de porta SNAT, dependendo de como a conexão anterior fechou. Para obter mais informações sobre temporizadores de reutilização de porta SNAT, consulte Temporizadores de reutilização de porta.

Não dependa da maneira específica como as portas de origem são atribuídas nos exemplos acima. Os precedentes são apenas ilustrações dos conceitos fundamentais.