Pular para o conteúdo principal

Laboratório Técnico: Create and configure explicit outbound rules, including source network address translation (SNAT)

Questões

Questão 1 — Múltipla Escolha

Uma equipe de plataforma precisa garantir que todas as VMs em uma subnet específica usem um endereço IP público fixo e previsível ao acessar a internet. O ambiente já possui um Azure Load Balancer público associado ao backend pool dessas VMs, mas nenhuma regra de saída foi configurada explicitamente.

Qual é o comportamento padrão de SNAT nesse cenário e qual é o risco associado?

A. O Azure atribui automaticamente IPs públicos dedicados por VM, sem risco de esgotamento de portas.

B. O Load Balancer usa o IP de frontend para SNAT de forma automática, com um número fixo e não configurável de portas SNAT por instância.

C. O Azure aplica SNAT via um IP público gerenciado pela plataforma (default outbound access), que será desativado para novos recursos a partir de setembro de 2025, tornando a conectividade de saída imprevisível sem configuração explícita.

D. Sem uma regra de saída explícita, nenhuma conectividade de saída é possível quando há um Load Balancer público associado.


Questão 2 — Cenário Técnico

Um engenheiro configura a seguinte regra de saída em um Load Balancer Standard público:

{
"name": "outbound-rule-prod",
"protocol": "Tcp",
"frontendIPConfigurations": [
{ "id": "/subscriptions/.../frontendIPConfigurations/pip-prod" }
],
"backendAddressPool": {
"id": "/subscriptions/.../backendAddressPools/pool-prod"
},
"allocatedOutboundPorts": 0,
"enableTcpReset": true,
"idleTimeoutInMinutes": 4
}

Após a implantação, o número de portas SNAT por instância é menor do que o esperado para suportar conexões simultâneas em carga alta. Qual é a causa direta desse comportamento?

A. O protocolo Tcp limita a alocação de portas SNAT a um subconjunto do total disponível; seria necessário usar All.

B. O valor 0 em allocatedOutboundPorts ativa a alocação automática baseada no tamanho do backend pool, que pode resultar em menos portas por instância conforme o pool cresce.

C. A propriedade enableTcpReset interfere na contagem de portas disponíveis ao liberar portas prematuramente.

D. O idleTimeoutInMinutes com valor 4 é o mínimo permitido e reduz o reaproveitamento de portas em conexões de curta duração.


Questão 3 — Verdadeiro ou Falso

Um Azure NAT Gateway associado a uma subnet tem precedência sobre as regras de saída de um Load Balancer Standard para o tráfego originado nessa subnet, mesmo que as VMs estejam no backend pool do Load Balancer.

Verdadeiro ou Falso?


Questão 4 — Cenário Técnico

Uma aplicação em produção começa a apresentar falhas intermitentes de conexão TCP para endpoints externos. O time de redes identifica erros de SNAT exhaustion nos logs. O ambiente usa um Load Balancer Standard público com uma regra de saída explícita configurada com allocatedOutboundPorts: 1024 e um único IP de frontend. O backend pool tem 60 instâncias.

Qual abordagem resolve o problema de forma mais direta, sem redesenhar a arquitetura?

A. Aumentar o idleTimeoutInMinutes para o valor máximo de 66 minutos, reduzindo a rotatividade de portas.

B. Adicionar mais IPs públicos ao frontend do Load Balancer, aumentando o total de portas SNAT disponíveis para distribuição entre as instâncias.

C. Substituir o Load Balancer Standard por um Load Balancer Basic, que possui maior limite de portas SNAT por padrão.

D. Habilitar enableTcpReset na regra de saída existente, o que libera portas SNAT imediatamente ao encerrar conexões ociosas.


Questão 5 — Múltipla Escolha

Ao projetar regras de saída explícitas em um Load Balancer Standard, qual afirmação descreve corretamente a relação entre regras de saída e regras de balanceamento de carga (inbound)?

A. Uma regra de balanceamento de carga com disableOutboundSnat: false bloqueia qualquer regra de saída explícita configurada para o mesmo backend pool.

B. Para que uma regra de saída explícita funcione de forma isolada, a propriedade disableOutboundSnat das regras de balanceamento de carga associadas ao mesmo backend pool deve ser definida como true.

C. Regras de saída e regras de balanceamento de carga são completamente independentes e nunca interagem, independentemente das configurações.

