Varios servidores front-end para Azure Load Balancer

Azure Load Balancer permite utilizar servicios de equilibrio de carga en varios puertos, varias direcciones IP, o en ambos. Puede usar un equilibrador de carga público o interno para equilibrar la carga del tráfico entre un conjunto de servicios, como los conjuntos de escalado de máquinas virtuales o las máquinas virtuales (VM).

En este artículo se describen los aspectos fundamentales del equilibrio de carga entre varias direcciones IP que usan el mismo puerto y protocolo. Si solo desea exponer los servicios en una dirección IP, puede encontrar instrucciones simplificadas para configuraciones públicas o internas del equilibrador de carga. Agregar varios servidores front-end es una acción incremental de la configuración de un único front-end. Mediante los conceptos de este artículo, puede expandir una configuración simplificada en cualquier momento.

Al definir una instancia de Azure Load Balancer, las configuraciones de un grupo de servidores front-end y back-end están conectadas con una regla de equilibrio de carga. La regla de equilibrio de carga hace referencia a un sondeo de estado que se emplea para determinar el estado de una máquina virtual en un puerto o protocolo determinado. En función de los resultados del sondeo de estado, se envían nuevos flujos a las máquinas virtuales del grupo back-end. El front-end se define mediante una tupla de tres elementos formada por una dirección IP (pública o interna) un protocolo de transporte (UDP o TCP) y un número de puerto de la regla de equilibrio de carga. El grupo de servidores back-end es una colección de configuraciones de IP de máquinas virtuales (parte del recurso NIC) que hace referencia al grupo de servidores back-end de Load Balancer.

La tabla siguiente contiene algunas configuraciones de front-end de ejemplo:

Front-end Dirección IP protocol port
1 65.52.0.1 TCP 80
2 65.52.0.1 TCP 8080
3 65.52.0.1 UDP 80
4 65.52.0.2 TCP 80

En la tabla se muestran cuatro configuraciones de front-end distintas. Los front-ends 1, 2 y 3 usan la misma dirección IP, pero el puerto o el protocolo es diferente para cada front-end. Los front-end 1 y 4 son un ejemplo de varios servidores front-end, donde el mismo protocolo y puerto de front-end se reutilizan en varias IP de front-end.

Azure Load Balancer proporciona flexibilidad para definir las reglas de equilibrio de carga. Una regla de equilibrio de carga declara cómo se asigna una dirección y un puerto en el front-end a la dirección y al puerto de destino en el back-end. El hecho de que los puertos back-end se reutilicen o no a través de las reglas depende del tipo de regla. Cada tipo de regla tiene requisitos específicos que pueden afectar al diseño del sondeo y a la configuración del host. Existen dos tipos de reglas:

  1. La regla predeterminada sin la reutilización de un puerto back-end.
  2. La regla de dirección IP flotante con la reutilización de puertos back-end.

Azure Load Balancer permite combinar ambos tipos de regla en la misma configuración de equilibrador de carga. El equilibrador de carga puede utilizarlas simultáneamente en una máquina virtual determinada, o cualquier combinación, siempre y cuando se cumplan las restricciones de la regla. El tipo de regla que elija dependerá de los requisitos de la aplicación y la complejidad de la compatibilidad con dicha configuración. Debe evaluar qué tipos de reglas son mejores para su escenario. Se analizarán estos escenarios en más profundidad empezando por el comportamiento predeterminado.

Tipo de regla 1: No reutilización de puerto back-end

Diagrama del tráfico de Load Balancer sin reutilización de puertos back-end.

En este escenario, los servidores front-end están configurados del modo siguiente:

Front-end Dirección IP protocol port
front-end verde 1 65.52.0.1 TCP 80
front-end violeta 2 65.52.0.2 TCP 80

La dirección IP de la instancia de back-end (BIP) es la dirección IP del servicio back-end en el grupo back-end; cada máquina virtual expone el servicio deseado de un único puerto en la IP de la instancia de back-end. Este servicio está asociado a la IP de front-end (FIP) a través de una definición de regla.

Se definen dos reglas:

Regla Asignación de front-end Para grupo back-end
1 front-end verde FIP1:80 back-end verde BIP1:80, back-end verde BIP2:80
2 VIP FIP2:80 back-end violeta BIP1:81, back-end violeta BIP2:81

La asignación completa en Azure Load Balancer ahora se realiza como sigue:

Regla Dirección IP del front-end protocol port Destination port
regla verde 1 65.52.0.1 TCP 80 Dirección IP BIP 80
regla púrpura 2 65.52.0.2 TCP 80 Dirección IP BIP 81

