Mehrere Front-Ends für Azure Load BalancerMultiple Frontends for Azure Load Balancer

Mit Azure Load Balancer können Sie für Dienste an mehreren Ports, mehreren IP-Adressen oder beidem einen Lastenausgleich vornehmen.Azure Load Balancer allows you to load balance services on multiple ports, multiple IP addresses, or both. Sie können öffentliche und interne Load Balancer-Definitionen verwenden, um einen Lastenausgleich für Datenflüsse innerhalb einer VM-Gruppe durchzuführen.You can use public and internal load balancer definitions to load balance flows across a set of VMs.

Dieser Artikel beschreibt die Grundlagen dieser Funktion, wichtige Konzepte und Einschränkungen.This article describes the fundamentals of this ability, important concepts, and constraints. Wenn Sie Dienste mit einer IP-Adresse verfügbar machen möchten, finden Sie vereinfachte Anweisungen für öffentliche Load Balancer-Konfigurationen hier und für interne Load Balancer-Konfigurationen hier.If you only intend to expose services on one IP address, you can find simplified instructions for public or internal load balancer configurations. Mehrere Front-Ends können einer Konfiguration mit einem einzelnen Front-End inkrementell hinzugefügt werden.Adding multiple frontends is incremental to a single frontend configuration. Mit den Konzepten in diesem Artikel können Sie eine vereinfachte Konfiguration jederzeit erweitern.Using the concepts in this article, you can expand a simplified configuration at any time.

Wenn Sie einen Azure Load Balancer definieren, sind eine Front-End- und eine Back-End-Pool-Konfiguration über Regeln verbunden.When you define an Azure Load Balancer, a frontend and a backend pool configuration are connected with rules. Mit dem Integritätstest, auf den von der Regel verwiesen wird, wird bestimmt, wie neue Datenflüsse an einen Knoten im Back-End-Pool gesendet werden.The health probe referenced by the rule is used to determine how new flows are sent to a node in the backend pool. Das Front-End (bzw. VIP) wird durch eine aus 3 Tupeln bestehende IP-Adresse (öffentlich oder intern), ein Transportprotokoll (UDP oder TCP) und eine Portnummer von der Lastenausgleichsregel definiert.The frontend (aka VIP) is defined by a 3-tuple comprised of an IP address (public or internal), a transport protocol (UDP or TCP), and a port number from the load balancing rule. Der Back-End-Pool ist eine Sammlung von VM-IP-Konfigurationen (Teil der NIC-Ressource), die auf den Load Balancer-Back-End-Pool verweisen.The backend pool is a collection of Virtual Machine IP configurations (part of the NIC resource) which reference the Load Balancer backend pool.

Die folgende Tabelle enthält einige Beispielkonfigurationen des Front-Ends:The following table contains some example frontend configurations:

Front-EndFrontend IP-AdresseIP address protocolprotocol portport
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

Die Tabelle enthält vier verschiedene Front-Ends.The table shows four different frontends. Die Front-Ends 1, 2 und 3 sind ein einzelnes Front-End mit mehreren Regeln.Frontends #1, #2 and #3 are a single frontend with multiple rules. Die gleiche IP-Adresse wird verwendet, aber der Port oder das Protokoll ist für jedes Front-End anders.The same IP address is used but the port or protocol is different for each frontend. Die Front-Ends 1 und 4 sind ein Beispiel für mehrere Front-Ends, wobei das gleiche Front-End-Protokoll und der gleiche Port für mehrere Front-Ends verwendet werden.Frontends #1 and #4 are an example of multiple frontends, where the same frontend protocol and port are reused across multiple frontends.

Azure Load Balancer bietet Flexibilität beim Definieren der Lastenausgleichsregeln.Azure Load Balancer provides flexibility in defining the load balancing rules. Eine Regel deklariert, wie eine Adresse und ein Port auf dem Front-End der Zieladresse und dem Port auf dem Back-End zugeordnet werden.A rule declares how an address and port on the frontend is mapped to the destination address and port on the backend. Ob Back-End-Ports in mehreren Regeln wiederverwendet werden, hängt vom Typ der Regel ab.Whether or not backend ports are reused across rules depends on the type of the rule. Für jeden Regeltyp gelten bestimmte Anforderungen, die die Hostkonfiguration und den Testentwurf beeinflussen können.Each type of rule has specific requirements that can affect host configuration and probe design. Es gibt zwei Regeltypen:There are two types of rules:

  1. Die Standardregel ohne Wiederverwendung des Back-End-PortsThe default rule with no backend port reuse
  2. Die Floating IP-Regel, bei der Back-End-Ports wiederverwendet werdenThe Floating IP rule where backend ports are reused

