Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Determinados cenários exigem que máquinas virtuais ou instâncias de computação tenham conectividade de saída para a Internet. Os IPs de frontend de um balanceador de carga público podem ser usados para fornecer conectividade de saída à Internet para instâncias de back-end. Essa configuração usa a conversão de endereços de rede de origem (SNAT) para traduzir o IP privado da máquina virtual para o endereço IP público do balanceador de carga. A SNAT mapeia o endereço IP do back-end para o endereço IP público do balanceador de carga. A SNAT impede que origens externas tenham um endereço direto para as instâncias de back-end.
Escolha um método de conectividade de saída
Escolha um método explícito de conectividade de saída antes de implementar uma carga de trabalho:
- Use o Azure NAT Gateway para conectividade escalável e apenas de saída a partir de uma subrede.
- Use um IP público ao nível de instância quando uma máquina virtual precisa do seu próprio endereço público.
- Use regras de saída quando as instâncias de backend usem um IP frontend de balanceador de carga para conectividade de saída.
- Evite o acesso de saída predefinido para cargas de trabalho em produção. As novas redes virtuais usam sub-redes privadas por defeito.
Métodos de conectividade outbound do Azure
Os seguintes métodos são os mais usados no Azure para permitir a conectividade de saída, listados por ordem de prioridade quando são usados múltiplos métodos:
| # | Método | Tipo de atribuição portuária | Grau de produção? | Avaliação |
|---|---|---|---|---|
| 1 | Associar o Azure NAT Gateway à sub-rede | Dinâmico, explícito | Sim | Melhor |
| 2 | Atribuir um IP público à máquina virtual | Estático, explícito | Sim | OK |
| 3 | Use o(s) endereço(s) IP de front-end de um balanceador de carga para saída por meio de regras de saída | Estático, explícito | Sim, mas não em escala | OK |
| 4 | Utilizar o(s) endereço(s) IP de front-end de um balanceador de carga para saída sem regras de saída | Estático, implícito | Não | Pior |
| 5 | Acesso de saída padrão | Implícito | Não | Pior |
1. Associar Azure NAT Gateway à subnet
O Azure NAT Gateway simplifica a conectividade de saída à Internet para redes virtuais. Quando o configuras numa sub-rede, toda a conectividade de saída usa os endereços IP públicos estáticos especificados. Pode ter conectividade de saída sem um balanceador de carga ou endereços IP públicos diretamente ligados às máquinas virtuais. O NAT Gateway é totalmente gerenciado e altamente resiliente.
Usar o NAT Gateway é o melhor método para conectividade de saída. O NAT Gateway é altamente extensível, fiável e não tem as mesmas preocupações com o esgotamento das portas do SNAT.
O NAT Gateway tem prioridade sobre outros métodos de conectividade de saída, incluindo um balanceador de carga, endereços IP públicos ao nível da instância e o Azure Firewall.
Para mais informações sobre Azure NAT Gateway, consulte O que é Azure NAT Gateway. Para obter detalhes sobre como o comportamento do SNAT funciona com o NAT Gateway, consulte SNAT com NAT Gateway.
2. Atribua um IP público à máquina virtual
| Associações | Método | Protocolos IP |
|---|---|---|
| IP público na NIC da VM | SNAT (Source Network Address Translation) não é usado. |
TCP (Protocolo de Controle de Transmissão) UDP (Protocolo de Datagrama do Utilizador) ICMP (Protocolo de Mensagens de Controle da Internet) ESP (Carga Útil de Segurança Encapsulada) |
O tráfego retorna ao cliente solicitante a partir do endereço IP público da máquina virtual (IP de nível de instância).
O Azure utiliza o IP público atribuído à configuração de IP da NIC da instância para todos os fluxos de saída. A instância tem todas as portas efémeras disponíveis. Não importa se a VM tem balanceamento de carga ou não. Este cenário tem precedência sobre os outros, exceto para o NAT Gateway.
Um IP público atribuído a uma VM é uma relação 1:1 (em vez de 1: muitos) e implementado como um NAT 1:1 sem estado.
3. Use o(s) endereço(s) IP frontend de um balanceador de carga para saída via regras de saída
As regras de saída permitem que você defina explicitamente SNAT (conversão de endereços de rede de origem) para um balanceador de carga público SKU padrão. Esta configuração permite usar o IP público ou IPs do seu balanceador de carga para a conectividade de saída das instâncias de backend.
Esta configuração permite:
Mascaramento de IP
Simplificando suas listas de permissões
Reduz o número de recursos IP públicos para implantação
Com as regras de saída, você tem controle declarativo total sobre a conectividade de saída com a Internet. As regras de saída permitem dimensionar e ajustar essa capacidade às suas necessidades específicas por meio da alocação manual de portas. A alocação manual da porta SNAT com base no tamanho do pool de back-end e no número de frontendIPConfigurations pode ajudar a evitar o esgotamento de SNAT.
Pode atribuir manualmente portas SNAT por "portas por instância" ou "número máximo de instâncias de backend". Se tiver máquinas virtuais no plano de fundo, recomenda-se que atribua as portas utilizando "portas por instância" para uma utilização máxima das portas SNAT.
Calcule o número de portas por instância da seguinte forma:
Número de IPs de front-end * 64K / Número de instâncias de back-end
Se tiveres Conjuntos de Dimensionamento de Máquinas Virtuais no backend, recomenda-se alocar portas pelo "número máximo de instâncias do backend". Se forem adicionadas mais VMs ao backend do que as portas SNAT restantes permitidas, a escalabilidade para fora dos Conjuntos de Dimensionamento de Máquinas Virtuais pode ser bloqueada, ou as novas VMs não receberão portas SNAT suficientes.
Nota
Quando vários endereços IP de front-end são configurados usando regras de saída, as conexões de saída podem originar-se de qualquer um dos endereços IP de front-end configurados na instância de back-end. Não recomendamos a criação de dependências nas quais o IP frontend possa ser selecionado para conexões.
Para obter mais informações sobre Regras de saída, consulte Regras de saída.
4. Utilize o(s) endereço(s) IP do frontend de um balanceador de carga para saída sem regras de saída
Esta opção é semelhante à anterior, exceto quando nenhuma regra de saída é criada. Nesse caso, o(s) frontend(s) do balanceador de carga ainda são usados para saída, mas isso é feito implicitamente sem regras que especifiquem qual frontend seria usado. Não usar regras de saída também diminui a escalabilidade de saída, pois a conectividade de saída implícita tem um número fixo de portas SNAT por endereço IP frontend, o que pode levar à exaustão da porta em cenários de alto tráfego.
5. Acesso de saída padrão
No Azure, máquinas virtuais criadas numa rede virtual sem uma conectividade de saída explícita definida são atribuídas a um endereço IP público de saída por defeito. Este endereço IP permite a conectividade de saída dos recursos para a Internet. Esse acesso é conhecido como acesso de saída padrão. Este método de acesso não é recomendado , pois é inseguro e os endereços IP estão sujeitos a alterações.
Importante
Em 31 de março de 2026, as novas redes virtuais passam, por predefinição, a utilizar sub-redes privadas. Para obter mais informações, veja o anúncio oficial. Use uma das formas explícitas de conectividade, conforme mostrado nas opções 1-3 acima.
Portas SNAT do Balanceador de Carga do Azure
As portas geram identificadores únicos que mantêm fluxos distintos. A Internet usa cinco-tupla para fornecer esta distinção.
Se usares uma porta para ligações de entrada, ela tem um ouvinte para pedidos de ligação de entrada nessa porta. Essa porta não pode ser usada para conexões de saída. Para estabelecer uma ligação de saída, utilize-se uma porta efémera para fornecer ao destino uma porta onde comunicar e manter um fluxo de tráfego distinto. Quando essas portas efêmeras são usadas para SNAT, elas são chamadas de portas SNAT.
Por definição, cada endereço IP tem 65.535 portas. Cada porta pode ser usada tanto para ligações de entrada como de saída para TCP (Transmission Control Protocol) e UDP (User Datagram Protocol). Quando adiciona um endereço IP público como IP frontend a um balanceador de carga, 64.000 portas são elegíveis para SNAT.
Cada porta usada numa regra NAT de entrada ou balanceamento de carga consome um intervalo de oito portas das 64.000 portas SNAT disponíveis. Esse uso reduz o número de portas elegíveis para SNAT, se o mesmo IP frontend for usado para conectividade para saída. Se as portas consumidas pelas regras NAT de entrada ou balanceamento de carga estiverem no mesmo bloco de oito portas consumidas por outra regra, as regras não exigirão portas extras.
Nota
Se precisar de se ligar a algum serviço Azure PaaS suportado, como Armazenamento do Azure, SQL do Azure ou Azure Cosmos DB, use o Azure Private Link para evitar o SNAT por completo. O Azure Private Link envia tráfego da sua rede virtual para os serviços do Azure através da rede backbone do Azure em vez de através da internet.
Private Link é a opção recomendada em relação aos endpoints de serviço para acesso privado a serviços alojados no Azure. Para mais informações sobre a diferença entre endpoints de Private Link e endpoints de serviço, consulte Compare Endpoints Privados e Endpoints de Serviço.
Comportamento padrão do SNAT do Balanceador de Carga do Azure
Quando uma VM cria um fluxo de saída, o Azure traduz o endereço IP de origem para um endereço IP efémero. O Azure realiza esta tradução através do SNAT.
Se usar SNAT sem regras de saída através de um balanceador de carga público, o sistema pré-aloca portas SNAT conforme descrito na seguinte tabela de alocação de portas SNAT por defeito:
Tabela de alocação de porta padrão
Quando ativas a alocação de portas por defeito, o sistema aloca portas SNAT com base no tamanho do pool do backend. Cada backend recebe o número de portas definidas pela tabela, por IP frontend, até um máximo de 1.024 portas. Não utilize a alocação de portas predefinida para cargas de trabalho de produção, uma vez que atribui um número reduzido de portas a cada instância de back-end e aumenta o risco de esgotamento das portas SNAT. Em vez disso, considere usar o Azure NAT Gateway ou alocar manualmente portas nas regras de saída do seu balanceador de carga.
Pode ativar a alocação de portas por defeito de várias formas:
- Configure a regra de balanceamento de carga com
disableOutboundSnatdefinido comofalse, ou selecione a opção de alocação de portas predefinida na regra do balanceador de carga no portal do Azure. - Configure uma regra de saída, mas defina a propriedade
allocatedOutboundPortscomo0, ou selecione Ativar a alocação de portas predefinida no portal do Azure.
Por exemplo, com 100 VMs num pool backend e apenas um IP frontend, cada VM recebe 512 portas. Se adicionares um segundo IP frontend, cada VM recebe mais 512 portas. Esta alocação significa que cada VM recebe um total de 1.024 portas. Como resultado, adicionar um terceiro IP frontend não aumenta o número de portas SNAT alocadas para além de 1.024 portas.
Regra geral, pode calcular o número de portas SNAT disponibilizadas quando é aplicada a alocação de portas predefinida da seguinte forma: MIN(# of default SNAT ports provided based on pool size * number of frontend IPs associated with the pool, 1024).
A tabela a seguir mostra as pré-alocações de porta SNAT para um único IP frontend, dependendo do tamanho do pool de back-end:
| Tamanho do pool (instâncias de VM) | Portas SNAT padrão |
|---|---|
| 1-50 | 1,024 |
| 51-100 | 512 |
| 101-200 | 256 |
| 201-400 | 128 |
| 401-800 | 64 |
| 801-1,000 | 32 |
Esgotamento de portas
Cada conexão com o mesmo IP de destino e porta de destino usa uma porta SNAT. Essa conexão mantém um fluxo de tráfego distinto da instância de back-end ou cliente para um servidor. Esse processo dá ao servidor uma porta distinta para endereçar o tráfego. Sem esse processo, a máquina cliente não sabe de qual fluxo um pacote faz parte.
Imagine ter vários navegadores indo para https://www.microsoft.com, que é:
IP de destino = 23.53.254.142
Porta de destino = 443
Protocolo = TCP
Sem portas SNAT para o tráfego de retorno, o cliente não tem como separar um resultado de consulta de outro.
As conexões de saída podem estourar. Uma instância de back-end pode receber portas insuficientes. Utilize a funcionalidade de reutilização de conexão na sua aplicação. Sem reutilização de conexão, o risco de exaustão da porta SNAT aumenta.
Para mais informações sobre o agrupamento de ligações com o Serviço de Aplicações do Azure, consulte Resolução de problemas de erros intermitentes de ligação de saída no Serviço de Aplicações do Azure.
Novas conexões de saída para um IP de destino falham quando ocorre o esgotamento da porta. As conexões são bem-sucedidas quando uma porta fica disponível. Esse esgotamento ocorre quando as 64.000 portas de um endereço IP são distribuídas por muitas instâncias de back-end. Para orientações sobre a mitigação do esgotamento das portas SNAT, veja Suporte e resolução de problemas para Balanceador de Carga do Azure.
Reutilização de portas
No TCP, cada conexão ativa requer um tuplo de origem traduzido distinto para um tuplo de destino específico, que consiste no endereço IP de destino e na porta de destino. Pode reutilizar uma porta SNAT para uma ligação a um endereço IP de destino diferente ou a uma porta de destino diferente. Não podes reutilizá-lo para outra ligação ativa proveniente da mesma instância de backend para o mesmo endereço IP e porta de destino.
Para conexões UDP, o balanceador de carga usa um algoritmo NAT de cone restrito a portas, que consome uma porta SNAT por IP de destino, independentemente da porta de destino.
Podes reutilizar portas individuais para um número ilimitado de ligações onde a reutilização é permitida (quando o IP ou porta de destino é diferente).
No exemplo da tabela seguinte, uma instância backend com IP privado 10.0.0.1 faz ligações TCP aos IPs de destino 23.53.254.142 e 26.108.254.155, enquanto o balanceador de carga está configurado com o endereço IP frontend 192.0.2.0. Como os IPs de destino são diferentes, a mesma porta SNAT pode ser reutilizada para várias conexões.
| Flow | Tupla de origem | Tupla de origem após SNAT | Tupla de destino |
|---|---|---|---|
| 1 | 10.0.0.1:80 | 192.0.2.0:1 | 23.53.254.142:80 |
| 2 | 10.0.0.1:80 | 192.0.2.0:1 | 26.108.254.155:80 |
Restrições
As seguintes restrições aplicam-se ao Balanceador de Carga do Azure SNAT. Restrições individuais identificam quando se aplicam apenas a TCP, UDP, regras de saída ou configurações públicas de IP ao nível da instância.
Quando uma ligação está inativa sem novos pacotes a serem enviados, as portas são libertadas após 4 a 120 minutos.
Pode configurar este limiar através das regras de saída.
Cada endereço IP fornece 64.000 portas que pode usar para SNAT.
Cada porta pode ser usada tanto para ligações TCP como UDP a um endereço IP de destino.
Precisas de uma porta SNAT UDP, quer a porta de destino seja única ou não. Para cada conexão UDP com um IP de destino, uma porta SNAT UDP é usada.
Uma porta TCP SNAT pode ser usada para múltiplas ligações ao mesmo IP de destino, desde que as portas de destino sejam diferentes.
O esgotamento de SNAT ocorre quando uma instância de backend fica sem portas SNAT específicas. Um balanceador de carga ainda pode ter portas SNAT não utilizadas. Se as portas SNAT usadas por uma instância de backend excederem as portas SNAT atribuídas, não pode estabelecer novas ligações de saída.
O sistema lança pacotes fragmentados, a menos que a saída seja feita através de um endereço IP público ao nível de instância na NIC da VM.
As regras de saída não suportam configurações IPv4 secundárias de uma interface de rede. Para conectividade de saída em configurações IPv4 secundárias, anexe endereços IP públicos ao nível da instância ou use o Azure NAT Gateway em vez disso.
Próximos passos
- Suporte e resolução de problemas para Balanceador de Carga do Azure
- Analise as métricas do SNAT e familiarize-se com a maneira correta de filtrá-las, dividi-las e visualizá-las.
- Aprenda como migrar o seu método de conectividade de saída existente para o Azure NAT Gateway.