Regras de saída do Azure Load Balancer

As regras de saída permitem definir explicitamente o SNAT (conversão de endereços de rede de origem) para um balanceador de carga de padrão público. Essa configuração permite que você use os IPs públicos do balanceador de carga para fornecer conectividade de saída para a Internet às suas instâncias de back-end.

Essa configuração permite:

  • Representação de IP
  • Simplificando as listas de permitidos.
  • Reduz o número de recursos IP públicos para implantação.

Com as regras de saída, você tem total controle declarativo sobre a conectividade de saída para a Internet. Elas permitem que você dimensione e ajuste essa capacidade para suas necessidades específicas.

As regras de saída serão seguidas somente se a VM de back-end não tiver um endereço ILPIP (IP público em nível de instância).

Este diagrama mostra a configuração de portas SNAT em máquinas virtuais com regras de balanceador de carga de saída.

Com as regras de saída, você pode definir explicitamente o comportamento de SNAT de saída.

Regras de saída permitem que você controle:

  • Quais máquinas virtuais são convertidas para quais endereços IP públicos.
    • Duas regras em que o pool de back-end 1 usa os dois endereços IP azuis e o pool de back-end 2 usa o prefixo IP amarelo.
  • Como as portas SNAT de saída são alocadas.
    • Se o pool de back-end 2 for o único fazendo conexões de saída, forneça todas as portas SNAT ao pool de back-end 2 e nenhuma para o pool de back-end 1.
  • Para quais protocolos fornecer conversão de saída.
    • Se o pool de back-end 2 precisar de portas UDP para saída, e o pool de back-end 1 precisar de TCP, forneça portas TCP para 1 e portas UDP para 2.
  • Qual duração usar para o tempo limite de ociosidade da conexão de saída (4-120 minutos).
    • Se houver conexões de execução prolongada com keepalives, reserve portas ociosas para essas conexões por até 120 minutos. Suponha que conexões obsoletas estejam abandonadas e libere portas em 4 minutos para conexões novas
  • Se deve ser enviada uma redefinição de TCP no tempo limite ocioso.
    • Ao atingir o tempo limite das conexões ociosas, enviamos um TCP RST para o cliente e para o servidor para que eles saibam que o fluxo está abandonado?

Importante

Quando um pool de back-end é configurado por endereço IP, ele se comporta como um Azure Load Balancer Básico com a saída padrão habilitada. Para proteger por padrão a configuração e os aplicativos com necessidades de saída exigentes, configure o pool de back-end por NIC.

Definição de regra de saída

As regras de saída seguem a mesma sintaxe familiar que regras NAT de entrada e balanceamento de carga: front-end + parâmetros + pool de back-end.

Uma regra de saída configura o NAT de saída para todas as máquinas virtuais identificadas pelo pool de back-end a serem convertidas no front-end.

Os parâmetros fornecem controle refinado sobre o algoritmo NAT de saída.

Dimensionar NAT de saída com vários endereços IP

Cada endereço IP extra fornecido por um front-end fornece 64.000 portas efêmeras para o balanceador de carga usar como portas SNAT.

Use vários endereços IP para planejar cenários em larga escala. Use regras de saída para atenuar o esgotamento de SNAT.

Você também pode usar um prefixo de IP público diretamente com uma regra de saída.

Um prefixo de IP público aumenta o dimensionamento da sua implantação. O prefixo pode ser incluído na lista de permitidos de fluxos provenientes dos seus recursos do Azure. Você pode configurar uma configuração de IP de front-end no recurso do balancear de carga para fazer referência a um prefixo de endereço IP público.

O balanceador de carga tem controle sobre o prefixo de IP público. A regra de saída usará automaticamente todos os endereços IP públicos contidos no prefixo de IP público para conexões de saída.

Cada um dos endereços IP dentro do prefixo de IP público fornece 64.000 portas efêmeras extras por endereço IP para o balanceador de carga usar como portas SNAT.

Tempo limite de ociosidade do fluxo de saída e redefinição de TCP

Regras de saída fornecem um parâmetro de configuração para controlar o tempo limite de ociosidade de fluxo de saída e combiná-lo com as necessidades do seu aplicativo. O padrão de tempos limite de ociosidade de saída é de 4 minutos. Para obter mais informações, consulte Configurar tempos limite de ociosidade.

O comportamento padrão do balanceador de carga é remover o fluxo silenciosamente quando o tempo limite de ociosidade de saída é atingido. O parâmetro enableTCPReset habilita um comportamento e controle previsíveis do aplicativo. O parâmetro determina se a redefinição TCP bidirecional (TCP RST) deve ser enviada no máximo do tempo limite de ociosidade de saída.