Mit Azure Load Balancer können Sie beide Regeltypen in einer Load Balancer-Konfiguration mischen.Azure Load Balancer allows you to mix both rule types on the same load balancer configuration. Der Load Balancer kann sie gleichzeitig für eine bestimmte VM oder eine beliebige Kombination verwenden, sofern Sie die Einschränkungen der Regel beachten.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. Welchen Regeltyp Sie auswählen, hängt von den Anforderungen der Anwendung und der Komplexität bei der Unterstützung der Konfiguration ab.Which rule type you choose depends on the requirements of your application and the complexity of supporting that configuration. Sie sollten bewerten, welche Regeltypen für Ihr Szenario am besten geeignet sind.You should evaluate which rule types are best for your scenario.

Wir untersuchen diese Szenarien näher und beginnen mit dem Standardverhalten.We explore these scenarios further by starting with the default behavior.

Regeltyp 1: Keine Wiederverwendung von Back-End-PortsRule type #1: No backend port reuse

Abbildung mehrerer Front-Ends mit Front-Ends in Grün und Lila

In diesem Szenario werden die Front-Ends wie folgt konfiguriert:In this scenario, the frontends are configured as follows:

Front-EndFrontend IP-AdresseIP address protocolprotocol portport
Front-End (grün) 11 65.52.0.165.52.0.1 TCPTCP 8080
Front-End (lila) 22 65.52.0.265.52.0.2 TCPTCP 8080

Die DIP ist das Ziel des eingehenden Datenflusses.The DIP is the destination of the inbound flow. Im Back-End-Pool macht jede VM den gewünschten Dienst an einem eindeutigen Port einer DIP verfügbar.In the backend pool, each VM exposes the desired service on a unique port on a DIP. Dieser Dienst ist dem Front-End über eine Regeldefinition zugeordnet.This service is associated with the frontend through a rule definition.

Wir definieren zwei Regeln:We define two rules:

RegelRule Front-End-ZuordnungMap frontend Im Back-End-PoolTo backend pool
11 Front-End (grün) Frontend1:80Frontend1:80 Back-End DIP1:80,DIP1:80, Back-End DIP2:80DIP2:80
22 VIP Frontend2:80Frontend2:80 Back-End DIP1:81,DIP1:81, Back-End DIP2:81DIP2:81

Die vollständige Zuordnung in Azure Load Balancer sieht jetzt wie folgt aus:The complete mapping in Azure Load Balancer is now as follows:

RegelRule Front-End-IP-AdresseFrontend IP address protocolprotocol portport ZielDestination portport
Regel (grün) 11 65.52.0.165.52.0.1 TCPTCP 8080 DIP-IP-AdresseDIP IP Address 8080
Regel (lila) 22 65.52.0.265.52.0.2 TCPTCP 8080 DIP-IP-AdresseDIP IP Address 8181

Jede Regel muss einen Datenfluss mit einer eindeutigen Kombination aus IP-Zieladresse und Zielport erzeugen.Each rule must produce a flow with a unique combination of destination IP address and destination port. Durch die Änderung des Zielports für den Datenfluss können mehrere Regeln Datenflüsse an die gleiche DIP an unterschiedlichen Ports übermitteln.By varying the destination port of the flow, multiple rules can deliver flows to the same DIP on different ports.

Integritätstests werden immer an die DIP einer VM weitergeleitet.Health probes are always directed to the DIP of a VM. Sie müssen sicherstellen, dass der Test den Zustand der VM widerspiegelt.You must ensure you that your probe reflects the health of the VM.

Regeltyp 2: Wiederverwendung von Back-End-Ports mit Floating IPRule type #2: backend port reuse by using Floating IP

Azure Load Balancer bietet die Flexibilität, den Front-End-Port unabhängig vom verwendeten Regeltyp für mehrere Front-Ends wiederzuverwenden.Azure Load Balancer provides the flexibility to reuse the frontend port across multiple frontends regardless of the rule type used. Darüber hinaus ist es in einigen Anwendungsszenarien eine Priorität bzw. eine Anforderung, den gleichen Port für mehrere Anwendungsinstanzen auf einer einzelnen VM im Back-End-Pool zu verwenden.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. Gängige Beispiele für die Portwiederverwendung sind das Clustering für Hochverfügbarkeit, virtuelle Netzwerkgeräte und die Bereitstellung mehrerer TLS-Endpunkte ohne erneute Verschlüsselung.Common examples of port reuse include clustering for high availability, network virtual appliances, and exposing multiple TLS endpoints without re-encryption.

