TCP-Proxy-Load-Balancing ist ein Reverse-Proxy-Load-Balancer, der TCP-Traffic aus dem Internet auf VM-Instanzen in Ihrem Google Cloud VPC-Netzwerk verteilt. Bei Verwendung des TCP-Proxy-Load-Balancings wird Traffic über eine TCP-Verbindung auf der Load-Balancing-Ebene beendet und dann über TCP oder SSL zum nächstgelegenen verfügbaren Back-End weitergeleitet.
Mit TCP-Proxy-Load-Balancing können Sie eine einzelne IP-Adresse für alle Nutzer auf der ganzen Welt verwenden. Der TCP-Proxy-Load-Balancer leitet den Traffic automatisch an die Back-Ends weiter, die dem Nutzer am nächsten sind.
Auf der Premium-Stufe kann das TCP-Proxy-Load-Balancing als globaler Load-Balancing-Dienst konfiguriert werden. Bei der Standardstufe führt der TCP-Proxy-Load-Balancer das Load-Balancing regional aus. Weitere Informationen finden Sie unter Verhalten des Load-Balancers in Netzwerkdienststufen.
In diesem Beispiel werden die Verbindungen für den Traffic von Nutzern in Seoul und Boston auf der Load-Balancing-Ebene beendet. Diese Verbindungen sind mit 1a
und 2a
gekennzeichnet. Vom Load-Balancer werden separate Verbindungen zu den ausgewählten Back-End-Instanzen aufgebaut. Diese Verbindungen sind mit 1b
und 2b
gekennzeichnet.
TCP-Proxy-Load-Balancing ist für TCP-Traffic an bestimmten gängigen Ports vorgesehen, z. B. Port 25 für Simple Mail Transfer Protocol (SMTP). Weitere Informationen finden Sie unter Angabe von Ports. Verwenden Sie für Client-Traffic, der an diesen Ports verschlüsselt wird, SSL-Proxy-Load-Balancing.
Informationen über die unterschiedlichen Google Cloud-Load-Balancer finden Sie in den folgenden Dokumenten:
Vorteile
Zu den Vorteilen des TCP-Proxy-Load-Balancers gehören:
- IPv6-Beendigung. TCP-Proxy-Load-Balancing unterstützt Client-Traffic sowohl von IPv4- als auch von IPv6-Adressen. IPv6-Anfragen von Clients werden auf der Ebene des Load-Balancings beendet und dann über IPv4 an die Back-Ends weitergeleitet.
- Intelligentes Routing Der Load-Balancer kann Anfragen an Back-End-Speicherorte mit freien Kapazitäten weiterleiten. Im Gegensatz dazu muss ein L3/L4-Load-Balancer ohne Berücksichtigung der Kapazitäten eine Weiterleitung zu regionalen Back-Ends vornehmen. Intelligentes Routing ermöglicht die Bereitstellung mit N+1 oder N+2 anstelle von x*N.
- Sicherheitspatches: Wenn im TCP-Paket Sicherheitslücken auftreten, stellt Cloud Load Balancing für den Load-Balancer automatisch Patches bereit, um für die Sicherheit Ihrer Back-Ends zu sorgen.
- Unterstützung für folgende bekannten TCP-Ports. 5, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 3389, 5222, 5432, 5671, 5672, 5900, 5901, 6379, 8085, 8099, 9092, 9200 und 9300.
Verhalten des Load-Balancers in Netzwerkdienststufen
Das TCP-Proxy-Load-Balancing kann als globaler Load-Balancing-Dienst mit der Premium-Stufe und als regionaler Dienst in der Standardstufe konfiguriert werden.
Premium-Stufe
Sie können nur einen Back-End-Dienst haben und der Back-End-Dienst kann Back-Ends in mehreren Regionen haben. Für globales Load-Balancing stellen Sie Ihre Back-Ends in mehreren Regionen bereit. Der Load-Balancer leitet den Traffic automatisch an die Region weiter, die dem Nutzer am nächsten ist. Ist eine Region ausgelastet, leitet der Load-Balancer neue Verbindungen automatisch zu einer anderen Region mit freien Kapazitäten um. Bestehende Nutzerverbindungen bleiben aber in der aktuellen Region.
So wird der Traffic den Back-Ends zugewiesen:
- Wenn ein Client eine Anfrage sendet, ermittelt der Load-Balancing-Dienst anhand der Quell-IP-Adresse den ungefähren Ursprung der Anfrage.
- Der Load-Balancing-Dienst bestimmt die Standorte der Back-Ends, die dem Back-End-Dienst gehören, deren Gesamtkapazität und deren aktuelle Auslastung.
- Wenn die Back-End-Instanzen, die dem Nutzer am nächsten sind, freie Kapazitäten haben, wird die Anfrage an die nächstgelegene Gruppe von Back-Ends weitergeleitet.
- Eingehende Anfragen an die angegebene Region werden gleichmäßig auf alle verfügbaren Back-End-Instanzen in dieser Region verteilt. Bei sehr kleinen Arbeitslasten kann sich die Verteilung als ungleichmäßig darstellen.
- Wenn es in einer bestimmten Region keine fehlerfreien Back-End-Instanzen mit verfügbarer Kapazität gibt, sendet der Load-Balancer die Anfrage stattdessen an die nächstgelegene Region mit verfügbarer Kapazität.
Standardstufe
Bei der Standardstufe ist das TCP-Proxy-Load-Balancing ein regionaler Dienst. Die Back-Ends müssen sich alle in der Region befinden, die von der externen IP-Adresse und Weiterleitungsregel des Load-Balancers verwendet wird.
Architektur
Die folgenden Komponenten gehören zu TCP-Proxy-Load-Balancern.
Weiterleitungsregeln und IP-Adressen
Weiterleitungsregeln leiten Traffic abhängig von der IP-Adresse, dem Port und dem Protokoll an eine Load-Balancing-Konfiguration weiter, die aus einem Zielproxy und einem Back-End-Dienst besteht.
Jede Weiterleitungsregel stellt eine einzelne IP-Adresse bereit, die Sie in DNS-Einträgen für Ihre Anwendung verwenden können. Ein Load-Balancing für DNS ist nicht erforderlich. Sie können entweder eine statische IP-Adresse reservieren, die Sie verwenden können, oder Cloud Load Balancing eine Adresse für Sie zuweisen lassen. Wir empfehlen, eine statische IP-Adresse zu reservieren. Andernfalls müssen Sie den DNS-Eintrag jedes Mal, wenn Sie eine Weiterleitungsregel löschen und eine neue erstellen, mit der neu zugewiesenen sitzungsspezifischen IP-Adresse aktualisieren.
Externe Weiterleitungsregeln, die in der Definition eines TCP-Proxy-Load-Balancers verwendet werden, können auf genau einen der aufgeführten Ports verweisen, die unter Portspezifikationen für Weiterleitungsregeln aufgeführt sind.
Zielproxys
Durch das TCP-Proxy-Load-Balancing werden TCP-Verbindungen des Clients beendet und neue Verbindungen zu den Back-Ends aufgebaut. Standardmäßig bleiben die ursprüngliche IP-Adresse des Clients und die Portinformationen nicht erhalten. Sie können diese Informationen jedoch mithilfe des Proxy-Protokolls aufbewahren. Die Zielproxys leiten eingehende Anfragen direkt an Back-End-Dienste weiter.
Back-End-Dienste
Back-End-Dienste leiten eingehenden Traffic an mindestens ein verknüpftes Back-End weiter. Jedes Back-End besteht aus einer Instanzgruppe oder einer Netzwerk-Endpunktgruppe und Informationen zur Bereitstellungskapazität des Back-Ends. Die Bereitstellungskapazität für das Back-End basiert auf der CPU oder auf Anfragen pro Sekunde (Requests Per Second, RPS).
TCP-Proxy-Load-Balancer haben jeweils eine einzelne Back-End-Dienstressource. Änderungen am Back-End-Dienst erfolgen nicht sofort. Es kann einige Minuten dauern, bis Änderungen an Google Front Ends (GFEs) wirksam werden.
Der Back-End-Dienst legt die Systemdiagnosen fest, die für die verfügbaren Back-Ends auszuführen sind.
Sie vermeiden Unterbrechungen für Ihre Nutzer weitgehend, wenn Sie den Verbindungsausgleich bei Back-End-Diensten aktivieren. Unterbrechungen dieser Art können auftreten, wenn ein Back-End beendet, manuell entfernt oder durch Autoscaling entfernt wird. Weitere Informationen zum Vermeiden von Dienstunterbrechungen mithilfe des Verbindungsausgleichs finden Sie unter Verbindungsausgleich aktivieren.
Protokoll für die Kommunikation mit den Back-Ends
Wenn Sie einen Back-End-Dienst für den TCP-Proxy-Load-Balancer konfigurieren, legen Sie das Protokoll fest, über das der Back-End-Dienst mit den Back-Ends kommuniziert. Zur Auswahl stehen die Protokolle SSL oder TCP. Der Load-Balancer verwendet nur das angegebene Protokoll und versucht nicht, eine Verbindung mit dem anderen Protokoll auszuhandeln.
Firewallregeln
Die Back-End-Instanzen müssen Verbindungen von den GFE- / Systemdiagnosebereichen des Load-Balancers zulassen. Dies bedeutet, dass Sie eine Firewallregel erstellen müssen, die Traffic von 130.211.0.0/22
und 35.191.0.0/16
zulässt, um Ihre Back-End-Instanzen oder Endpunkte zu erreichen. Diese IP-Adressbereiche werden als Quellen für Systemdiagnose-Pakete und für alle Pakete mit Load-Balancing verwendet, die an Ihre Back-Ends gesendet werden.
Die Ports, die Sie für diese Firewallregel konfigurieren, müssen Traffic zu Back-End-Instanzen oder -Endpunkten zulassen:
- Sie müssen die von jeder Weiterleitungsregel verwendeten Ports zulassen.
- Sie müssen die von jeder Systemdiagnose verwendeten Ports zulassen, die für jeden Back-End-Dienst konfiguriert sind.
Firewallregeln werden auf VM-Instanzebene und nicht auf GFE-Proxys (Google Front End) implementiert. Sie können Google Cloud-Firewallregeln nicht verwenden, um zu verhindern, dass Traffic den Load-Balancer erreicht.
Weitere Informationen zu Systemdiagnosetests und dazu, warum Traffic von 130.211.0.0/22
und 35.191.0.0/16
zugelassen werden muss, finden Sie unter Prüfungs-IP-Bereiche und Firewallregeln.
Quell-IP-Adressen
Die Quell-IP-Adressen für Pakete, die von jeder Instanz oder jedem Container des Back-Ends der virtuellen Maschine erkannt werden, sind Adressen aus folgenden Bereichen:
35.191.0.0/16
130.211.0.0/22
Die Quell-IP-Adresse für tatsächlichen Traffic mit Load-Balancing liegt innerhalb der Systemdiagnose-IP-Bereiche.
Die Quell-IP-Adressen für den Traffic, die von den Back-Ends erkannt werden, entsprechen nicht der externen Google Cloud-IP-Adresse des Load-Balancers. Mit anderen Worten: Es gibt zwei HTTP-, SSL- oder TCP-Sitzungen:
Sitzung 1 vom ursprünglichen Client zum Load-Balancer (GFE):
- Quell-IP-Adresse: Der ursprüngliche Client (oder die externe IP-Adresse, wenn der Client hinter NAT liegt)
- Ziel-IP-Adresse: IP-Adresse Ihres Load-Balancers
Sitzung 2 vom Load-Balancer (GFE) zur Back-End-VM oder zum Back-End-Container:
Quell-IP-Adresse: IP-Adresse aus einem der folgenden Bereiche:
35.191.0.0/16
oder130.211.0.0/22
Eine Vorhersage der tatsächlichen Quelladresse ist nicht möglich.
Ziel-IP-Adresse: Interne IP-Adresse der Back-End-VM oder des Containers im VPC-Netzwerk (Virtual Private Cloud)
Offene Ports
TCP-Proxy-Load-Balancer sind Reverse-Proxy-Load-Balancer. Der Load-Balancer beendet eingehende Verbindungen und öffnet dann neue Verbindungen vom Load-Balancer zu den Back-Ends. Die Reverse-Proxy-Funktion wird von Google Front Ends (GFEs) bereitgestellt.
GFEs haben mehrere offene Ports, mit denen andere Google Cloud-Load-Balancer und Google-Dienste unterstützt werden können. Wenn Sie einen Sicherheits- oder Portscan für die externe IP-Adresse Ihres Load-Balancers ausführen, wirkt es so, als ob weitere Ports offen wären.
Dies hat keine Auswirkungen auf TCP-Proxy-Load-Balancer. Jede externe Weiterleitungsregel, die in einem TCP-Proxy-Load-Balancer verwendet wird, kann auf genau einen der Ports verweisen, die unter Portspezifikationen für Weiterleitungsregeln aufgeführt sind.
Traffic mit einem anderen TCP-Zielport wird nicht an das Back-End des Load-Balancers weitergeleitet. Sie können prüfen, ob der Traffic für zusätzliche Ports verarbeitet wurde, indem Sie versuchen, eine TCP-Sitzung für einen nicht autorisierten Port zu öffnen. Das GFE, das Ihre Anfrage verarbeitet, schließt die Verbindung mit einem TCP-Rücksetzpaket (RST
).
Traffic-Verteilung
Die Art und Weise, wie ein TCP-Proxy-Load-Balancer den Traffic an seine Back-Ends verteilt, hängt vom Load-Balancing-Modus und der ausgewählten Hash-Methode ab, um ein Back-End auszuwählen (Sitzungsaffinität).
Balancing-Modus
Wenn Sie dem Back-End-Dienst ein Back-End hinzufügen, legen Sie einen Load-Balancing-Modus fest.
Beim TCP-Proxy-Load-Balancing sind die Balancing-Modi CONNECTION
oder UTILIZATION
möglich.
Wenn der Load-Balancing-Modus CONNECTION
ist, basiert die Verteilung der Last darauf, wie viele gleichzeitige Verbindungen das Back-End verarbeiten kann. Außerdem müssen Sie einen der folgenden Parameter genau angeben: maxConnections
(außer für regionale verwaltete Instanzgruppen), maxConnectionsPerInstance
oder maxConnectionsPerEndpoint
.
Wenn der Load-Balancing-Modus UTILIZATION
ist, wird die Last anhand der Auslastung der Instanzen in einer Instanzgruppe verteilt.
Informationen zum Vergleichen der Load-Balancer-Typen und der unterstützten Balancing-Modi finden Sie unter Load-Balancing-Methoden.
Sitzungsaffinität
Mit Sitzungsaffinität werden alle Anfragen vom selben Client an dasselbe Back-End gesendet, wenn das Back-End fehlerfrei ist und Kapazität hat.
Das TCP-Proxy-Load-Balancing bietet Client-IP-Affinität, mit der alle Anfragen von derselben Client-IP-Adresse an dasselbe Back-End weitergeleitet werden.
Failover
Wenn ein Back-End fehlerhaft wird, wird der Traffic automatisch zu fehlerfreien Back-Ends in derselben Region weitergeleitet. Wenn alle Back-Ends innerhalb einer Region fehlerhaft sind, wird der Traffic an fehlerfreie Back-Ends in anderen Regionen verteilt (nur Premium-Stufe). Wenn alle Back-Ends fehlerhaft sind, löscht der Load-Balancer den Traffic.
Nächste Schritte
- Informationen zum Konfigurieren eines TCP-Proxy-Load-Balancers finden Sie unter TCP-Proxy-Load-Balancing einrichten.
- Wie Sie ein Monitoring für Ihren TCP-Proxy-Load-Balancer einrichten, erfahren Sie unter Monitoring verwenden.
- Eine Liste der Points of Presence (PoPs) von Google finden Sie unter GFE-Standorte.