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.

Status de IP flutuante Resultado
IP flutuante habilidade O Azure altera o mapeamento de endereço IP para o endereço IP de front-end do Balanceador de carga
IP flutuante desabilitado O Azure expõe o endereço IP de instâncias da VM

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. Saiba mais aqui.

Nos diagramas, você vê como o mapeamento do endereço IP funciona antes e após a habilitação do IP Flutuante: This diagram shows network traffic through a load balancer before enabling Floating IP.

This diagram shows network traffic through a load balancer after enabling Floating IP.

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

Configuração do sistema operacional de convidado 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
  • garantir que o sistema possa enviar/receber pacotes em interfaces que não têm 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". Observe também que o IP flutuante para IPv6 não funciona para Balanceadores de Carga Internos.

Windows Server

Expanda

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

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

netsh interface ipv4 show interface 

Para a NIC da VM (gerenciado pelo Azure), digite este comando.

netsh interface ipv4 set interface "interfacename" weakhostreceive=enabled

(substitua "interfacename" pelo nome dessa interface)

Para cada interface de loopback que você adicionou, repita estes comandos:

netsh interface ipv4 add addr floatingipaddress floatingip floatingipnetmask
netsh interface ipv4 set interface floatingipaddress weakhostreceive=enabled  weakhostsend=enabled 

(substitua loopbackinterface pelo nome dessa interface de loopback e floatingip e floatingipnetmask pelos valores apropriados que correspondem ao IP de front-end do balanceador de carga)

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

Expanda

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

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

ip addr

Para cada interface de loopback, repita esses comandos, o que atribui o IP flutuante ao alias de loopback:

sudo ip addr add floatingip/floatingipnetmask dev lo:0

(substitua floatingip e floatingipnetmask pelos valores apropriados que correspondem ao IP de front-end do balanceador de carga)

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. Este exemplo também pressupõe o uso de UFW (Firewall não compilado) no Ubuntu.

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

Limitações

  • 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 com configurações de pilha dual nem a arquiteturas que utilizam um Gateway da NAT para conectividade de saída.

Próximas etapas