現在の接続が失敗した場合は、「代替」.ovpnsに自動的に接続するようにOpenVPNを設定できますか?

現在の接続が失敗した場合は、「代替」.ovpnsに自動的に接続するようにOpenVPNを設定できますか?

私はDebian 7.8 Wheezyを使用しており、安定したリポジトリにopenvpnをインストールしました。

他のユーザー(コンピュータの知識がないユーザー)のためにシステムを設定して、私が設定した/path/to/one.ovpnメインサーバー()に何らかの理由で障害が発生した場合に/path/to/two.ovpn自動的に接続できるバックアップサーバー()を持たせたいと思います。バックアップとして。

たぶん私は彼らに10個の.ovpnファイルを与えるかもしれません(例:VPNゲート)、ユーザーは手動で何もせずに実際にユーザーを安全に保護しようとします(これらのタスクの1つを想定)。

デフォルトのopenvpn設定またはDebian準拠のサードパーティのGUIを使用してこれを達成する方法はありますか?

それともスクリプトでしょうか? (その後、起動時に実行するように設定できます。)

答え1

今すぐできる最善の方法は、次のようにOpenVPNを適切に設定して、2番目のサーバーがあることを知らせることです。

ロードバランシング/フェイルオーバー構成クライアントの実装

OpenVPNクライアント構成は、ロードバランシングとフェイルオーバーのために複数のサーバーを参照できます。たとえば、

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

OpenVPNクライアントは、server1、server2、server3に順次接続しようとする指示を受け取ります。既存の接続が失われると、OpenVPNクライアントは最近接続されたサーバーを再試行し、失敗するとリストの次のサーバーに移動します。また、OpenVPNクライアントに起動時にサーバーのリストをランダムに割り当てるように、クライアントの負荷が確実にサーバープール全体に分散するように指示することもできます。

remote-random

DNS検証に失敗してOpenVPNクライアントがリスト内の次のサーバーに移動するようにするには、次を追加します。

resolv-retry 60

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

サーバーのリストは、同じシステム上で実行されている複数の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レコ​​ードをランダムに選択します。

源泉: https://openvpn.net/index.php/open-source/documentation/howto.html#loadbalance

答え2

意見を提示する担当者が十分ではありませんが、これを基にしたいと思います。このページremote各項目にプロトコルを指定できます。

サーバーフェイルオーバープロファイルをどのように設定しますか?

接続するサーバーのリストをOpenVPNに提供できます。接続が失敗すると、OpenVPN は応答サーバーが見つかるまでリストを循環します。たとえば、構成ファイルの次のエントリは、まず UDP ポート 1194 を介してサーバー A に接続し、次に TCP ポート 443 を介してサーバー A に接続し、サーバー B でプロセスを繰り返します。 OpenVPNは、接続が成功するか、デフォルト設定で構成できる接続タイムアウトに達するまで再試行し続けます。

remote server-a.example.tld 1194 udp
remote server-a.example.tld 443 tcp
remote server-b.example.tld 1194 udp
remote server-b.example.tld 443 tcp

答え3

<connection>よりhttps://community.openvpn.net/openvpn/wiki/Openvpn24ManPage。これはまさにあなたが探しているものではありませんが、近くで他の人に役立ちます。

<connection> はクライアント接続プロファイルを定義します。クライアント接続プロファイルは、特定の OpenVPN サーバーに接続する方法を説明する OpenVPN オプションのセットです。クライアント接続プロファイルはOpenVPN構成ファイルで指定され、それぞれ<connection>と</connection>で囲まれています。 OpenVPN クライアントは、正常に接続されるまで各接続プロファイルを順番に試みます。

--remote-random は、最初に接続リストを「シャッフル」するために使用できます。

以下は、接続プロファイルの使用例です。

クライアント開発センター

<接続>リモート198.19.34.56 1194 udp</Connection>

<接続>リモート198.19.34.56 443 tcp</接続>

<接続>リモート198.19.34.56 443 tcp httpプロキシ192.168.0.8 8080</接続>

<接続>リモート198.19.36.99 443 tcp httpプロキシ192.168.0.8 8080</接続>

persist-key persist-tun pkcs12 client.p12 remote-cert-tls server verb 3まず、UDPを使用して198.19.34.56:1194のサーバーに接続しようとします。失敗した場合は、TCPを使用して198.19.34.56:443に接続しようとします。この方法も失敗した場合は、TCPを使用してHTTPプロキシ(192.168.0.8:8080〜198.19.34.56:443)を介して接続してみてください。最後に、TCPを使用して同じプロキシを介して198.19.36.99:443のサーバーに接続します。

<connection> ブロック内では、次の OpenVPN オプションを使用できます。

バインド、接続再試行、接続再試行最大、接続タイムアウト、明示的な終了通知、フローティング、フラグメント、httpプロキシ、httpプロキシオプション、link-mtu、ローカル、lport、mssfix、mtu-disc、nobind、ポート、proto 、リモート、rport 、ソックスプロキシ、tun-mtuおよびtun-mtu-extra。

すべてのプロファイルに適用されるオプションを指定するための基本的なメカニズムがあります。上記のオプション(リモートを除く)のいずれかが<connection>ブロックの外側に表示されているが、1つ以上の<connection>ブロックがある構成ファイルに表示される場合、そのオプション設定は構成の<connection>のデフォルト設定として使用されます。ファイル。

たとえば、上記のサンプル設定ファイルでは、ファイルの上部付近の最初の <connection> ブロックの前に nobind オプションが配置されているとします。その効果は、その下のすべての<connection>ブロックでnobindが宣言されているのと同じです。

関連情報