Varias IP virtuales para Azure Load BalancerMultiple VIPs for Azure Load Balancer

Importante

Azure Load Balancer admite dos tipos diferentes: Básico y Estándar.Azure Load Balancer supports two different types: Basic and Standard. En este artículo se describe Load Balancer Básico.This article discusses Basic Load Balancer. Load Balancer Básico está disponible con carácter general, mientras que Load Balancer Estándar está actualmente en versión preliminar pública.Basic Load Balancer is generally available, whereas Standard Load Balancer is currently in Public Preview. Para más información sobre Load Balancer Estándar, consulte la página de introducción de Load Balancer Estándar.For more information about Standard Load Balancer, see Standard Load Balancer Overview.

Azure Load Balancer permite utilizar servicios de equilibrio de carga en varios puertos, varias direcciones IP, o en ambos.Azure Load Balancer allows you to load balance services on multiple ports, multiple IP addresses, or both. Puede usar las definiciones de equilibrador de carga públicas e internas para flujos de equilibrio de carga entre un conjunto de máquinas virtuales.You can use public and internal load balancer definitions to load balance flows across a set of VMs.

En este artículo se describen los fundamentos de esta capacidad, los conceptos importantes y las restricciones.This article describes the fundamentals of this ability, important concepts, and constraints. 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.If you only intend to expose services on one IP address, you can find simplified instructions for public or internal load balancer configurations. Agregar varias direcciones IP virtuales es una acción incremental de la configuración de una única IP virtual.Adding Multiple VIPs is incremental to a single VIP configuration. Mediante los conceptos de este artículo, puede expandir una configuración simplificada en cualquier momento.Using the concepts in this article, you can expand a simplified configuration at any time.

Al definir un Azure Load Balancer, las configuraciones front-end y back-end están conectadas con reglas.When you define an Azure Load Balancer, a frontend and a backend configuration are connected with rules. El sondeo de estado a que hace referencia la regla se utiliza para determinar cómo se envían nuevos flujos a un nodo en el grupo de back-end.The health probe referenced by the rule is used to determine how new flows are sent to a node in the backend pool. El front-end se define mediante una IP Virtual (VIP), que es una tupla de 3 que consta de una dirección IP (pública o interna), un protocolo de transporte (UDP o TCP) y un número de puerto.The frontend is defined by a Virtual IP (VIP), which is a 3-tuple comprised of an IP address (public or internal), a transport protocol (UDP or TCP), and a port number. Una DIP es una dirección IP de un NIC virtual de Azure conectado a una máquina virtual en el grupo de back-end.A DIP is an IP address on an Azure virtual NIC attached to a VM in the backend pool.

La tabla siguiente contiene algunas configuraciones de front-end de ejemplo:The following table contains some example frontend configurations:

IP virtualVIP Dirección IPIP address protocoloprotocol puertoport
11 65.52.0.165.52.0.1 TCPTCP 8080
22 65.52.0.165.52.0.1 TCPTCP 80808080
33 65.52.0.165.52.0.1 UDPUDP 8080
44 65.52.0.265.52.0.2 TCPTCP 8080

En la tabla se muestran cuatro front-end diferentes.The table shows four different frontends. Los front-end 1, 2 y 3 son una sola dirección IP virtual con varias reglas.Frontends #1, #2 and #3 are a single VIP with multiple rules. Se utiliza la misma dirección IP, pero el puerto o el protocolo es diferente para cada front-end.The same IP address is used but the port or protocol is different for each frontend. Los front-end 1 y 4 son un ejemplo de varias direcciones IP virtuales, donde se reutilizan el mismo protocolo front-end y el puerto a través de varias direcciones IP virtuales.Frontends #1 and #4 are an example of Multiple VIPs, where the same frontend protocol and port are reused across multiple VIPs.

