Regras de saída Azure Load Balancer

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

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.

As regras de saída só serão seguidas se a VM de back-end não tiver um endereço IP público (ILPIP) no nível da 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 regras de saída, você pode definir explicitamente o comportamento SNAT de saída.

As regras de saída permitem controlar:

  • Quais máquinas virtuais são traduzidas para quais endereços IP públicos.
    • Duas regras em que o pool de back-end 1 usa 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 pool que faz conexões de saída, forneça todas as portas SNAT para o pool de back-end 2 e nenhuma para o pool de back-end 1.
  • Para quais protocolos fornecer traduçã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 a duração a utilizar para o tempo limite de inatividade da ligação de saída (4-120 minutos).
    • Se houver conexões de longa duração com keepalives, reserve portas ociosas para conexões de longa duração por até 120 minutos. Suponha que conexões obsoletas sejam abandonadas e libere portas em 4 minutos para novas conexões
  • Se deseja enviar um TCP Reset no tempo limite ocioso.
    • Ao expirar as conexões ociosas, enviamos um RST TCP para o cliente e o servidor para que eles saibam que o fluxo foi abandonado?

Importante

Quando um pool de back-end é configurado por endereço IP, ele se comportará como um Balanceador de Carga Básico com saída padrão habilitada. Para configurações seguras por padrão e aplicativos com necessidades de saída exigentes, configure o pool de back-end pela NIC.

Definição de regra de saída

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

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 para o frontend.

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

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

Cada endereço IP extra fornecido por um frontend fornece outras 64.000 portas efêmeras para o balanceador de carga usar como portas SNAT. O balanceador de carga usará IPs conforme necessário com base nas portas disponíveis. O balanceador de carga usará o próximo IP quando as conexões não puderem mais ser feitas com o IP atual em uso.

Use vários endereços IP para planejar cenários de grande escala. Use regras de saída para reduzir o esgotamento do SNAT.

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

Um prefixo IP público aumenta o dimensionamento de sua implantação. O prefixo pode ser adicionado à lista de permissões de fluxos originários de seus recursos do Azure. Você pode configurar uma configuração de IP frontend dentro do balanceador de carga para fazer referência a um prefixo de endereço IP público.

O balanceador de carga tem controle sobre o prefixo IP público. A regra de saída usará automaticamente outros endereços IP públicos contidos no prefixo IP público depois que não puderem ser feitas mais conexões de saída com o IP atual em uso a partir do prefixo.

Cada um dos endereços IP dentro do prefixo 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 inatividade do fluxo de saída e redefinição de TCP

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

O comportamento padrão do balanceador de carga é descartar o fluxo silenciosamente quando o tempo limite de ociosidade de saída for atingido. O enableTCPReset parâmetro permite um comportamento e controle de aplicativo previsível. O parâmetro determina se o TCP Reset bidirecional (TCP RST) deve ser enviado no tempo limite de ociosidade de saída.

Revise TCP Reset no tempo limite ocioso para obter detalhes, incluindo a disponibilidade da região.

Protegendo e controlando 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 beneficiam ou exigem que você desabilite a programação automática do NAT de saída pela regra de balanceamento de carga. A desativação 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. Desative 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 para entrada e saída simultaneamente. O NAT de saída automático deve ser desativado 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 disableOutboundSnat parâmetro deve ser definido como true.

A operação para configurar uma regra de saída falhará se você tentar redefinir um endereço IP usado para entrada. Desative primeiro 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 e não tiver uma regra de saída para definir a conectividade de saída. Algumas operações da sua VM ou do seu aplicativo podem depender de ter conectividade de saída disponível. Certifique-se de entender as dependências do seu cenário e ter considerado o impacto de fazer essa alteração.

Às vezes, é indesejável para uma VM criar um fluxo de saída. Pode haver um requisito para gerenciar quais destinos recebem fluxos de saída ou quais destinos iniciam fluxos de entrada. Use grupos de segurança de rede para gerenciar os destinos que a VM alcança. Use NSGs para gerenciar quais destinos públicos iniciam fluxos de entrada.

Ao aplicar um NSG a uma VM com balanceamento de carga, preste atenção às tags 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 Balanceador de Carga do Azure.

