Compartir vía


Configuración de la dirección IP flotante de Azure Load Balancer

Load Balancer proporciona varias funcionalidades para las aplicaciones UDP y TCP.

Dirección IP flotante

Algunos escenarios de aplicación prefieren o requieren que varias instancias de la aplicación usen el mismo puerto en una única VM en el grupo back-end. Entre los ejemplos comunes de reutilización de puertos se incluyen la agrupación en clústeres para alta disponibilidad, dispositivos de red virtuales y la exposición de varios puntos de conexión TLS sin volver a cifrar. Si quiere reutilizar el puerto de back-end en varias reglas, debe habilitar la IP flotante en la definición de la regla. La habilitación de IP flotante permite una mayor flexibilidad.

Estado de IP flotante Resultado
IP flotante habilitada Azure cambia la asignación de direcciones IP a la dirección IP de front-end del equilibrador de carga
IP flotante deshabilitada Azure expone la dirección IP de las instancias de máquina virtual

En los diagramas, se observa cómo funciona la asignación de direcciones IP antes y después de habilitar la IP flotante: Este diagrama muestra el tráfico de red a través de un equilibrador de carga antes de habilitar la IP flotante.

Este diagrama muestra el tráfico de red a través de un equilibrador de carga después de habilitar la IP flotante.

La dirección IP flotante se configura en una regla del equilibrador de carga mediante Azure Portal, la API REST, la CLI, PowerShell u otro cliente. Además de la configuración de la regla, también debe configurar el sistema operativo invitado de la máquina virtual para utilizar la dirección IP flotante.

El tipo de regla de dirección IP flotante es el fundamento de varios modelos de configuración del equilibrador de carga. Un ejemplo que está disponible actualmente es la configuración de uno o varios agentes de escucha de grupo de disponibilidad Always On. Con el tiempo, se documentarán más escenarios de este tipo.

Configuración del sistema operativo invitado para la dirección IP flotante

Para que el sistema operativo invitado de la máquina virtual funcione correctamente, debe configurarse para que pueda recibir todo el tráfico que se enlace a la IP y el puerto de front-end del equilibrador de carga. La configuración de VM requiere:

  • Agregar una interfaz de red de bucle invertido.
  • configurar el bucle invertido con la dirección IP de front-end del equilibrador de carga.
  • asegurarse de que el sistema pueda enviar o recibir paquetes en interfaces que no tienen la dirección IP asignada a esa interfaz. Los sistemas Windows requieren establecer interfaces para usar el modelo de "host débil". En el caso de los sistemas Linux, este modelo se usa normalmente de manera predeterminada.
  • Configurar el firewall de host para permitir el tráfico en el puerto IP de front-end.

Nota

En los ejemplos siguientes se usa el protocolo IPv4. Para usar IPv6, sustituya "ipv6" por "ipv4".

Windows Server

Expandir

Ejecute los siguientes comandos en un símbolo del sistema Windows en el servidor una vez por cada VM del grupo de back-end.

Para obtener la lista de nombres de interfaz que tiene en la máquina virtual, escriba este comando:

netsh interface ipv4 show interface 

En el caso de las conexiones de interfaz de red de VM (administradas por Azure), escriba el siguiente comando.

netsh interface ipv4 set interface <interfacename> weakhostreceive=enabled

(reemplace "interfacename" por el nombre de esta interfaz)

Para cada interfaz de bucle invertido que agregue, repita estos comandos:

netsh interface ipv4 add addr <loopbackinterfacename> floatingip floatingipnetmask
netsh interface ipv4 set interface <loopbackinterfacename> weakhostreceive=enabled  weakhostsend=enabled 

(reemplace loopbackinterfacename por el nombre de esta interfaz de bucle invertido y, además, reemplace floatingip y floatingipnetmask por los valores que correspondan a la IP de front-end del equilibrador de carga)

Por último, si el host invitado usa un firewall, asegúrese de que haya configurada una regla para que el tráfico pueda llegar a la VM a través de los puertos adecuados.

En esta configuración de ejemplo se supone que existe una configuración de la IP de front-end del equilibrador de carga de 1.2.3.4 y una regla de equilibrio de carga para el puerto 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

Ejecute los siguientes comandos, mediante una sesión SSH, una vez por cada VM del grupo de back-end.

Para obtener la lista de nombres de interfaz que tiene en la máquina virtual, escriba este comando:

ip addr

Repita estos siguientes comandos en cada interfaz de bucle invertido para asignar la IP flotante al alias de cada uno de estos:

sudo ip addr add <floatingip>/<floatingipnetmask> dev lo:0

(reemplace floatingip y floatingipnetmask por los valores que correspondan a la IP de front-end del equilibrador de carga)

Por último, si el host invitado usa un firewall, asegúrese de que haya configurada una regla para que el tráfico pueda llegar a la VM a través de los puertos adecuados.

En esta configuración de ejemplo se supone que existe una configuración de la IP de front-end del equilibrador de carga de 1.2.3.4 y una regla de equilibrio de carga para el puerto 80. En este ejemplo también se supone el uso de un UFW (firewall sin complicaciones) en Ubuntu.

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

Limitaciones

  • Con la IP flotante habilitada en una regla de equilibrio de carga, la aplicación debe usar la configuración IP principal de la interfaz de red para la salida.
  • Si la aplicación se enlaza a la dirección IP de front-end configurada en la interfaz de bucle invertido en el sistema operativo invitado, entonces la traducción de direcciones de red saliente de Azure no volverá a escribir el flujo de salida y, por tanto, se producirá un error en el flujo. Revise los escenarios salientes.
  • No puede usar IP flotantes en las configuraciones de IP secundarias de los escenarios de equilibrio de carga. Esta limitación no se aplica a los equilibradores de carga públicos en los que la configuración de IP secundaria es IPv6 una parte de una configuración de pila doble o a arquitecturas que usan una puerta de enlace NAT para la conectividad saliente.

Pasos siguientes