Examine a redefinição de TCP no tempo limite de ociosidade para obter detalhes, inclusive a disponibilidade da região.

Proteger e controlar explicitamente a conectividade de saída

As regras de balanceamento de carga fornecem programação automática de NAT de saída. Alguns cenários se beneficiam ou exigem que você desabilite a programação automática de NAT de saída pela regra de balanceamento de carga. Desabilitar por meio da regra permite controlar ou refinar o comportamento.

Você pode usar esse parâmetro de duas maneiras:

  1. Prevenção do endereço IP de entrada para SNAT de saída. Desabilite o SNAT de saída na regra de balanceamento de carga.

  2. Ajuste os parâmetros SNAT de saída de um endereço IP usado simultaneamente para entrada e saída. O NAT de saída automático deve ser desabilitado para permitir que uma regra de saída assuma o controle. Para alterar a alocação de porta SNAT de um endereço também usado para entrada, o parâmetro disableOutboundSnat deve ser definido como true.

A operação para configurar uma regra de saída falha se você tentar redefinir um endereço IP que é usado para entrada. Primeiro, desabilite o NAT de saída da regra de balanceamento de carga.

Importante

Sua máquina virtual não terá conectividade de saída se você definir esse parâmetro como true, mas não tiver uma regra de saída para definir tal conectividade. Algumas operações de sua VM ou do seu aplicativo podem depender de ter conectividade de saída disponível. Entenda as dependências do seu cenário e considere o impacto de fazer essa alteração.

Às vezes, não é desejável que uma VM crie um fluxo de saída. Pode haver um requisito para gerenciar quais destinos recebem os fluxos de saída ou quais destinos iniciam os fluxos de entrada. USe os grupos de segurança de rede para gerenciar os destinos que a VM consegue acessar. Use NSGs (grupos de segurança de rede) para gerenciar quais destinos públicos iniciam fluxos de entrada.

Ao aplicar um NSG a uma VM com balanceamento de carga, atente-se às marcas de serviço e às regras de segurança padrão.

Verifique se a VM pode receber solicitações de investigação de integridade do Azure Load Balancer.

Se um NSG bloquear solicitações de investigação de integridade da marcação padrão AZURE_LOADBALANCER, o teste de integridade da VM falhará, e a VM será reduzida. O balanceador de carga, então, para de enviar novos fluxos a essa VM.

Cenários de regras de saída

Cenário 1: Configurar conexões de saída para um conjunto específico de IPs ou de prefixo público

Detalhes

Use este cenário para personalizar as conexões de saída de forma que originem de um conjunto de endereços IP públicos. Adicione IPs ou prefixos públicos a uma lista de permitidos ou de bloqueados com base na origem.

Esse IP ou prefixo público pode ser o mesmo usado por uma regra de balanceamento de carga.

Para usar um IP ou prefixo público diferente do usado por uma regra de balanceamento de carga:

  1. Crie um prefixo IP ou endereço IP públicos.
  2. Crie um Standard Load Balancer público.
  3. Crie um front-end referenciando o prefixo IP ou endereço IP público que você deseja usar.
  4. Reutilize ou crie um pool de back-end e coloque as VMs em um pool de back-end do Load Balancer público.
  5. Configure uma regra de saída no balanceador de carga público para habilitar o NAT de saída para as VMs usando o front-end. Não é recomendável usar a regra de balanceamento de carga para saída. Desabilite o SNAT de saída na regra de balanceamento de carga.

Cenário 2: modificar a alocação de porta SNAT

Detalhes

Você pode usar regras de saída para ajustar a alocação automática da porta SNAT com base no tamanho do pool de back-end.

Se você experimentar o esgotamento de SNAT, aumente o número de portas SNAT oferecidas do padrão de 1024.

Cada endereço IP público pode contribuir com até 64.000 portas efêmeras. O número de VMs no pool de back-end determina o número de portas distribuídas para cada uma delas. Uma VM no pool de back-end tem acesso ao máximo de 64.000 portas. Para duas VMs, no máximo 32.000 portas SNATpodem ser oferecidas com uma regra de saída (2x 32.000 = 64.000).

Use regras de saída para ajustar as portas SNAT fornecidas por padrão. Você oferece mais ou menos do que a alocação de porta SNAT padrão fornece. Cada IP de um front-end de uma regra de saída contribui com até 64.000 portas efêmeras para serem usadas como portas SNAT.

O Balanceador de carga fornece portas SNAT em múltiplos de 8. Se você fornecer um valor não divisível por 8, a operação de configuração será rejeitada. Cada regra de balanceamento de carga e regra NAT de entrada consome um intervalo de 8 portas. Se uma regra de balanceamento de carga ou de NAT de entrada compartilha o mesmo intervalo de 8 como outro, nenhuma porta extra será consumida.