Wenn Sie den Back-End-Port in mehreren Regeln wiederverwenden möchten, müssen Sie in der Regeldefinition Floating IP aktivieren.If you want to reuse the backend port across multiple rules, you must enable Floating IP in the rule definition.

„Floating IP“ ist die bei Azure verwendete Benennung für einen Bestandteil von Direct Server Return (DSR)."Floating IP" is Azure's terminology for a portion of what is known as Direct Server Return (DSR). DSR besteht aus zwei Teilen: einer Datenflusstopologie und einem Zuordnungsschema für IP-Adressen.DSR consists of two parts: a flow topology and an IP address mapping scheme. Auf Plattformebene wird Azure Load Balancer immer in einer DSR-Datenflusstopologie betrieben, unabhängig davon, ob Floating IP aktiviert ist.At a platform level, Azure Load Balancer always operates in a DSR flow topology regardless of whether Floating IP is enabled or not. Dies bedeutet, dass der ausgehende Teil eines Datenflusses immer ordnungsgemäß so umgeschrieben wird, dass er direkt wieder an den Ursprung übermittelt wird.This means that the outbound part of a flow is always correctly rewritten to flow directly back to the origin.

Um die Nutzung zu vereinfachen, stellt Azure mit dem Standardregeltyp ein herkömmliches Zuordnungsschema für IP-Adressen für den Lastenausgleich bereit.With the default rule type, Azure exposes a traditional load balancing IP address mapping scheme for ease of use. Durch das Aktivieren von Floating IP ändert sich das Zuordnungsschema für IP-Adressen, sodass größere Flexibilität möglich ist, wie im Folgenden beschrieben.Enabling Floating IP changes the IP address mapping scheme to allow for additional flexibility as explained below.

Das folgende Diagramm veranschaulicht diese Konfiguration:The following diagram illustrates this configuration:

Abbildung mehrerer Front-Ends mit grünen und lilafarbenen Front-Ends mit DSR