D. A propriedade disableOutboundSnat só é relevante quando o Load Balancer possui mais de um IP de frontend configurado.


Gabarito e Explicações

Gabarito — Questão 1

Resposta: C

O default outbound access é o mecanismo pelo qual o Azure fornece conectividade de saída implícita para VMs sem IP público dedicado ou NAT Gateway configurado. Esse comportamento usa IPs gerenciados pela plataforma, que não são fixos nem previsíveis. A Microsoft anunciou a descontinuação desse acesso padrão para recursos criados após setembro de 2025, tornando obrigatória a configuração explícita de saída para garantir conectividade.

A alternativa B descreve parcialmente o comportamento real do Load Balancer com SNAT automático, mas erra ao afirmar que a alocação é "não configurável". A alternativa D é incorreta: quando há um Load Balancer público associado, o SNAT automático via IP de frontend ocorre, não há bloqueio total. A alternativa A nunca descreve o comportamento real do Azure.


Gabarito — Questão 2

Resposta: B

Quando allocatedOutboundPorts é definido como 0, o Load Balancer utiliza a alocação automática de portas SNAT, cujo cálculo é inversamente proporcional ao tamanho do backend pool. À medida que o número de instâncias cresce, o número de portas por instância diminui. Para workloads com alto volume de conexões simultâneas, a alocação explícita (por exemplo, 1024 ou 2048 portas) é preferível para garantir previsibilidade.

A alternativa A é incorreta: o protocolo Tcp não reduz a alocação de portas; usar All inclui UDP e ICMP, mas não aumenta o total de portas TCP. A alternativa C é incorreta: enableTcpReset envia um pacote RST ao encerrar conexões ociosas, melhorando o reaproveitamento de portas, não reduzindo a contagem disponível. A alternativa D confunde timeout com alocação de portas.


Gabarito — Questão 3

Resposta: Verdadeiro

O Azure NAT Gateway tem precedência sobre qualquer outro mecanismo de SNAT quando associado diretamente a uma subnet. Isso inclui regras de saída de Load Balancer e o default outbound access. Mesmo que as VMs da subnet estejam no backend pool de um Load Balancer Standard com regras de saída configuradas, o tráfego de saída será roteado pelo NAT Gateway. Esse comportamento é determinístico e documentado pela Microsoft, tornando o NAT Gateway a solução recomendada para SNAT previsível em escala, pois oferece IPs fixos, pool de portas maior e sem risco de conflito com configurações de inbound.


Gabarito — Questão 4

Resposta: B

Cada IP público adicionado ao frontend de um Load Balancer Standard contribui com 64.512 portas SNAT adicionais para o pool total disponível. Esse pool é então distribuído entre as instâncias do backend. Com 60 instâncias e apenas 1 IP de frontend, o total disponível é insuficiente para a carga. Adicionar IPs de frontend é a forma mais direta de escalar a capacidade de SNAT sem redesenhar a arquitetura.

A alternativa A é contraintuitiva: aumentar o idleTimeoutInMinutes prolonga o tempo que cada porta permanece reservada, o que piora o esgotamento em cenários de alta rotatividade de conexões. A alternativa C é incorreta: o Load Balancer Basic não é uma evolução em capacidade de SNAT e não deve ser usado em ambientes de produção. A alternativa D descreve um benefício real do enableTcpReset, mas ele apenas melhora o reaproveitamento de portas em conexões já encerradas; não resolve um esgotamento estrutural causado por volume insuficiente de portas alocadas.


Gabarito — Questão 5

Resposta: B

Por padrão, quando uma regra de balanceamento de carga está associada a um backend pool, o Load Balancer também usa o IP de frontend para SNAT automático de saída (disableOutboundSnat: false). Se uma regra de saída explícita for criada para o mesmo backend pool sem desabilitar esse comportamento, pode haver conflito ou comportamento imprevisível na seleção do IP de saída. Definir disableOutboundSnat: true na regra de balanceamento de carga garante que apenas a regra de saída explícita controle o tráfego de saída.

A alternativa A inverte a lógica: disableOutboundSnat: false é o padrão permissivo, não bloqueador. A alternativa C é incorreta: as regras interagem diretamente quando compartilham o mesmo backend pool e frontend. A alternativa D é incorreta: a propriedade é relevante sempre que há regras de saída explícitas, independentemente do número de IPs de frontend.