Azure Load Balancer proporciona flexibilidad para definir las reglas de equilibrio de carga.Azure Load Balancer provides flexibility in defining the load balancing rules. Una regla declara cómo se asigna una dirección y el puerto en el front-end a la dirección de destino y al puerto en el back-end.A rule declares how an address and port on the frontend is mapped to the destination address and port on the backend. El hecho de que los puertos back-end se reutilicen o no a través de las reglas depende del tipo de regla.Whether or not backend ports are reused across rules depends on the type of the rule. Cada tipo de regla tiene requisitos específicos que pueden afectar al diseño del sondeo y a la configuración del host.Each type of rule has specific requirements that can affect host configuration and probe design. Existen dos tipos de reglas:There are two types of rules:

  1. La regla predeterminada sin la reutilización de un puerto back-endThe default rule with no backend port reuse
  2. La regla de dirección IP flotante donde se reutilizan puertos back-endThe Floating IP rule where backend ports are reused

Azure Load Balancer permite combinar ambos tipos de regla en la misma configuración de equilibrador de carga.Azure Load Balancer allows you to mix both rule types on the same load balancer configuration. El equilibrador de carga puede utilizarlos simultáneamente para una máquina virtual determinada, o cualquier combinación, siempre y cuando se cumplan las restricciones de la regla.The load balancer can use them simultaneously for a given VM, or any combination, as long as you abide by the constraints of the rule. El tipo de regla que elija depende de los requisitos de la aplicación y la complejidad de la compatibilidad con dicha configuración.Which rule type you choose depends on the requirements of your application and the complexity of supporting that configuration. Debe evaluar qué tipos de reglas son mejores para su escenario.You should evaluate which rule types are best for your scenario.

Se analizan aún más estos escenarios empezando con el comportamiento predeterminado.We explore these scenarios further by starting with the default behavior.

Tipo de regla 1: No reutilización de puerto back-endRule type #1: No backend port reuse

Ilustración de varias IP virtuales

En este escenario, las IP virtuales front-end están configuradas como sigue:In this scenario, the frontend VIPs are configured as follows:

IP virtualVIP Dirección IPIP address protocoloprotocol puertoport
IP virtual 11 65.52.0.165.52.0.1 TCPTCP 8080
IP virtual 22 65.52.0.265.52.0.2 TCPTCP 8080

La DIP es el destino del flujo de entrada.The DIP is the destination of the inbound flow. En el grupo back-end, cada máquina virtual expone el servicio deseado en un puerto único en una DIP.In the backend pool, each VM exposes the desired service on a unique port on a DIP. Este servicio está asociado con el front-end a través de una definición de regla.This service is associated with the frontend through a rule definition.

Se definen dos reglas:We define two rules:

ReglaRule Asignación de front-endMap frontend Para grupo back-endTo backend pool
11 IP virtual VIP1:80VIP1:80 back-end DIP1:80,DIP1:80, back-end DIP2:80DIP2:80
22 IP virtual VIP2:80VIP2:80 back-end DIP1:81,DIP1:81, back-end DIP2:81DIP2:81

La asignación completa en Azure Load Balancer ahora se realiza como sigue:The complete mapping in Azure Load Balancer is now as follows:

ReglaRule Dirección IP de IP virtualVIP IP address protocoloprotocol puertoport DestinoDestination puertoport
Regla 11 65.52.0.165.52.0.1 TCPTCP 8080 Dirección IP de DIPDIP IP Address 8080
Regla 22 65.52.0.265.52.0.2 TCPTCP 8080 Dirección IP de DIPDIP IP Address 8181

Cada regla debe generar un flujo con una combinación única de dirección IP de destino y puerto de destino.Each rule must produce a flow with a unique combination of destination IP address and destination port. Al variar el puerto de destino del flujo, varias reglas pueden entregar flujos en la misma DIP en puertos diferentes.By varying the destination port of the flow, multiple rules can deliver flows to the same DIP on different ports.

