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 termination
am Load Balancer aktivieren , muss SSL dann nicht mit dem umgeleiteten Server erneut hergestellt werden?
Antworten:
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:
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.
quelle
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.
quelle
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
quelle