Compartilhar via


Configuração de IP Flutuante do Azure Load Balancer

O balanceador de carga fornece várias funcionalidades para os aplicativos UDP e TCP.

IP flutuante

Alguns cenários de aplicativos preferem ou exigem o uso da mesma porta por várias instâncias do aplicativo em uma única VM no pool de back-end. Exemplos comuns de reutilização de porta incluem clusters de alta disponibilidade, dispositivos virtuais de rede e exposição de vários pontos de extremidade TLS sem nova criptografia. Para reutilizar a porta de back-end em diversas regras, habilite o IP flutuante na definição da regra. A habilitação do IP flutuante permite mais flexibilidade.

Status de IP flutuante Resultado
IP flutuante habilitado O Azure altera o mapeamento de endereço IP para o IP do front-end do balanceador de carga.
IP flutuante desativado O Azure expõe o endereço IP de instâncias da VM

Nos diagramas, você vê como o mapeamento do endereço IP funciona antes e após a habilitação do IP Flutuante: Este diagrama mostra o tráfego de rede por meio de um balancear de carga antes de habilitar o IP Flutuante.

Este diagrama mostra o tráfego de rede por meio de um balanceador de carga após habilitar o IP Flutuante.

Configure o IP Flutuante em uma regra de Balanceador de Carga por meio do portal do Azure, API REST, CLI, PowerShell ou outro cliente. Além da configuração das regras, você também deve configurar o sistema operacional convidado da máquina virtual para poder usar IP flutuante.

O tipo de regra de IP Flutuante é a base de vários padrões de configuração do balanceador de carga. Um exemplo que está disponível no momento é a configuração Configurar um ou mais ouvintes do grupo de disponibilidade Always On. Ao longo do tempo, documentaremos mais esses cenários.

Configuração do sistema operacional de convidado de IP flutuante

Para funcionar, configure o Sistema Operacional Convidado para a máquina virtual receber todo o tráfego vinculado ao IP de front-end e à porta do balanceador de carga. A configuração da VM requer:

  • adicionar um adaptador de rede de loopback
  • configurando o loopback com o endereço IP de front-end do balanceador de carga
  • garantindo que o sistema possa enviar/receber pacotes em interfaces que não tenham o endereço IP atribuído a essa interface. Os sistemas Windows exigem interfaces de configuração para usar o modelo de "host fraco". Para sistemas Linux, esse modelo normalmente é usado por padrão.
  • configurar o firewall do host para permitir o tráfego na porta IP de front-end.

Observação

Os exemplos abaixo usam IPv4; para usar IPv6, substitua "ipv6" por "ipv4".

Windows Server

Expandir

Para cada VM no pool de back-end, execute os comandos a seguir em um prompt de comando do Windows no servidor.

  1. Para obter a lista de nomes de interface que você tem em sua VM, insira este comando:

    netsh interface ipv4 show interface 
    
  2. Para a NIC da VM (gerenciada pelo Azure), insira o seguinte comando depois de substituir o nome da interface pelo nome da interface que você deseja usar:

    netsh interface ipv4 set interface <interface-name> weakhostreceive=enabled
    
  3. Para cada interface de loopback que você adicionou, insira esses comandos depois de substituir loopback-interface-name pelo nome da interface de loopback e IP flutuante e máscara de rede do IP flutuante pelos valores apropriados que correspondem ao IP de frontend do balanceador de carga:

    netsh interface ipv4 add addr <loopback-interface-name> <floating-IP> <floating-IPnetmask>
    netsh interface ipv4 set interface <loopback-interface-name> weakhostreceive=enabled  weakhostsend=enabled 
    
  4. Por fim, se o host convidado usar um firewall, certifique-se de configurar uma regra para que o tráfego possa alcançar a VM nas portas apropriadas. Essa configuração de exemplo assume uma configuração IP de front-end do balanceador de carga de 1.2.3.4 e uma regra de balanceamento de carga para a porta 80:

    netsh int ipv4 set int "Ethernet" weakhostreceive=enabled
    netsh int ipv4 add addr "Loopback Pseudo-Interface 1" 1.2.3.4 255.255.255.0
    netsh int ipv4 set int "Loopback Pseudo-Interface 1" weakhostreceive=enabled weakhostsend=enabled
    netsh advfirewall firewall add rule name="http" protocol=TCP localport=80 dir=in action=allow enable=yes
    

Ubuntu

Expandir

Para cada VM no pool de back-end, execute os seguintes comandos por meio de uma sessão SSH.

  1. Para obter a lista de nomes de interface que você tem em sua VM, digite este comando:

    ip addr
    
  2. Para cada interface de loopback que você adicionou, insira esses comandos depois de substituir loopback-interface-name pelo nome da interface de loopback e IP flutuante e máscara de rede do IP flutuante pelos valores apropriados que correspondem ao IP de frontend do balanceador de carga:

    sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
    
  3. Por fim, se o host convidado usar um firewall, certifique-se de configurar uma regra para que o tráfego possa alcançar a VM nas portas apropriadas. Esta configuração de exemplo pressupõe uma configuração de IP de front-end do balanceador de carga de 1.2.3.4, uma regra de balanceamento de carga para a porta 80 e o uso de UFW (Firewall Descomplicado) no Ubuntu.

    sudo ip addr add 1.2.3.4/24 dev lo:0
    sudo ufw allow 80/tcp
    

Limitações

  • Com o IP Flutuante habilitado em uma regra de balanceamento de carga, seu aplicativo deve usar a configuração de IP primário do adaptador de rede para saída.
  • Se o aplicativo se vincular ao endereço IP de front-end configurado na interface de loopback do sistema operacional convidado, a conexão de saída do Azure não reescreve o fluxo de saída, fazendo com que o fluxo falhe. Examine os cenários de saída.
  • Você não pode usar IP Flutuante em configurações de IP secundárias para cenários de Balanceamento de Carga. Essa limitação não se aplica a balanceadores de carga públicos em que a configuração de IP secundária é IPv6 e parte de uma configuração de pilha dupla ou a arquiteturas que utilizam um Gateway NAT para conectividade de saída.

Próximas etapas