In diesem Szenario hat jede VM im Back-End-Pool drei Netzwerkschnittstellen:For this scenario, every VM in the backend pool has three network interfaces:

  • DIP: eine mit der VM verknüpfte virtuelle NIC (IP-Konfiguration der NIC-Ressource von Azure)DIP: a Virtual NIC associated with the VM (IP configuration of Azure's NIC resource)
  • Front-End 1: eine Loopbackschnittstelle im Gastbetriebssystem, die mit der IP-Adresse von Front-End 1 konfiguriert istFrontend 1: a loopback interface within guest OS that is configured with IP address of Frontend 1
  • Front-End 2: eine Loopbackschnittstelle im Gastbetriebssystem, die mit der IP-Adresse von Front-End 2 konfiguriert istFrontend 2: a loopback interface within guest OS that is configured with IP address of Frontend 2

Wichtig

Die Konfiguration der Loopbackschnittstellen erfolgt innerhalb des Gastbetriebssystems.The configuration of the loopback interfaces is performed within the guest OS. Diese Konfiguration wird nicht von Azure vorgenommen oder verwaltet.This configuration is not performed or managed by Azure. Ohne diese Konfiguration funktionieren die Regeln nicht.Without this configuration, the rules will not function. Integritätstestdefinitionen verwenden anstelle der Loopbackschnittstelle, die das DSR-Front-End darstellt, die DIP der VM.Health probe definitions use the DIP of the VM rather than the loopback interface representing the DSR Frontend. Deshalb muss Ihr Dienst Testantworten an einem DIP-Port bereitstellen, die den Status des Diensts wiedergeben, der an der das DSR-Front-End darstellenden Loopbackschnittstelle angeboten wird.Therefore, your service must provide probe responses on a DIP port that reflect the status of the service offered on the loopback interface representing the DSR Frontend.

Gehen wir von der gleichen Front-End-Konfiguration wie im vorherigen Szenario aus:Let's assume the same frontend configuration as in the previous scenario:

Front-EndFrontend IP-AdresseIP address protocolprotocol portport
Front-End (grün) 11 65.52.0.165.52.0.1 TCPTCP 8080
Front-End (lila) 22 65.52.0.265.52.0.2 TCPTCP 8080

Wir definieren zwei Regeln:We define two rules:

RegelRule Front-EndFrontend Zuordnung zum Back-End-PoolMap to backend pool
11 Regel Frontend1:80Frontend1:80 Back-End Frontend1:80 (in VM1 und VM2)Frontend1:80 (in VM1 and VM2)
22 Regel Frontend2:80Frontend2:80 Back-End Frontend2:80 (in VM1 und VM2)Frontend2:80 (in VM1 and VM2)

Die folgende Tabelle veranschaulicht die vollständige Zuordnung im Load Balancer:The following table shows the complete mapping in the load balancer:

RegelRule Front-End-IP-AdresseFrontend IP address protocolprotocol portport ZielDestination portport
Regel (grün) 11 65.52.0.165.52.0.1 TCPTCP 8080 Identisch mit dem Front-End (65.52.0.1)same as frontend (65.52.0.1) Identisch mit dem Front-End (80)same as frontend (80)
Regel (lila) 22 65.52.0.265.52.0.2 TCPTCP 8080 Identisch mit dem Front-End (65.52.0.2)same as frontend (65.52.0.2) Identisch mit dem Front-End (80)same as frontend (80)

Das Ziel des eingehenden Datenflusses ist die Front-End-IP-Adresse der Loopbackschnittstelle der VM.The destination of the inbound flow is the frontend IP address on the loopback interface in the VM. Jede Regel muss einen Datenfluss mit einer eindeutigen Kombination aus IP-Zieladresse und Zielport erzeugen.Each rule must produce a flow with a unique combination of destination IP address and destination port. Durch die Änderung der IP-Zieladresse für den Datenfluss ist die Portwiederverwendung auf der gleichen VM möglich.By varying the destination IP address of the flow, port reuse is possible on the same VM. Ihr Dienst wird für den Load Balancer verfügbar gemacht, indem er an die Front-End-IP-Adresse und den Port der jeweiligen Loopbackschnittstelle gebunden wird.Your service is exposed to the load balancer by binding it to the frontend’s IP address and port of the respective loopback interface.

Beachten Sie, dass in diesem Beispiel der Zielport nicht geändert wird.Notice that this example does not change the destination port. Obwohl dies ein Floating IP-Szenario ist, unterstützt Azure Load Balancer auch das Definieren einer Regel, um den Back-End-Zielport zu ändern, damit er sich vom Front-End-Zielport unterscheidet.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.

Der Floating IP-Regeltyp bildet die Grundlage für mehrere Load Balancer-Konfigurationsmuster.The Floating IP rule type is the foundation of several load balancer configuration patterns. Ein Beispiel, das derzeit verfügbar ist, ist die Konfiguration von SQL AlwaysOn mit mehreren Listenern .One example that is currently available is the SQL AlwaysOn with Multiple Listeners configuration. Mit der Zeit werden weitere dieser Szenarien dokumentiert.Over time, we will document more of these scenarios.

EinschränkungenLimitations

  • Konfigurationen mit mehreren Front-Ends werden nur für IaaS-VMs unterstützt.Multiple frontend configurations are only supported with IaaS VMs.
  • Bei der Floating IP-Regel muss die Anwendung die primäre IP-Konfiguration für ausgehende Datenflüsse verwenden.With the Floating IP rule, your application must use the primary IP configuration for outbound flows. Wenn Ihre Anwendung an die Front-End-IP-Adresse gebunden ist, die an der Loopbackschnittstelle im Gastbetriebssystem konfiguriert ist, ist die Azure-SNAT nicht verfügbar, um den ausgehenden Datenfluss umzuschreiben, und beim Datenfluss tritt ein Fehler auf.If your application binds to the frontend IP address configured on the loopback interface in the guest OS, Azure's SNAT is not available to rewrite the outbound flow and the flow fails.
  • Öffentliche IP-Adressen haben Auswirkungen auf die Abrechnung.Public IP addresses have an effect on billing. Weitere Informationen finden Sie unter Preise für IP-AdressenFor more information, see IP Address pricing
  • Es gelten Grenzwerte für Abonnements.Subscription limits apply. Weitere Informationen finden Sie unter Einschränkungen für Dienste .For more information, see Service limits for details.

Nächste SchritteNext steps