Mehrere Front-Ends für Azure Load Balancer

Mit Azure Load Balancer können Sie für Dienste an mehreren Ports, mehreren IP-Adressen oder beidem einen Lastenausgleich vornehmen. Sie können einen öffentlichen oder internen Lastenausgleich verwenden, um die Last des Datenverkehrs über eine Reihe von Diensten hinweg auszugleichen, z. B. VM-Skalierungsgruppen oder virtuelle Computer (VMs).

In diesem Artikel werden die Grundlagen des Lastenausgleichs über mehrere IP-Adressen mit demselben Port und Protokoll beschrieben. 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. Mehrere Front-Ends können einer Konfiguration mit einem einzelnen Front-End inkrementell hinzugefügt werden. Mit den Konzepten in diesem Artikel können Sie eine vereinfachte Konfiguration jederzeit erweitern.

Wenn Sie einen Azure Load Balancer definieren, sind eine Front-End- und eine Back-End-Pool-Konfiguration mit einer Lastenausgleichsregel verbunden. Der Integritätstest, auf den durch die Lastenausgleichsregel verwiesen wird, wird verwendet, um die Integrität eines virtuellen Computers auf einem bestimmten Port und Protokoll zu bestimmen. Basierend auf den Ergebnissen des Integritätstests werden neue Flows an VMs im Back-End-Pool gesendet. Das Front-End wird durch eine aus drei Tupeln bestehende IP-Adresse (öffentlich oder intern), ein Transportprotokoll (UDP oder TCP) und eine Portnummer aus der Lastenausgleichsregel definiert. Der Back-End-Pool ist eine Sammlung von VM-IP-Konfigurationen (Teil der NIC-Ressource), die auf den Load Balancer-Back-End-Pool verweisen.

Die folgende Tabelle enthält einige Beispielkonfigurationen des Front-Ends:

Front-End IP-Adresse Protokoll 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

Die Tabelle enthält vier verschiedene Front-End-Konfigurationen. Die Front-Ends 1, 2 und 3 verwenden die gleiche IP-Adresse, aber der Port oder das Protokoll ist für jedes Front-End anders. 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-End-IPs verwendet werden.

Azure Load Balancer bietet Flexibilität beim Definieren der Lastenausgleichsregeln. Eine Lastenausgleichsregel deklariert, wie eine Adresse und ein Port auf dem Front-End der Zieladresse und dem Port auf dem Back-End zugeordnet werden. Ob Back-End-Ports in mehreren Regeln wiederverwendet werden, hängt vom Typ der Regel ab. Für jeden Regeltyp gelten bestimmte Anforderungen, die die Hostkonfiguration und den Testentwurf beeinflussen können. Es gibt zwei Regeltypen:

  1. Die Standardregel ohne Wiederverwendung des Back-End-Ports
  2. Die Floating IP-Regel, bei der Back-End-Ports wiederverwendet werden

Mit Azure Load Balancer können Sie beide Regeltypen in einer Load Balancer-Konfiguration mischen. Der LB kann sie gleichzeitig für einen bestimmten VM oder eine beliebige Kombination verwenden, wenn Sie die Einschränkungen der Regel beachten. Welchen Regeltyp Sie auswählen, hängt von den Anforderungen der Anwendung und der Komplexität bei der Unterstützung der Konfiguration ab. Sie sollten bewerten, welche Regeltypen für Ihr Szenario am besten geeignet sind. Wir untersuchen diese Szenarien näher und beginnen mit dem Standardverhalten.

Regeltyp 1: Keine Wiederverwendung von Back-End-Ports

Diagram of Load Balancer traffic with no backend port reuse.

In diesem Szenario werden die Front-Ends wie folgt konfiguriert:

Front-End IP-Adresse Protokoll port
green frontend 1 65.52.0.1 TCP 80
purple frontend 2 65.52.0.2 TCP 80

Die Back-End-Instanz-IP (BIP) ist die IP-Adresse des Back-End-Diensts im Back-End-Pool. Jeder virtuelle Computer macht den gewünschten Dienst auf einem eindeutigen Port auf der Back-End-Instanz-IP verfügbar. Dieser Dienst ist der Front-End-IP (FIP) über eine Regeldefinition zugeordnet.

Wir definieren zwei Regeln:

Regel Front-End-Zuordnung Im Back-End-Pool
1 green frontend FIP1:80 green backend BIP1:80, green backend BIP2:80
2 VIP FIP2:80 purple backend BIP1:81, purple backend BIP2:81

Die vollständige Zuordnung in Azure Load Balancer sieht jetzt wie folgt aus:

Regel Front-End-IP-Adresse Protokoll port Destination port
green rule 1 65.52.0.1 TCP 80 BIP-IP-Adresse 80
purple rule 2 65.52.0.2 TCP 80 BIP-IP-Adresse 81

Jede Regel muss einen Datenfluss mit einer eindeutigen Kombination aus IP-Zieladresse und Zielport erzeugen. Mehrere Lastenausgleichsregeln können Flows an dieselbe Back-End-Instanz-IP auf verschiedenen Ports liefern, indem sie den Zielport des Flows wechseln.

Integritätstests werden immer an die Back-End-Instanz-IP eines VM weitergeleitet. Sie müssen sicherstellen, dass der Test die Integrität der VM widerspiegelt.

