OpenVPN サーバーによるフェイルオーバーまたはレプリケーション?

OpenVPN サーバーによるフェイルオーバーまたはレプリケーション?

フェイルオーバーとレプリケーション機能を備えた 2 つの OpenVPN を実装することは可能ですか? つまり、1 つがダウンまたは障害を起こした場合でも、もう 1 つを認証、サーバー/クライアント構成などに使用できますか?

答え1

なぜ大砲からハエに向かって撃つのか理解できませんでした。私見では、もっと簡単な方法があります。組み込みの OpenVPN 機能と Linux iproute2 を使用してマルチパス冗長性を実現することです。より安全で、より安定し、リソースの消費も少なくなります。

ソース:https://openvpn.net/index.php/open-source/documentation/howto.html

負荷分散/フェイルオーバー構成クライアントの実装

OpenVPN クライアント構成は、負荷分散とフェイルオーバーのために複数のサーバーを参照できます。例:

remote server1.mydomain
remote server2.mydomain
remote server3.mydomain

は、OpenVPN クライアントに server1、server2、server3 の順に接続を試行するように指示します。既存の接続が切断された場合、OpenVPN クライアントは最後に接続したサーバーを再試行し、それが失敗した場合はリスト内の次のサーバーに移動します。また、OpenVPN クライアントに起動時にサーバー リストをランダム化するように指示して、クライアントの負荷がサーバー プール全体に確率的に分散されるようにすることもできます。

remote-random

DNS 解決の失敗によって OpenVPN クライアントがリスト内の次のサーバーに移動するようにしたい場合は、以下を追加します。

resolv-retry 60

60 パラメータは、OpenVPN クライアントに、リスト内の次のサーバーに移動する前に、各リモート DNS 名の解決を 60 秒間試行するように指示します。

サーバー リストは、同じマシン上で実行され、それぞれが異なるポートで接続をリッスンしている複数の OpenVPN サーバー デーモンを参照することもできます。次に例を示します。

remote smp-server1.mydomain 8000
remote smp-server1.mydomain 8001
remote smp-server2.mydomain 8000
remote smp-server2.mydomain 8001

サーバーがマルチプロセッサ マシンである場合、各サーバーで複数の OpenVPN デーモンを実行すると、パフォーマンスの観点から有利になります。

OpenVPN は、ドメインのゾーン構成に複数の A レコードを持つ DNS 名を参照するリモート ディレクティブもサポートしています。この場合、OpenVPN クライアントはドメインが解決されるたびに A レコードの 1 つをランダムに選択します。サーバー

サーバー上で負荷分散/フェイルオーバー構成を行う最も簡単な方法は、クラスター内の各サーバーで同等の構成ファイルを使用することです。ただし、各サーバーに異なる仮想 IP アドレス プールを使用します。例:

サーバー1

server 10.8.0.0 255.255.255.0

サーバー2

server 10.8.1.0 255.255.255.0

サーバー3

server 10.8.2.0 255.255.255.0

答え2

フェイルオーバー? はい、私はハートビートと CRM を使用して、常にフェイルオーバーを実行しています。状態を複製または保存しようとする価値はありません。フェイルオーバーが発生すると、接続されたすべてのクライアントがいずれにせよ再認証されるため、ロード ウォリアーには適しています。サイト間 VPN には適していませんが、(私見ですが) OpenVPN は、いずれにしても、それらのための適切なツールではありません。

関連情報