Los sondeos de estado siempre se dirigen a la DIP de una máquina virtual.Health probes are always directed to the DIP of a VM. Debe asegurarse de que el sondeo refleja el estado de la máquina virtual.You must ensure you that your probe reflects the health of the VM.

Tipo de regla 2: reutilización de puerto back-end mediante IP flotanteRule type #2: backend port reuse by using Floating IP

Azure Load Balancer proporciona la flexibilidad para reutilizar el puerto front-end en varias direcciones IP virtuales independientemente del tipo de regla que se utiliza.Azure Load Balancer provides the flexibility to reuse the frontend port across multiple VIPs regardless of the rule type used. 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.Additionally, some application scenarios prefer or require the same port to be used by multiple application instances on a single VM in the backend pool. 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.Common examples of port reuse include clustering for high availability, network virtual appliances, and exposing multiple TLS endpoints without re-encryption.

Si desea reutilizar el puerto back-end en varias reglas, debe habilitar la IP flotante en la definición de la regla.If you want to reuse the backend port across multiple rules, you must enable Floating IP in the rule definition.

La IP flotante es una parte de lo que se conoce como Direct Server Return (DSR).Floating IP is a portion of what is known as Direct Server Return (DSR). DSR consta de dos partes: una topología de flujo y un esquema de asignación de direcciones IP.DSR consists of two parts: a flow topology and an IP address mapping scheme. 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.At a platform level, Azure Load Balancer always operates in a DSR flow topology regardless of whether Floating IP is enabled or not. Esto significa que la parte de salida de un flujo siempre se reescribe correctamente para que se dirija de nuevo al origen.This means that the outbound part of a flow is always correctly rewritten to flow directly back to the origin.

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.With the default rule type, Azure exposes a traditional load balancing IP address mapping scheme for ease of use. Habilitar la dirección IP flotante cambia el esquema de asignación de direcciones IP para permitir una flexibilidad adicional, como se explica a continuación.Enabling Floating IP changes the IP address mapping scheme to allow for additional flexibility as explained below.

En el siguiente diagrama, se ilustra esta configuración:The following diagram illustrates this configuration:

Ilustración de varias IP virtuales

