OpenVPNドキュメント

負荷分散/フェールオーバー構成

クライアント

OpenVPNクライアント設定では、負荷分散とフェールオーバーの実現のために複数のサーバーを参照可能です。

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

OpenVPNクライアントにserver1、server2、server3の順に接続を試行します。
既存の接続が切断された場合、OpenVPNクライアントは最後に接続したサーバーへの再接続を試みます。
接続できなかった場合はリスト内の次のサーバーへの接続を試みます。
また、OpenVPN起動時にサーバーに対してランダムに接続するようOpenVPNクライアントに指示することで、結果的にクライアントの負荷が分散されるようになります。

remote-random

DNS参照の失敗時にOpenVPNクライアントをリスト内の次のサーバーに移動させる場合は、以下を追加します。

resolv-retry 60

「60」というパラメータは、リスト内の次のサーバーに移動する前にOpenVPNクライアントがremoteで定義されているDNS参照を試行する時間(秒)を示します。

サーバーリストは、同一マシン上で実行されかつ各々が異なるポートを使用している複数の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名を参照する remoteディレクティブもサポートしています。
この場合、OpenVPNクライアントはDNS参照時に"A"レコードのいずれかをランダムに選択して接続します。


サーバー

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

server1

server 10.8.0.0 255.255.255.0

server2

server 10.8.1.0 255.255.255.0

server3

server 10.8.2.0 255.255.255.0