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:
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
- Saiba mais sobre como usar vários front-ends com o Azure Load Balancer.
- Aprenda sobre Conexões de saída do Azure Load Balancer.