Das Edge Services Gateway (ESG) kann als Proxy für den eingehenden Benutzerdatenverkehr angesehen werden.

Warum und wann dieser Vorgang ausgeführt wird

Im Proxymodus verwendet der Load Balancer seine eigene IP-Adresse als Quelladresse, um Anforderungen an einen Backend-Server zu senden. Der Backend-Server interpretiert jeden Datenverkehr so, als würde er vom Load Balancer gesendet und antwortet dem Load Balancer direkt. Dieser Modus wird auch als SNAT-Modus oder nicht-transparenter Modus bezeichnet.

Ein typischer einarmiger NSX-Load-Balancer wird in demselben Subnetz wie seine Backend-Server bereitgestellt, getrennt vom logischen Router. Der virtuelle Server des NSX-Load-Balancer hört eine virtuelle IP auf eingehende Anforderungen ab und verteilt die Anforderungen an die Backend-Server. Für den Datenverkehr in der Gegenrichtung ist eine umgekehrte NAT erforderlich, um die Quell-IP-Adresse vom Backend-Server in eine virtuelle IP- (VIP-)Adresse umzuwandeln und dann die VIP-Adresse an den Client zu senden. Ohne diesen Vorgang wird die Verbindung zum Client unterbrochen.

Nachdem das ESG den Datenverkehr empfangen hat, werden zwei Operationen durchgeführt: Mit der „Destination Network Address Translation“ (DNAT) wird die VIP-Adresse in die IP-Adresse einer Load-Balancer-Maschine umgewandelt. Mit der „Source Network Address Translation“ (SNAT) wird die Client-IP-Adresse durch die ESG-IP-Adresse ersetzt.

Dann sendet der ESG-Server den Datenverkehr an den Load-Balancer-Server und der Load-Balancer-Server sendet die Antwort zurück an das ESG und weiter an den Client. Diese Option ist sehr viel einfacher zu konfigurieren als der Inline-Modus. Es sind aber zwei potenzielle Einschränkungen vorhanden. Erstens erfordert dieser Modus einen dedizierten ESG-Server, zweitens kennen die Load-Balancer-Server die Original-IP-Adresse des Client nicht. Eine Problemumgehung für HTTP/HTTPS-Anwendungen besteht in der Aktivierung von „'X-Forwarded-For' einfügen“ im HTTP-Anwendungsprofil, damit die Client-IP-Adresse in den X-Forwarded-For-HTTP-Header der Anforderung übertragen wird, die zum Backend-Server gesendet wird.

Wenn der Backend-Server die Client-IP-Adresse für andere Anwendungen als HTTP/HTTPS kennen muss, können Sie den IP-Pool so konfigurieren, dass er transparent ist. Wenn sich die Clients nicht in demselben Subnetz befinden wie die Backend-Server, sollte der Inline-Modus verwendet werden. Andernfalls müssen Sie die IP-Adresse des Load Balancer als Standard-Gateway des Backend-Servers verwenden.

Anmerkung:

Die Verbindungsintegrität lässt sich in der Regel auf zwei Arten sicherstellen:

  • SNAT-/Proxy-/nicht-transparenter Modus (siehe Erläuterungen weiter oben)

  • Direct Server Return (DSR)

Im DSR-Modus sendet der Backend-Server die Antwort direkt an den Client. Aktuell unterstützt der NSX-Load-Balancer DSR nicht.

Prozedur

  1. Erstellen Sie ein Zertifikat durch Doppelklicken auf das Edge und durch anschließende Auswahl von Verwalten > Einstellungen > Zertifikat (Manage > Settings > Certificate).

  2. Aktivieren Sie den Dienst des Load Balancer durch Auswahl von Verwalten > Load Balancer > Globale Konfiguration > Bearbeiten (Manage > Load Balancer > Global Configuration > Edit).

  3. Erstellen Sie ein HTTPS-Anwendungsprofil durch Auswahl von Verwalten > Load Balancer > Anwendungsprofile (Manage > Load Balancer > Application Profiles).

    Anmerkung:

    Die in der obigen Abbildung verwendeten selbstsignierten Zertifikate dienen nur der Veranschaulichung.

  4. Optional klicken Sie auf Verwalten > Load Balancer > Dienstüberwachung (Manage > Load Balancer > Service Monitoring) und ändern Sie die Standarddienstüberwachung vom Basis-HTTP/HTTPS-Protokoll in spezifische URL/URIs je nach Anforderung.
  5. Erstellen Sie Serverpools durch Auswahl von Verwalten > Load Balancer > Pools (Manage > Load Balancer > Pools).

    Wenn Sie den SNAT-Modus verwenden möchten, lassen Sie das Kontrollkästchen Transparent in der Poolkonfiguration deaktiviert.

    Stellen Sie sicher, dass die VMs aufgelistet und aktiviert sind.

  6. Optional klicken Sie auf Verwalten > Load Balancer > Pools > Poolstatistik anzeigen (Manage > Load Balancer > Pools > Show Pool Statistics), um den Status zu überprüfen.

    Stellen Sie sicher, dass der Mitgliedsstatus „UP“ ist.

  7. Erstellen Sie einen virtuellen Server durch Auswahl von Verwalten > Load Balancer > Virtueller Server (Manage > Load Balancer > Virtual Servers).

    Wenn Sie den L4-Load-Balancer für UDP oder ein leistungsstärkeres TCP verwenden möchten, aktivieren Sie Beschleunigung aktivieren (Enable Acceleration). Wenn Sie Beschleunigung aktivieren (Enable Acceleration) aktiviert haben, stellen Sie sicher, dass der Firewallstatus auf dem Load-Balancer-NSX Edge auf Aktiviert (Enabled) festgelegt ist, da für L4 SNAT eine Firewall erforderlich ist.

    Stellen Sie sicher, dass die IP-Adresse an den Serverpool gebunden ist.

  8. Optional können Sie, wenn Sie eine Anwendungsregel verwenden, die Konfiguration unter Verwalten > Load Balancer > Anwendungsregeln (Manage > Load Balancer > Application Rules) überprüfen.

  9. Bei der Verwendung einer Anwendungsregel müssen Sie sicherstellen, dass die Anwendungsregel mit dem virtuellen Server verbunden ist. Dies können Sie unter Verwalten > Load Balancer > Virtueller Server > Erweitert (Manage > Load Balancer > Virtual Servers > Advanced) überprüfen.

    Weitere unterstützte Beispiele finden Sie unter https://communities.vmware.com/docs/DOC-31772.

    Im nicht-transparenten Modus kann der Backend-Server nicht die Client-IP, aber die interne IP-Adresse des Load Balancer erkennen. Als Problemumgehung für den HTTP/HTTPS-Datenverkehr aktivieren Sie HTTP-Header 'X-Forwarded-For' einfügen (Insert X-Forwarded-For HTTP header). Wenn diese Option aktiviert ist, fügt der Edge Load Balancer den Header „X-Forwarded-For“ mit dem Wert der Client-Quell-IP-Adresse hinzu.