Se você tentar fornecer mais portas SNAT do que as disponíveis com base no número de endereços IPs públicos, a operação de configuração será rejeitada. Por exemplo, ao fornecer 10.000 portar por VM, e sete VMs em um pool de back-end compartilham um único IP público, a configuração será rejeitada. Sete multiplicado por 10.000 excede o limite de 64.000 portas. Adicione mais endereços de IP ao front-end da regra de saída para habilitar o cenário.

Reverta para a alocação de porta padrão especificando 0 para o número de portas. Para obter mais informações sobre a alocação de portas SNAT padrão, consulte a tabela de alocação de portas SNAT.

Cenário 3: habilitar somente saída

Detalhes

Use um Standard Load Balancer público para fornecer NAT de saída para um grupo de VMs. Neste cenário, você pode usar uma regra de saída sozinha, sem configurar regras extras.

Observação

O Azure Gateway da NAT pode fornecer conectividade de saída para máquinas virtuais sem a necessidade de um balanceador de carga. Veja O que é o Azure Gateway da NAT? Para maiores informações.

Cenário 4: NAT de saída apenas para VMs (não de entrada)

Observação

O Azure Gateway da NAT pode fornecer conectividade de saída para máquinas virtuais sem a necessidade de um balanceador de carga. Veja O que é o Azure Gateway da NAT? Para maiores informações.

Detalhes

Neste cenário: as regras de saída do Azure Load Balancer e o NAT da Rede Virtual são opções disponíveis para saída de uma rede virtual.

  1. Crie um prefixo ou IP público.
  2. Crie um Standard Load Balancer público.
  3. Crie um front-end associado ao IP ou prefixo público dedicado à saída.
  4. Crie um pool de back-end para as VMs.
  5. Coloque as VMs no pool de back-end.
  6. Configure uma regra de saída para habilitar o NAT de saída.

Use um prefixo ou IP para escalar portas SNAT. Adicione a origem das conexões de saída a uma lista de permitidos ou bloqueados.

Cenário 5: NAT de saída para cenários de Standard Load Balancer interno

Observação

O Azure Gateway da NAT pode fornecer conectividade de saída para máquinas virtuais utilizando um balanceador de carga padrão interno. Veja O que é o Azure Gateway da NAT? Para maiores informações.

Detalhes

A conectividade de saída não está disponível para um Standard Load Balancer interno até que tenha sida declarada explicitamente por meio de IPs públicos em nível de instância ou por NAT de Rede Virtual, ou associando os membros do pool de back-end com uma configuração de balanceador de carga somente de saída.

Para obter mais informações, consulte Configuração de balanceador de carga somente de saída.

Scenario 6: habilitar protocolos TCP e UDP para NAT de saída com um Standard Load Balancer público

Detalhes

Com um balanceador de carga padrão público, o NAT de saída automática fornecido corresponde ao protocolo de transporte da regra de balanceamento de carga.

  1. Desabilite SNAT de saída na regra de balanceamento de carga.
  2. Configure uma regra de saída no mesmo balanceador de carga.
  3. Reutilize o pool de back-end já usado por suas VMs.
  4. Especifique "protocolo": "Todos" como parte da regra de saída.

Quando são usadas apenas regras NAT de entrada, nenhuma NAT de saída é fornecida.

  1. Coloque as VMs em um pool de back-end.
  2. Defina uma ou mais configurações de IP de front-end com endereços IP públicos ou prefixo IP público.
  3. Configure uma regra de saída no mesmo balanceador de carga.
  4. Especifique "protocolo": "Todos" como parte da regra de saída

Limitações

  • O número máximo de portas efêmeras utilizáveis por endereço IP de front-end é 64.000.
  • O intervalo do tempo limite de ociosidade de saída configurável é de 4 a 120 minutos (240 a 7.200 segundos).
  • O balanceador de carga não tem suporte para ICMP para NAT de saída; os únicos protocolos com suporte são TCP e UDP.
  • As regras de saída só podem ser aplicadas à configuração IPv4 primária de uma NIC. Você não pode criar uma regra de saída para as configurações IPv4 secundárias de uma VM ou NVA. Há suporte para vários NICs.
  • As regras de saída para a configuração de IP secundário só têm suporte para IPv6.
  • Todas as máquinas virtuais em um conjunto de disponibilidade devem ser adicionadas ao pool de back-end para conectividade de saída.
  • Todas as máquinas virtuais em um conjunto de dimensionamento de máquinas virtuais devem ser adicionadas ao pool de back-end para conectividade de saída.

Próximas etapas