Regeltyp 2: Wiederverwendung von Back-End-Ports mit Floating IP

Azure Load Balancer bietet die Flexibilität, den Front-End-Port für mehrere Front-Ends wiederzuverwenden. 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. 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.

Wenn Sie den Back-End-Port in mehreren Regeln wiederverwenden möchten, müssen Sie Floating IP in der Regeldefinition für den Lastenausgleich aktivieren.

Floating IP ist die in Azure verwendete Benennung für die Komponente „Direct Server Return (DSR)“. DSR besteht aus zwei Teilen: einer Datenflusstopologie und einem Zuordnungsschema für IP-Adressen. Auf Plattformebene wird Azure Load Balancer immer in einer DSR-Datenflusstopologie betrieben, unabhängig davon, ob Floating IP aktiviert ist. Dies bedeutet, dass der ausgehende Teil eines Datenflusses immer ordnungsgemäß so umgeschrieben wird, dass er direkt wieder an den Ursprung übermittelt wird.

Um die Nutzung zu vereinfachen, stellt Azure mit dem Standardregeltyp ein herkömmliches Zuordnungsschema für IP-Adressen für den Lastenausgleich bereit. Durch das Aktivieren von Floating IP ändert sich das Zuordnungsschema für IP-Adressen, sodass größere Flexibilität möglich ist.

Diagram of load balancer traffic for multiple frontend IPs with floating IP.

In diesem Szenario hat jede VM im Back-End-Pool drei Netzwerkschnittstellen:

  • Back-End-IP: eine mit dem VM verknüpfte virtuelle NIC (IP-Konfiguration der NIC-Ressource von Azure)
  • Front-End 1 (FIP1): eine Loopbackschnittstelle im Gastbetriebssystem, die mit der IP-Adresse von FIP1 konfiguriert ist.
  • Front-End 2 (FIP2): eine Loopbackschnittstelle im Gastbetriebssystem, die mit der IP-Adresse von FIP2 konfiguriert ist.

Gehen wir von der gleichen Front-End-Konfiguration wie im vorherigen Szenario aus:

Front-End IP-Adresse Protokoll port
green frontend 1 65.52.0.1 TCP 80
purple frontend 2 65.52.0.2 TCP 80

Wir definieren zwei Floating IP-Regeln:

Regel Front-End Zuordnung zum Back-End-Pool
1 green rule FIP1:80 green backend FIP1:80 (in VM1 und VM2)
2 purple rule FIP2:80 purple backend FIP2:80 (in VM1 und VM2)

Die folgende Tabelle veranschaulicht die vollständige Zuordnung im Load Balancer:

Regel Front-End-IP-Adresse Protokoll port Destination port
green rule 1 65.52.0.1 TCP 80 Identisch mit dem Front-End (65.52.0.1) Identisch mit dem Front-End (80)
purple rule 2 65.52.0.2 TCP 80 Identisch mit dem Front-End (65.52.0.2) Identisch mit dem Front-End (80)

Das Ziel des eingehenden Datenflusses ist nun die Front-End-IP-Adresse der Loopbackschnittstelle des VM. Jede Regel muss einen Datenfluss mit einer eindeutigen Kombination aus IP-Zieladresse und Zielport erzeugen. Durch die Änderung der IP-Zieladresse in die Front-End-IP-Adresse des Datenflusses ist die Portwiederverwendung auf der gleichen VM möglich. 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.

Sie sehen, dass sich der Zielport im Beispiel nicht ändert. Bei Floating IP-Szenarios unterstützt Azure Load Balancer auch das Definieren einer Lastenausgleichsregel, um den Back-End-Zielport zu ändern, damit er sich vom Front-End-Zielport unterscheidet.

Der Floating IP-Regeltyp bildet die Grundlage für mehrere Load Balancer-Konfigurationsmuster. Ein derzeit verfügbares Beispiel ist die Konfiguration eines oder mehrerer Listener für Always On-Verfügbarkeitsgruppen. Mit der Zeit werden weitere dieser Szenarien dokumentiert.

Hinweis

Ausführlichere Informationen zu den spezifischen Gastbetriebssystemkonfigurationen, die zum Aktivieren von Floating IP erforderlich sind, finden Sie unter Konfiguration der unverankerten IP von Azure Load Balancer.

Einschränkungen

  • Mehrere Front End-Konfigurationen werden nur für IaaS-VMs und VM-Skalierungsgruppen unterstützt.
  • Bei der Floating IP-Regel muss die Anwendung die primäre IP-Konfiguration für ausgehende SNAT-Datenflüsse verwenden. Wenn Ihre Anwendung an die Front-End-IP-Adresse gebunden ist, die an der Loopbackschnittstelle im Gastbetriebssystem konfiguriert ist, schreibt die Azure-SNAT für ausgehenden Datenverkehr den ausgehenden Datenfluss nicht um, und beim Datenfluss tritt ein Fehler auf. Lesen Sie die Informationen unter Ausgehende Verbindungen in Azure.
  • Floating IP wird für sekundäre IP-Konfigurationen derzeit nicht unterstützt.
  • Öffentliche IP-Adressen haben Auswirkungen auf die Abrechnung. Weitere Informationen finden Sie unter Preise für IP-Adressen
  • Es gelten Grenzwerte für Abonnements. Weitere Informationen finden Sie unter Einschränkungen für Dienste .

Nächste Schritte