Cada regla debe generar un flujo con una combinación única de dirección IP de destino y puerto de destino. Varias reglas de equilibrio de carga pueden entregar flujos a la misma IP de instancia de back-end en diferentes puertos al variar el puerto de destino del flujo.

Los sondeos de estado siempre tienen como objeto la IP de la instancia de back-end de una máquina virtual. Debe asegurarse de que el sondeo refleja el estado de la máquina virtual.

Tipo de regla 2: reutilización de puerto back-end mediante IP flotante

Azure Load Balancer ofrece la flexibilidad de reutilizar el puerto de front-end en varias configuraciones de front-end. Además, algunos escenarios de aplicación prefieren o requieren que varias instancias de la aplicación usen el mismo puerto en una sola máquina virtual 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 desea reutilizar el puerto de back-end en varias reglas, debe habilitar la dirección IP flotante en la definición de la regla de equilibrio de carga.

La IP flotante es el término de Azure para referirse a una parte de lo que se conoce como Direct Server Return (DSR). DSR consta de dos partes: una topología de flujo y un esquema de asignación de direcciones IP. En un nivel de plataforma, Azure Load Balancer siempre funciona en una topología de flujo DSR independientemente de si la dirección IP flotante está habilitada o no. Esto significa que la parte de salida de un flujo siempre se reescribe correctamente para que se dirija de nuevo al origen.

Con el tipo de regla predeterminada, Azure expone un esquema de asignación de direcciones IP de equilibrio de carga tradicional a efectos de facilitar el uso. Al habilitar la dirección IP flotante, se cambia el esquema de asignación de direcciones IP para permitir más flexibilidad, como se explica a continuación.

Diagrama del tráfico del equilibrador de carga de varias direcciones IP de front-end con IP flotante.

En este escenario, cada máquina virtual del grupo back-end tiene tres interfaces de red:

  • IP de back-end: una NIC virtual asociada a la máquina virtual (configuración IP del recurso NIC de Azure).
  • Front-end 1 (FIP1): una interfaz de bucle invertido en el sistema operativo invitado que está configurada con la dirección IP de FIP1.
  • Front-end 2 (FIP2): una interfaz de bucle invertido en el sistema operativo invitado que está configurada con la dirección IP de FIP2.

Se asume que la configuración front-end es la misma que en el escenario anterior:

Front-end Dirección IP protocol port
front-end verde 1 65.52.0.1 TCP 80
front-end violeta 2 65.52.0.2 TCP 80

Definimos dos reglas de IP flotante:

Regla Front-end Asignar a grupo de servidores back-end
1 regla verde FIP1:80 back-end verde FIP1:80 (en VM1 y VM2)
2 regla violeta FIP2:80 back-end violeta FIP2:80 (en VM1 y VM2)

En la tabla siguiente se muestra la asignación completa en el equilibrador de carga:

Regla Dirección IP del front-end protocol port Destination port
regla verde 1 65.52.0.1 TCP 80 igual que el front-end (65.52.0.1) igual que el front-end (80)
regla púrpura 2 65.52.0.2 TCP 80 igual que el front-end (65.52.0.2) igual que el front-end (80)

El destino del flujo de entrada ahora es la dirección IP de front-end en la interfaz de bucle invertido de la máquina virtual. Cada regla debe generar un flujo con una combinación única de dirección IP de destino y puerto de destino. Es posible la reutilización del puerto en la misma máquina virtual cambiando la dirección IP de destino del flujo por la dirección IP de front-end del flujo. El servicio se expone al equilibrador de carga mediante su enlace a la dirección IP del front-end y al puerto de la interfaz de bucle invertido correspondiente.

Se puede ver que el puerto de destino no cambia en el ejemplo. En los escenario de IP flotante, Azure Load Balancer también admite la definición de una regla de equilibrio de carga para cambiar el puerto de destino de back-end y para que sea diferente del puerto de destino de front-end.

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.

Nota

Para obtener información más detallada sobre las configuraciones específicas del sistema operativo invitado necesarias para habilitar la dirección IP flotante, consulte Configuración de la dirección IP flotante de Azure Load Balancer.

Limitaciones

  • Solo se admiten varias configuraciones de front-end con máquinas virtuales y conjuntos de escalado de máquinas virtuales IaaS.
  • Con la regla de dirección IP flotante, la aplicación debe utilizar la configuración IP principal para los flujos SNAT salientes. 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 (SNAT) 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.
  • La dirección IP flotante no se admite en este momento en las configuraciones de IP secundarias.
  • Las direcciones IP públicas repercuten en la facturación. Para obtener más información, vea Precios de las direcciones IP
  • Se aplican los límites de suscripción. Para más información, vea los límites de servicio .

Pasos siguientes

  • Revise Conexiones salientes para ver el impacto de varios front-ends en el comportamiento de conexión de salida.