
私は現在、インターネット ユーザーに強化されたプライバシーを提供する OpenVPN サービスを設計しています。
これまでのところ、私は CentOS と Xen を実行する専用サーバーを使用して、高可用性と負荷分散のために複数のドメインにそれぞれ OpenVPN サーバーを提供するつもりです。
1 つの domU がダウンした場合、同じホスト上で 2 番目の domU を自動的に起動したいです。このタイプのフェイルオーバーは可能ですか?
domU サーバーへの VPN 接続を負荷分散するためのソリューションはありますか?
答え1
はい、Xen DomU の状態を監視し、DomU に障害が発生した場合に任意のコマンドを実行することは可能です。プライマリ OpenVPN DomU をチェックし、プライマリに障害が発生した場合にセカンダリ DomU を起動するように Dom0 に指示する Monit デーモンのインスタンスを 3 番目のホスト (DomU または物理) で実行できます。Monit のドキュメントには、これを実装する方法を示す多くの例があります。
はい、OpenVPN には高可用性や負荷分散機能が組み込まれており、セットアップも非常に簡単です。
まず、複数の OpenVPN サーバーを並行して実行し、各サーバーが独自の IP アドレスでリッスンします。サーバーは状態を共有せず、互いの情報を一切知りません。
次に、コマンドラインまたは OpenVPN クライアントの設定ファイルで、複数の '--remote' オプションを指定します。クライアントが複数のリモート サーバー オプションを利用できる場合、クライアントはランダムに 1 つを選択して接続します。そのサーバーが失敗した場合は、接続を再試行し、接続に失敗した場合は別のサーバーをランダムに選択します。詳細については、OpenVPN ドキュメントを参照してください。
同様の質問に対する私の回答をここでご覧になりたいかもしれません:
他の回答でも述べたように、特に次のクライアント オプションに注意を払う必要があります。
- 接続再試行
- 接続再試行最大回数
- リモートランダム
- ifconfig プール持続
もちろん、これは本当の負荷分散ではありません。OpenVPN クライアントは、負荷が最も低いサーバーやクライアントが最も少ないサーバーを選択するのではなく、ランダムにサーバーを選択するからです。サーバーの負荷が均等に保たれるように本当の負荷分散が必要な場合は、ハードウェアまたはソフトウェアのいずれかの専用の負荷分散ソリューションを見つける必要があります。
答え2
おそらく、通常の Linux HA クラスターの 2 つのノードのように、2 つの domU VM を構成できます。ただし、この構成は、2 番目のノードがスタンバイ状態であり、オフになっていない場合にのみ機能すると思います。最初のノードが動作しない場合にバックアップ domU ノードを起動するには、最初のノードの状態を永久にチェックし、障害が発生した場合に強制的に完全にシャットダウンしてバックアップを起動するスクリプトを dom0 レベルで記述する必要があると思います (このようなシェル スクリプトはそれほど難しくないと思います。または、このジョブを実行できる Linux 用の優れたソフトウェアを使用することもできますが、より煩わしい場合があります)。
また、このために、通常の Linux マシンのように 2 つの VM を検討し、負荷分散の標準 Linux ソリューションをインストールして使用することもできます。
答え3
OpenVPN HA クラスターのセットアップには、OpenVPN、WAN ロード バランシング、OSPF を組み合わせて使用できます。最新の HOWTO がここにあります: http://www.vyatta4people.org/highly-available-openvpn-connection-between-two-offices/ 楽しむ!