Tradução de Endereço de Rede de Origem (SNAT) com Gateway da 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. SNAT reescreve o IP de origem e a porta do pacote de origem para uma combinação de IP e porta públicos. 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 em uma rede virtual usem o mesmo endereço IP público 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 fazer SNAT para um endereço IP público anexado ao Gateway da NAT para se conectar à Internet. Quando o gateway NAT faz diversas 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 diferenciadas umas das outras.

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

Escalar SNAT para gateway NAT

O dimensionamento do gateway da NAT é principalmente uma função de gerenciamento do inventário de portas de SNAT compartilhadas e disponíveis.

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 anexada ao gateway NAT. À medida que a carga de trabalho das instâncias privadas de uma sub-rede aumenta, o gateway NAT aloca portas SNAT conforme necessário.

Quando várias sub-redes dentro de uma rede virtual estão ligadas ao mesmo recurso de gateway NAT, o inventário de portas SNAT fornecido pelo Gateway da NAT é partilhado em todas as sub-redes.

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

O gateway da NAT aloca dinamicamente portas de SNAT

O Gateway da 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 da NAT.

Diagrama da alocação da porta SNAT.

Figura: alocação da 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 esgotamento de portas 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 delas ativamente.

Depois que uma porta SNAT é liberada, 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 de SNAT como precisarem. Enquanto as portas SNAT estiverem disponíveis, os fluxos SNAT serão bem-sucedidos.

Diagrama de esgotamento da porta SNAT.

Figura: esgotamento da porta SNAT

Seleção e reutilização da porta SNAT do gateway NAT

O gateway NAT seleciona uma porta SNAT aleatoriamente no inventário de portas disponíveis 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 conectar vários destinos diferentes ao mesmo tempo.

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

O temporizador de reutilização da porta SNAT ajuda a evitar que as portas sejam selecionadas muito rapidamente para conexão ao mesmo destino. Esse processo é útil quando os pontos finais de destino têm firewalls ou outros serviços configurados que colocam um temporizador de arrefecimento 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, confira Temporizadores de reutilização de porta.

Diagrama do reuso da porta SNAT.

Figura: reuso da porta SNAT

Exemplo de fluxos SNAT para gateway da NAT

Muitos para um SNAT com gateway NAT

O gateway NAT fornece uma configuração muitos para um na qual várias instâncias privadas dentro de uma sub-rede configurada pelo 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 da NAT é configurado com o endereço IP público 65.52.1.1, todos os IPs de origem de máquina virtual são convertidos em endereço IP público do Gateway da NAT e uma porta SNAT:

Flow Tupla de origem Tupla de origem após a 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 e a porta privados pelo IP e porta públicos antes de se conectar à Internet. Vários recursos privados podem ser mascarados por trás do mesmo IP público do gateway da NAT.

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

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

Flow Tupla de origem Tupla de origem após a 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 esfria para reutilização no mesmo destino

Num cenário em que o gateway NAT reutiliza uma porta SNAT para fazer novas ligações ao mesmo ponto final de destino, a porta SNAT é primeiro colocada numa fase de reutilização da porta SNAT para arrefecimento. O período de reutilização da porta SNAT ajuda a garantir que as portas SNAT não sejam reutilizadas muito rapidamente ao conectar-se 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 da reutilização da porta SNAT, vamos examinar mais de perto o fluxo 4 da tabela anterior. O Fluxo 4 estava se conectando a um ponto de extremidade de destino frontado por um firewall com um temporizador de resfriamento da porta de origem de 20 segundos.

Flow Tupla de origem Tupla de origem após a SNAT Tupla de destino A conexão do tipo 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 TCP FIN 20 segundos

O fluxo de conexão 4 fecha 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 de poder 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.

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

Tenha em mente que o gateway NAT coloca as portas SNAT em diferentes temporizadores de resfriamento de reutilização da porta SNAT, dependendo de como a conexão anterior foi fechada. Para obter mais informações sobre temporizadores de reutilização de porta SNAT, veja Temporizadores de reutilização de porta.

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