Se um NSG bloquear solicitações de teste de integridade da marca padrão AZURE_LOADBALANCER, a sonda de integridade da VM falhará e a VM será marcada como indisponível. O balanceador de carga para de enviar novos fluxos para 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 públicos ou prefixo

Detalhes

Use este cenário para personalizar conexões de saída para originar de um conjunto de endereços IP públicos. Adicione IPs ou prefixos públicos a uma lista de permissões ou bloqueios 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 público ou um endereço IP público.
  2. Criar um balanceador de carga padrão público
  3. Crie um frontend fazendo referência ao prefixo IP público ou endereço IP público que você deseja usar.
  4. Reutilize um pool de back-end ou crie um pool de back-end e coloque as VMs em um pool de back-end do balanceador de carga 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 frontend. Não é recomendável usar uma regra de balanceamento de carga para saída, desabilitar 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 de porta SNAT com base no tamanho do pool de back-end.

Se você tiver exaustão SNAT, aumente o número de portas SNAT dadas a partir do padrão de 1024.

Cada endereço IP público contribui 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 VM. Uma VM no pool de back-end tem acesso ao máximo de 64.000 portas. Para duas VMs, um máximo de 32.000 portas SNAT pode ser fornecido com uma regra de saída (2x 32.000 = 64.000).

Você pode usar regras de saída para ajustar as portas SNAT fornecidas por padrão. Você dá mais ou menos do que a alocação de porta SNAT padrão fornece. Cada endereço IP público de um frontend de uma regra de saída contribui com até 64.000 portas efêmeras para uso 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 consomem um intervalo de oito portas. Se uma regra NAT de entrada ou balanceamento de carga compartilhar o mesmo intervalo de 8 que outra, nenhuma porta extra será consumida.

Se você tentar fornecer mais portas SNAT do que estão disponíveis (com base no número de endereços IP públicos), a operação de configuração será rejeitada. Por exemplo, se você der 10.000 portas por VM e sete VMs em um pool de back-end compartilharem um único IP público, a configuração será rejeitada. Sete multiplicados por 10.000 excedem o limite de 64.000 portas. Adicione mais endereços IP públicos ao frontend 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 porta SNAT padrão, consulte Tabela de alocação de portas SNAT.

Cenário 3: Habilitar somente saída

Detalhes

Use um balanceador de carga padrão público para fornecer NAT de saída para um grupo de VMs. Nesse cenário, use uma regra de saída por si só, sem configurar regras extras.

Nota

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

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

Nota

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

Detalhes

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

  1. Crie um IP ou prefixo público.
  2. Crie um balanceador de carga padrão público.
  3. Crie um frontend associado ao IP público ou prefixo dedicado para 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 público para dimensionar portas SNAT . Adicione a origem das conexões de saída a uma lista de permissões ou bloqueios.

Cenário 5: NAT de saída para balanceador de carga padrão interno

Nota

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

Detalhes

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

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

Cenário 6: Habilite os protocolos TCP ou UDP para NAT de saída com um balanceador de carga padrão público

Detalhes

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

  1. Desative o 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 apenas regras de NAT de entrada são usadas, nenhum NAT de saída é fornecido.

  1. Coloque as VMs em um pool de back-end.
  2. Definir uma ou mais configurações de IP frontend com endereço(s) IP(s) público(s) 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 frontend é 64.000.
  • O intervalo do tempo limite de inatividade de saída configurável é de 4 a 120 minutos (240 a 7200 segundos).
  • O balanceador de carga não suporta ICMP para NAT de saída, os únicos protocolos suportados são TCP e UDP.
  • As regras de saída só podem ser aplicadas à configuração IPv4 primária de uma NIC. Não é possível criar uma regra de saída para as configurações IPv4 secundárias de uma VM ou NVA. Várias NICs são suportadas.
  • As regras de saída para a configuração IP secundária só são suportadas para IPv6.
  • Todas as máquinas virtuais dentro de um conjunto de disponibilidade devem ser adicionadas ao pool de back-end para conectividade de saída.
  • Todas as máquinas virtuais dentro de um conjunto de escala de máquina virtual devem ser adicionadas ao pool de back-end para conectividade de saída.

Próximos passos