En este escenario, cada máquina virtual del grupo back-end tiene tres interfaces de red:For this scenario, every VM in the backend pool has three network interfaces:

  • DIP: una NIC virtual asociada a la máquina virtual (configuración IP del recurso NIC de Azure)DIP: a Virtual NIC associated with the VM (IP configuration of Azure's NIC resource)
  • VIP1: una interfaz de bucle invertido en el SO invitado que se configura con la dirección IP de VIP1VIP1: a loopback interface within guest OS that is configured with IP address of VIP1
  • VIP2: una interfaz de bucle invertido en el SO invitado que se configura con la dirección IP de VIP2VIP2: a loopback interface within guest OS that is configured with IP address of VIP2

Importante

La configuración de las interfaces lógicas se ejecuta en el SO invitado.The configuration of the logical interfaces is performed within the guest OS. Esta configuración no se ejecuta ni administra en Azure.This configuration is not performed or managed by Azure. Sin esta configuración, las reglas no funcionarán.Without this configuration, the rules will not function. Las definiciones de sondeo de estado usan la DIP de la máquina virtual en lugar de la dirección IP virtual lógica.Health probe definitions use the DIP of the VM rather than the logical VIP. Por lo tanto, el servicio debe proporcionar las respuestas del sondeo en un puerto DIP que reflejen el estado del servicio ofrecido en la dirección IP virtual lógica.Therefore, your service must provide probe responses on a DIP port that reflect the status of the service offered on the logical VIP.

Se asume que la configuración front-end es la misma que en el escenario anterior:Let's assume the same frontend configuration as in the previous scenario:

IP virtualVIP Dirección IPIP address protocoloprotocol puertoport
IP virtual 11 65.52.0.165.52.0.1 TCPTCP 8080
IP virtual 22 65.52.0.265.52.0.2 TCPTCP 8080

Se definen dos reglas:We define two rules:

ReglaRule Asignación de front-endMap frontend Para grupo back-endTo backend pool
11 Regla VIP1:80VIP1:80 back-end VIP1:80 (en VM1 y VM2)VIP1:80 (in VM1 and VM2)
22 Regla VIP2:80VIP2:80 back-end VIP2:80 (en VM1 y VM2)VIP2:80 (in VM1 and VM2)

En la tabla siguiente se muestra la asignación completa en el equilibrador de carga:The following table shows the complete mapping in the load balancer:

ReglaRule Dirección IP de IP virtualVIP IP address protocoloprotocol puertoport DestinoDestination puertoport
IP virtual 11 65.52.0.165.52.0.1 TCPTCP 8080 igual que la dirección VIP (65.52.0.1)same as VIP (65.52.0.1) igual que la dirección VIP (80)same as VIP (80)
IP virtual 22 65.52.0.265.52.0.2 TCPTCP 8080 igual que la dirección VIP (65.52.0.2)same as VIP (65.52.0.2) igual que la dirección VIP (80)same as VIP (80)

El destino del flujo de entrada es la dirección IP virtual en la interfaz de bucle invertido en la máquina virtual.The destination of the inbound flow is the VIP address on the loopback interface in the VM. Cada regla debe generar un flujo con una combinación única de dirección IP de destino y puerto de destino.Each rule must produce a flow with a unique combination of destination IP address and destination port. Al variar la dirección IP de destino del flujo, se puede reutilizar el puerto en la misma máquina virtual.By varying the destination IP address of the flow, port reuse is possible on the same VM. El servicio se expone al equilibrador de carga enlazándolo con la dirección IP de la IP virtual y al puerto de la interfaz de bucle invertido correspondiente.Your service is exposed to the load balancer by binding it to the VIP’s IP address and port of the respective loopback interface.

Observe que este ejemplo no cambia el puerto de destino.Notice that this example does not change the destination port. Aunque se trata de un escenario de IP flotante, Azure Load Balancer también admite la definición de una regla para volver a escribir el puerto de destino back-end y para que sea diferente del puerto de destino front-end.Even though this is a Floating IP scenario, Azure Load Balancer also supports defining a rule to rewrite the backend destination port and to make it different from the frontend destination port.

El tipo de regla de dirección IP flotante es el fundamento de varios modelos de configuración del equilibrador de carga.The Floating IP rule type is the foundation of several load balancer configuration patterns. Un ejemplo que está disponible actualmente es la configuración SQL AlwaysOn con varios agentes de escucha .One example that is currently available is the SQL AlwaysOn with Multiple Listeners configuration. Con el tiempo, se documentarán varios de estos escenarios.Over time, we will document more of these scenarios.

LimitacionesLimitations

  • Solo se admiten varias configuraciones de IP virtual con máquinas virtuales de IaaS.Multiple VIP configurations are only supported with IaaS VMs.
  • Con la regla de dirección IP flotante, la aplicación debe utilizar la DIP para los flujos salientes.With the Floating IP rule, your application must use the DIP for outbound flows. Si la aplicación se enlaza a la dirección IP virtual configurada en la interfaz de bucle invertido en el sistema operativo invitado, a continuación, SNAT no está disponible para volver a escribir el flujo de salida y, por tanto, se produce un error en el flujo.If your application binds to the VIP address configured on the loopback interface in the guest OS, then SNAT is not available to rewrite the outbound flow and the flow fails.
  • Las direcciones IP públicas repercuten en la facturación.Public IP addresses have an effect on billing. Para obtener más información, vea Precios de las direcciones IPFor more information, see IP Address pricing
  • Se aplican los límites de suscripción.Subscription limits apply. Para más información, vea los límites de servicio .For more information, see Service limits for details.