
Zunächst der Hintergrund des Problems: Ich habe einen Cisco CSS11501, den ich zum Lastenausgleich einiger Webserver verwende. Diese Webserver haben zwei Netzwerkschnittstellen, eine interne und eine externe, und wir senden die Anfragen an die interne Schnittstelle.
Wir haben das CSS für NAT konfiguriert, da unsere Webserver die IP-Adresse des Clients sehen müssen.
Da die TCP-Pakete die Webserver mit einer Quelladresse im Internet erreichen, versucht der Webserver, das Paket über die externe Schnittstelle und nicht über den Load Balancer an den Client zurückzusenden. Um zu verhindern, dass diese Anfragen über die externe Schnittstelle zurück ins Internet gesendet werden, haben wir diesen Boxen eine Routing-Regel hinzugefügt, sodass der gesamte Datenverkehr mit einer Quelladresse im Internet den Load Balancer als Gateway verwendet. Dieser Teil funktioniert einwandfrei.
Außerdem möchte ich das CSS als Lastenausgleich für interne Dienste wie unsere MySQL-Slaves verwenden.
Wenn ich das mache, stoße ich auf ein ähnliches Problem; die TCP-Verbindung geht vom Webserver zum Load Balancer und dann vom Load Balancer zum MySQL-Slave, aber das CSS fälscht eine Quelladresse des ursprünglichen Webservers. Der MySQL-Slave versucht dann, die Antwort direkt über das interne Netzwerk und nicht über den Load Balancer an den Webserver zu senden.
Die ideale Lösung wäre, dem CSS zu sagen, dass es im internen Netzwerk kein Quelladressen-Spoofing durchführen soll, sondern dies nur für Anfragen aus dem Internet tun soll. Ist das möglich?
Wenn das nicht gelingt, gibt es eine Möglichkeit, den lastausgeglichenen Datenverkehr zurück über den Lastenausgleich zu leiten und den übrigen Datenverkehr (z. B. SSH) ausschließlich im internen Netzwerk zu belassen?
Gibt es eine andere Möglichkeit, CSS11501 zum Lastenausgleich interner Dienste zu verwenden?
Antwort1
Das CSS fälscht eine Quelladresse des ursprünglichen Webservers. Der MySQL-Slave versucht dann, die Antwort direkt über das interne Netzwerk und nicht über den Load Balancer an den Webserver zu senden.
Ich verstehe nicht, wenn das CSS die Quell-IP fälscht, sollte Ihr MySQL die CSS-IP als Quelle sehen und daher an CSS und nicht an den Webserver antworten, wenn die IP gefälscht ist …
Schauen Sie sich doch einmal dieGruppenbefehl, damit können Sie die Quelladresse der Anfrage für einen oder mehrere Dienste durch eine andere verbergen.
Ich denke, das ist genau das, was Sie für Ihren MySQL-Lastausgleich benötigen