Was gibt ein Load Balancer zurück?

12

Was passiert als Nächstes, wenn ein Benutzer den Load Balancer trifft und der Load Balancer bestimmt, an welchen Webserver er weitergeleitet werden soll? Leitet der Load Balancer die Anforderung und alle ihre Daten an den Webserver weiter, empfängt er die Antwort des Webservers und gibt diese an den Benutzer zurück?

Oder ist es eher eine Umleitung, bei der der Load Balancer die IP-Adresse des ausgewählten Servers buchstäblich nur an den Browser zurückgibt und der Browser eine neue Verbindung mit dem angegebenen Server herstellen muss?

Mein Instinkt sagt, dass es nicht Letzteres sein würde, da dies bedeuten würde, dass alle Webserver-IP-Adressen öffentlich wären, und ich dachte aus Sicherheitsgründen, dass es am besten ist, Load Balancer-Adressen nur der Öffentlichkeit zugänglich zu machen. Andererseits bin ich mir nicht ganz sicher, denn wenn Sie SSL terminationam Load Balancer aktivieren , muss SSL dann nicht mit dem umgeleiteten Server erneut hergestellt werden?

smaili
quelle

Antworten:

13

Die End-IP wird nicht veröffentlicht. Der Prozess funktioniert tatsächlich so, dass der Client (ein Benutzer, der den Balancer trifft) glaubt, mit dem Balancer zu kommunizieren, während er mit einem tatsächlichen Knoten spricht.

In einer sehr einfachen Erklärung funktionieren die meisten Transaktionen folgendermaßen:

  1. Ein Benutzer fordert den Load Balancer an.
  2. Der Balancer entscheidet, welcher Knoten am besten geeignet ist (basierend auf der Strategie, die Sie für den Ausgleich verwenden) und wählt (ändert) die Ziel-IP.
  3. (Hier geschieht die Magie.) Der Knoten empfängt eine Anfrage, akzeptiert die Verbindung und antwortet dem Balancer.
  4. Der Balancer ändert die Antwort-IP zurück in eine virtuelle, die des Balancers, und leitet die Antwort an den Benutzer weiter.
  5. Voilà, der Benutzer erhält eine Antwort mit der IP der ersten Anfrage, obwohl diese tatsächlich woanders verarbeitet wurde.

Beachten Sie, dass das Umschreiben von Paketen (die Änderung der IP-Adresse in Schritt 4) sehr wichtig ist. Ohne sie würde der Client, der ein Paket von einer nicht vertrauenswürdigen IP empfängt, die Antwort einfach verwerfen.

Andy
quelle
4

Lad Balancer arbeitet an Layer 4 OSI. Es entkapselt das Paket bis zur Portnummer und leitet das Paket dann mit einem der drei Modi weiter.

Der Load Balancer kann im 3-Modus arbeiten: 1. Direktes Routing In diesem Modus verwendet Ihr Realserver IP Public. Der Balancer empfängt das Paket und entkapselt es bis Schicht 4. Wenn die Lastausgleichsregel übereinstimmt, wird das Paket (ohne Änderung) an einen Realserver umgeleitet. Realserver haben eine Aliasadresse, die mit der Lastausgleichsadresse identisch ist. Wenn der Realserver also ein Paket mit einem xxx.xxx.xxx.xxx-Ziel empfängt, definiert er dieses Paket direkt an seiner Adresse (Alias). Und dann echte Serverantwortanforderung an den Client direkt (nicht über Loadbalance).

2. NAT In diesem Modus wird die Paketumleitung mit Änderung der Zieladresse an den Realserver weitergeleitet. Die Zieladresse wird durch die Realserver-Adresse (NAT) ersetzt. In diesem Modus benötigt Ihr Realserver keine öffentliche IP-Adresse, sondern kann Ihr lokales Netzwerk verwenden. Und dann wird dem Paket keine neue Zieladresse zugestellt. Wenn der Realserver ein Paket empfängt, wird es über das Gateway (Loadbalance) auf die Clientanforderungsadresse antworten. In diesem Modus wird Ihr Loadbalance als Router und als Gateway Ihres Realservers verwendet.

3. Tunnel In diesem Modus wird das Paket mit einer neuen src-dst-Adresse (wie vpn) getunnelt, um das Paket an den Realserver zu übermitteln. Wenn ein Paket im Realserver empfangen wird, antwortet der Realserver über eine getunnelte Pipe auf den Lastausgleich. Und dann Antwort auf die Lastausgleichszustellung an die reale Anforderungsquellenadresse.

Bei HTTPS / SSL wird der Lastenausgleich nicht verarbeitet, der Lastenausgleich wird bis zum OSI der Schicht 4 ausgeführt. Die obige Schicht 5 wird im Realserver verarbeitet. Also TCP 3-Wege-Hanshake, SSL / HTTPS, das in Realserver verarbeitet wurde. Loadbalance nur Direktor des Pakets.

Ich hoffe meine kleine Erklärung wird etwas helfen.

dek.tiram
quelle
Es scheint, dass Sie hier über lvs sprechen, aber es ist nicht unbedingt die Art und Weise, wie der http (s) -Lastausgleich funktioniert. Schauen Sie sich zum Beispiel Haproxy an. Diese App führt einen Lastenausgleich im Userland durch und bietet außerdem nützliche Backend-Routing-Funktionen.
Friek
In meinem Rechenzentrum verwende ich lvs, um meinen https-App-Dienst auszugleichen, und er funktioniert und läuft gut.
dek.tiram
Entschuldigen Sie meine Unwissenheit, aber was ist "lvs"? Ist es ein Konkurrent von Haproxy?
Smaili
Haproxy verwendet auch lvs. Ich benutze Piranha, die auch Lvs für den Kernprozess verwenden.
dek.tiram
haproxy ist eine eigenständige Anwendung und benötigt überhaupt keine lvs (es ist nicht einmal bekannt, dass es lvs gibt). Sie können lvs verwenden, um einen Cluster von Haproxy-Knoten auszugleichen, wenn die Belastung von Haproxy jedoch zu hoch wird.
Friek
-1

Ein Load Balancer kann entweder ein Router oder ein Reverse Proxy sein:

LVS ist das branchenübliche Layer 4- Lastausgleichsmodul (Routing-basiert) für den Linux-Kernel. Es wird in verschiedenen kommerziellen Load Balancern verwendet, darunter Barracuda, Loadbalancer.org und Kemp Technologies. Barracuda und Loadbalancer.org verwenden HAProxy auch für den Layer 7-Lastausgleich ( Reverse-Proxy-basiert ).

Ps. Ich habe vergessen, dass dies nicht zeigt, woher ich komme, was offensichtlich Loadbalancer.org ist

Malcolm Turnbull
quelle
1
Wenn Sie Links zu externen Ressourcen veröffentlichen, wird erwartet, dass Sie die Zugehörigkeit offenlegen, siehe Wie man kein Spammer ist
Mücke