
Ich entwickle derzeit einen OpenVPN-Dienst, um Internetnutzern mehr Privatsphäre zu bieten.
Bisher beabsichtige ich, dedizierte Server mit CentOS und Xen zu verwenden, um mehreren Domänen jeweils einen OpenVPN-Server für hohe Verfügbarkeit und Lastausgleich bereitzustellen.
Wenn eine DomU ausfällt, möchte ich automatisch eine zweite DomU auf demselben Host starten. Ist diese Art von Failover möglich?
Gibt es Lösungen zum Lastenausgleich von VPN-Verbindungen zu DomU-Servern?
Antwort1
Ja, es ist möglich, den Status einer Xen DomU zu überwachen und beliebige Befehle auszuführen, wenn die DomU ausfällt. Sie könnten eine Instanz des Monit-Daemons auf einem dritten Host (DomU oder physisch) ausführen, der die primäre OpenVPN DomU überprüft und Dom0 anweist, die sekundäre DomU zu starten, wenn die primäre ausgefallen ist. Die Monit-Dokumentation enthält viele Beispiele, die Ihnen zeigen, wie Sie dies implementieren:
Ja, OpenVPN verfügt über einige integrierte Hochverfügbarkeits- und/oder Lastverteilungsfunktionen und ist ziemlich einfach einzurichten.
Erstens werden Sie mehrere OpenVPN-Server parallel betreiben, wobei jeder Server seine eigene IP-Adresse abhört. Die Server teilen ihren Status nicht und wissen nichts voneinander.
Anschließend geben Sie mehrere Optionen „--remote“ an, entweder in der Befehlszeile oder in der Konfigurationsdatei des OpenVPN-Clients. Wenn dem Client mehrere Remote-Server-Optionen zur Verfügung stehen, wählt er nach dem Zufallsprinzip eine aus und stellt eine Verbindung zu ihr her. Wenn dieser Server ausfällt, versucht er die Verbindung erneut und wählt dann nach dem Zufallsprinzip einen anderen Server aus, wenn die Verbindung nicht hergestellt werden kann. Weitere Informationen finden Sie in den OpenVPN-Dokumenten hier:
Vielleicht möchten Sie hier meine Antwort auf eine ähnliche Frage sehen:
Wie in meiner anderen Antwort erwähnt, sollten Sie insbesondere auf die folgenden Client-Optionen achten:
- Verbindungswiederholung
- Verbindungswiederholungsmaximum
- Remote-Zufallsmodus
- ifconfig-pool-persistent
Natürlich handelt es sich dabei nicht um echtes Load-Balancing, da der OpenVPN-Client nicht den Server mit der geringsten Auslastung oder den wenigsten Clients auswählt, sondern einfach nach dem Zufallsprinzip einen Server auswählt. Wenn Sie echtes Load-Balancing benötigen, um sicherzustellen, dass die Serverlasten ausgeglichen bleiben, müssen Sie eine spezielle Load-Balancing-Lösung finden, entweder Hardware oder Software.
Antwort2
Vielleicht könnten Sie die beiden DomU-VMs wie zwei Knoten eines normalen Linux-HA-Clusters konfigurieren. Aber ich denke, dass diese Konfiguration nur funktionieren kann, wenn der zweite Knoten im Standby-Modus ist und nicht ausgeschaltet wird. Wenn Sie möchten, dass der DomU-Backup-Knoten startet, wenn der erste nicht funktioniert, müssen Sie meiner Meinung nach ein Skript auf Dom0-Ebene schreiben, das dauerhaft ausgeführt wird, den Zustand des ersten Knotens überprüft und im Fehlerfall dessen vollständiges Herunterfahren und den Start des Backups erzwingt (ich denke nicht, dass ein solches Shell-Skript zu schwierig sein sollte, oder vielleicht können Sie eine gute Software für Linux verwenden, die die Aufgabe erledigt, aber es könnte aufdringlicher sein).
Sie könnten hierfür auch die beiden VMs wie bei einer normalen Linux-Maschine in Betracht ziehen und eine Standard-Linux-Lösung zum Lastenausgleich installieren und verwenden.
Antwort3
Für Ihr OpenVPN HA-Cluster-Setup können Sie eine Kombination aus OpenVPN, WAN Load Balancing und OSPF verwenden. Hier gibt es ein neues HOWTO: http://www.vyatta4people.org/highly-available-openvpn-connection-between-two-offices/ Genießen!