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 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

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 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.

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 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

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 <loopbackinterfacename> floatingip floatingipnetmask
netsh interface ipv4 set interface <loopbackinterfacename> weakhostreceive=enabled  weakhostsend=enabled 

(substitua loopbackinterfacename 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

  • 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 seu aplicativo se associar ao endereço IP de front-end configurado na interface de loopback no SO convidado, a saída do Azure não reescreverá o fluxo de saída e o fluxo falhará. 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 nos quais a configuração de IP secundária é IPv6, como parte de uma configuração de pilha dupla ou de arquiteturas que utilizam um Gateway da NAT para conectividade de saída.

Próximas etapas