Konfiguration der Floating-IP des Azure Load Balancers

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 von Floating IPs 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
Floating-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: Dieses Diagramm zeigt den Netzwerkdatenverkehr über einen Lastenausgleich vor dem Aktivieren von Floating IP.

Dieses Diagramm zeigt den Netzwerkdatenverkehr über einen Lastenausgleich nach dem Aktivieren von Floating IP.

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.

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.

Floating-IP-Gastbetriebssystem-Konfiguration

Damit es funktioniert, konfigurieren Sie das Gastbetriebssystem für die VM so, dass es den gesamten Datenverkehr, der zur Frontend-IP 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 das System Pakete auf Schnittstellen senden/empfangen kann, denen die IP-Adresse nicht zugewiesen ist. Bei Windows-Systemen müssen die Schnittstellen auf die Verwendung des „schwachen Host-Modells“ eingestellt sein. 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ür jede VM im Backend-Pool fügt man zunächst einen Loopback-Netzwerkadapter hinzu, indem man das Netzwerkmanagement von Windows Server verwendet. Führen Sie dann die folgenden Befehle in einer erhöhten Windows-Eingabeaufforderung auf dem Server aus.

  1. Geben Sie den folgenden Befehl ein, um die Liste der Schnittstellennamen abzurufen, die Sie auf Ihrem virtuellen Computer haben:

    netsh interface ipv4 show interface 
    
  2. Geben Sie für die VM-NIC (von Azure verwaltet) den folgenden Befehl ein, nachdem Sie den Schnittstellennamen durch den Namen der Schnittstelle ersetzt haben, die Sie verwenden möchten:

    netsh interface ipv4 set interface <interface-name> weakhostreceive=enabled
    
  3. Geben Sie für jede hinzugefügte Loopbackschnittstelle die folgenden Befehle ein, nachdem Sie den Loopbackschnittstellennamen durch den Namen der Loopbackschnittstelle und floating-IP und floating-IPnetmask durch die entsprechenden Werte ersetzt haben, die der Front-End-IP des Lastenausgleichs entsprechen:

    netsh interface ipv4 add addr <loopback-interface-name> <floating-IP> <floating-IPnetmask>
    netsh interface ipv4 set interface <loopback-interface-name> weakhostreceive=enabled  weakhostsend=enabled 
    
  4. Wenn der Gasthost eine Firewall verwendet, stelle sicher, dass du eine Regel aufstellst, damit der Datenverkehr die VM an den entsprechenden Ports erreichen kann. Diese Beispielkonfiguration setzt eine Lastbalancer-Frontend-IP-Konfiguration 1.2.3.4 und eine Lastverteilungsregel für Port 80 aus:

    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
    
  5. Überprüfen Sie, dass der Loopback-Schnittstelle die Frontend-IP-Adresse zugewiesen ist:

    netsh interface ipv4 show addresses name="<loopback-interface-name>"
    

    Bestätigen Sie, dass die Ausgabe die Frontend-IP-Adresse enthält. Von einem Client, der den Load Balancer erreichen kann, verbinden Sie sich mit der Frontend-IP-Adresse und dem Regelport, um zu überprüfen, dass der Datenverkehr die VM erreicht.

Ubuntu

Erweitern

Für jede VM im Backend-Pool führen Sie die folgenden Befehle durch eine SSH-Sitzung aus. Linux stellt bereits das lo-Loopback-Gerät bereit; der Befehl verwendet lo:0 als Adressbezeichnung, sodass Sie keine separate Loopback-Schnittstelle erstellen.

  1. Geben Sie den folgenden Befehl ein, um die Liste der Schnittstellennamen auf Ihrem virtuellen Computer abzurufen:

    ip addr
    
  2. Füge die Frontend-IP-Adresse dem Loopback-Gerät hinzu. Ersetzen Sie floating-IP durch die Load-Balancer-Frontend-IP-Adresse und floating-IPnetmask durch die Linux-CIDR-Präfixlänge, wie zum Beispiel 24:

    sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
    
  3. Wenn der Gasthost eine Firewall verwendet, stelle sicher, dass du eine Regel aufstellst, damit der Datenverkehr die VM an den entsprechenden Ports erreichen kann. Diese Beispielkonfiguration setzt eine Load-Balancer-Frontend-IP-Konfiguration 1.2.3.4 voraus, eine Lastverteilungsregel für Port 80 und die Verwendung von UFW (Uncomplicated Firewall) in Ubuntu.

    sudo ip addr add 1.2.3.4/24 dev lo:0
    sudo ufw allow 80/tcp
    
  4. Überprüfen Sie, dass dem Loopback-Gerät die Frontend-IP-Adresse zugewiesen ist:

    ip address show dev lo
    

    Bestätigen Sie, dass die Ausgabe die Frontend-IP-Adresse enthält. Von einem Client, der den Load Balancer erreichen kann, verbinden Sie sich mit der Frontend-IP-Adresse und dem Regelport, um zu überprüfen, dass der Datenverkehr die VM erreicht.

Einschränkungen

Wenn du Floating IP aktivierst, hängt die ausgehende Verbindung davon ab, welche Netzwerkinterface-IP-Konfiguration die Anwendung verwendet und wie die Anwendung an die Loopback-Frontend-IP-Adresse bindet.

  • Wenn die Floating-IP in einer Lastenausgleichsregel aktiviert ist, muss Ihre Anwendung die primäre IP-Konfiguration der Netzwerkschnittstelle für ausgehenden Traffic nutzen.
  • Wenn Ihre Anwendung an die Front-End-IP-Adresse bindet, die auf der Loopbackschnittstelle im Gastbetriebssystem konfiguriert ist, schreibt die ausgehende Verbindung von Azure den ausgehenden Fluss nicht neu, und der Fluss schlägt fehl. Überprüfen Sie die ausgehenden Szenarien.
  • Für sekundäre IP-Konfigurationen in Szenarien mit Lastenausgleich können Sie Floating IP nicht verwenden. Diese Einschränkung gilt nicht für öffentliche Lastenausgleichsgeräte, bei denen die sekundäre IP-Konfiguration IPv6 und Teil einer Dual-Stack-Konfiguration ist, oder für Architekturen, die ein NAT-Gateway für ausgehende Verbindungen verwenden.

Nächste Schritte