Konfiguration der unverankerten IP von Azure Load Balancer
Load Balancer verfügt über mehrere Funktionen für UDP- und TCP-Anwendungen.
Unverankerte IP
In einigen Anwendungsszenarien ist es eine Priorität bzw. Anforderung, dass der gleiche Port für mehrere Anwendungsinstanzen auf einer einzelnen VM im Back-End-Pool verwendet wird. 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 in der Regeldefinition Floating IP aktivieren. Das Aktivieren der Unverankerten IP ermöglicht mehr Flexibilität.
Unverankerter IP-Status | Ergebnis |
---|---|
Unverankerte IP-Adresse aktiviert | Azure ändert die IP-Adresszuordnung zur Front-End-IP-Adresse des Lastenausgleichs |
Unverankerte IP deaktiviert | Azure legt die IP-Adresse der VM-Instanzen offen |
In den folgenden Diagrammen sehen Sie, wie die IP-Adresszuordnung vor und nach dem Aktivieren von Floating IP vorgenommen wird:
Sie konfigurieren Floating IP mit Hilfe einer Load Balancer-Regel über das Azure-Portal, die REST-API, die CLI, PowerShell oder einen anderen Client. Zusätzlich zur Regelkonfiguration müssen Sie auch das Gastbetriebssystem Ihres virtuellen Computers konfigurieren, um Floating IP zu verwenden.
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 |
---|---|---|---|
1 | 65.52.0.1 | TCP | 80 |
2 | 65.52.0.2 | TCP | 80 |
Wir definieren zwei Floating IP-Regeln:
Regel | Front-End | Zuordnung zum Back-End-Pool |
---|---|---|
1 | FIP1:80 | FIP1:80 (in VM1 und VM2) |
2 | FIP2:80 | 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 |
---|---|---|---|---|---|
1 | 65.52.0.1 | TCP | 80 | Identisch mit dem Front-End (65.52.0.1) | Identisch mit dem Front-End (80) |
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. Ausführlichere Informationen zu den spezifischen Gastbetriebssystemkonfigurationen, die zum Aktivieren der unverankerten IP erforderlich sind, finden Sie im nächsten Abschnitt unter Konfiguration der unverankerten IP von Azure Load Balancer.
Unverankerte IP-Gastbetriebssystem-Konfiguration
Voraussetzung dafür ist, dass Sie das Gastbetriebssystem für die VM so konfigurieren, dass es den gesamten Datenverkehr, der zur Frontend-IP-Adresse und zum Port des Lastenausgleichs gesendet wird, empfängt. Das Konfigurieren der VM erfordert, dass Sie:
- eine Loopback-Netzwerkschnittstelle hinzufügen.
- den Loopback mit der Frontend-IP-Adresse des Lastenausgleichs konfigurieren
- sicherstellen, dass Schnittstellen des Systems Pakete senden/empfangen können, denen eine andere IP-Adresse zugewiesen ist. Für Windows-Systeme müssen Sie Schnittstellen festlegen, die das schwache Hostmodell verwenden. Bei Linux-Systemen wird dieses Modell in der Regel standardmäßig verwendet.
- die Host-Firewall so konfigurieren, dass Datenverkehr über den IP-Port des Front-End zugelassen ist.
Hinweis
Die folgenden Beispiele verwenden IPv4. Um IPv6 zu verwenden, ersetzen Sie „ipv6“ durch „ipv4“.
Windows Server
Erweitern
Führen Sie für jeden virtuellen Computer im Back-End-Pool die folgenden Befehle an einer Windows-Eingabeaufforderung auf dem Server aus.
Geben Sie den folgenden Befehl ein, um die Liste der Schnittstellennamen auf Ihrem virtuellen Computer abzurufen:
netsh interface ipv4 show interface
Geben Sie für den Netzwerkadapter des virtuellen Computers (von Azure verwaltet) den folgenden Befehl ein:
netsh interface ipv4 set interface "interfacename" weakhostreceive=enabled
(Ersetzen Sie interfacename durch den Namen dieser Schnittstelle.)
Wiederholen Sie für jede hinzugefügte Loopbackschnittstelle die folgenden Befehle:
netsh interface ipv4 add addr floatingipaddress floatingip floatingipnetmask
netsh interface ipv4 set interface floatingipaddress weakhostreceive=enabled weakhostsend=enabled
(Ersetzen Sie loopbackinterface durch den Namen dieser Loopback-Schnittstelle und floatingip und floatingipnetmask durch die entsprechenden Werte, die der Front-End-IP-Adresse des Lastenausgleichs entsprechen.)
Nutzt der Gasthost eine Firewall, müssen Sie zudem sicherstellen, dass eine Regel eingerichtet ist, damit der Datenverkehr die VM auf den entsprechenden Ports erreichen kann.
Die folgende Beispielkonfiguration verwendet eine Frontend-IP-Konfiguration des Lastenausgleichs von 1.2.3.4 und eine Lastenausgleichs-Regel für Port 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
Erweitern
Führen Sie für jeden VM im Back-End-Pool die folgenden Befehle über eine SSH-Sitzung aus.
Geben Sie den folgenden Befehl ein, um die Liste der Schnittstellennamen auf Ihrem virtuellen Computer abzurufen:
ip addr
Wiederholen Sie für jede Loopbackschnittstelle diese Befehle, die dem Loopbackalias die Floating IP zuweisen:
sudo ip addr add floatingip/floatingipnetmask dev lo:0
(Ersetzen Sie floatingip and floatingipnetmask durch die entsprechenden Werte, die der Frontend-IP-Adresse des Lastenausgleichs entsprechen.)
Nutzt der Gasthost eine Firewall, müssen Sie zudem sicherstellen, dass eine Regel eingerichtet ist, damit der Datenverkehr die VM auf den entsprechenden Ports erreichen kann.
Diese Beispielkonfiguration verwendet eine Frontend-IP-Konfiguration des Lastenausgleichs von 1.2.3.4 und eine Lastenausgleichs-Regel für Port 80. In diesem Beispiel wird auch davon ausgegangen, dass eine UFW (unkomplizierte Firewall) in Ubuntu verwendet wird.
sudo ip addr add 1.2.3.4/24 dev lo:0
sudo ufw allow 80/tcp
Einschränkungen
- Wenn die unverankerte IP für eine Lastenausgleichsregel aktiviert ist, muss Ihre Anwendung die primäre IP-Konfiguration der Netzwerkschnittstelle für ausgehenden Datenverkehr verwenden.
- Wenn Ihre Anwendung an die Front-End-IP-Adresse gebunden ist, die an der Loopback-Schnittstelle im Gastbetriebssystem konfiguriert ist, schreibt der ausgehende Datenfluss von Azure den ausgehenden Datenfluss nicht um, und beim Datenfluss tritt ein Fehler auf. Lesen Sie die Informationen unter Ausgehende Verbindungen in Azure.
Nächste Schritte
- Erfahren Sie mehr über die Verwendung mehrerer Front-Ends mit Azure Load Balancer.
- Informieren Sie sich über Azure Load Balancer – Ausgehende Verbindungen.