pfSense における OpenVPN フェイルオーバーの三種類と三つの仕組み
予備 WAN、別のリモート、あるいは別の確立済みトンネル。障害ごとに必要な pfSense の設定・監視・状態判断は異なります。まず自分の障害を言葉にしてください。
pfSense の「OpenVPN フェイルオーバー」は、少なくとも 三つの無関係な設計を指します。予備のインターネット回線越しにトンネルを生かし続けること、別のサーバーへ再接続すること、LAN トラフィックを別の確立済みトンネルへ流すことは、ひとつの機能の変種ではありません。ゲートウェイグループを組む前に、どの障害を防ぐのかを決めてください。片方を直すグループは、残り 二つには何もしません。
グループを組む前に障害を名づける
障害中に成り立っていてほしい文を書きます。「トンネルは予備 WAN 経由で再接続する」と「拠点は別のトンネル経由でアプリに到達し続ける」は別の文です。輸送の話は前者だけです。
次に、それを仕組みに対応させます。ローカル WAN の喪失はインターフェース選択の問題、遠端の死は接続リストの問題、確立済みトンネル内の使えない経路はルーティングとポリシーの問題です。
ローカル WAN:輸送を移す
pfSense の OpenVPN クライアントでは、対応するマルチ WAN 構成が適切なゲートウェイグループをクライアントの束縛先インターフェースとして選びます。これが、主回線の障害時に外側の接続を予備回線から出させる仕組みです。それ自体は内側のトラフィックの経路を変えません。
同じ設計のサーバー側は別問題です。複数の公開アドレスから到達されるべき OpenVPN サーバーは、その各項目ごとに待ち受けと入力ポリシーを用意する必要があり、二本の回線から発信できるクライアントだけでは足りません。公開項目が 一つ動いていることは、二つ目が設定済みだという証拠になりません。
転送される LAN パケット向けのポリシールーティング規則は、ローカルで生成された VPN 輸送接続を動かす設定ではありません。これは 二つの別の検索であり、片方を変えても他方は変わりません。
遠端:別のサーバー
代替リモートは接続リストの機能です。現在の項目が応答しないときクライアントは次を試しますが、これは特定のホストが落ちているときに役立ち、自分の上流回線が落ちているときには役立ちません。二つの障害は利用者の机からは似て見えますが、直し方は違います。
各候補は、互換の認証、互換のクライアントポリシー、同じ専用リソースへの到達を備えた本当の代替でなければなりません。同じ壊れた基盤に解決する 二つ目のホスト名は予備ではありません。必要な経路を持たないサーバーも同様で、ハンドシェイクがどれほど健全に見えても変わりません。
この仕組みは 二本のトンネルを同時に転送させるものではありません。接続を 一本ずつ順に置き換え、その間の空白は動いていたすべてに見えます。
トンネルの経路:別の出口を選ぶ
二本のトンネルがすでに上がっていて、より健全な方を使いたい場合、仕組みは専用のゲートウェイを持つ割り当て済み VPN インターフェースと、正しいトラフィックをそこへ送る明示的なポリシー規則です。その割り当てインターフェースの上にゲートウェイグループを組めば、優先度と監視を表現できます。
この設計は選択の話であり、復旧の話ではありません。新しい接続を 二本目へ移しても、一本目にすでに確立したセッションについては何も言えず、相手が新しい送信元アドレスを受け入れるかも分かりません。これを復旧の仕組みと見なすのは、期待値を上げすぎるやり方です。
既存のセッションが生き残ることを要件にするなら、明示してください。ほとんどの実装はトンネル間で生きたフローを移さず、移す前提で設計すると、図の上では正しく見え、実際には開いている接続をすべて落とすフェイルオーバーになります。
監視、NAT、フェイルクローズ規則
監視はトンネルが届けるべきものを試すべきです。トンネルの相手からは応答するが、その先のアプリケーションネットワークからは応答しない目標は、利用者に何も見えていないのに健全と報告します。到達できない診断目標は、経路が正常なのに死んだと報告します。アドレスは意図して選び、想定したトンネル経由でしか届かないことを確認してください。
両方の出口で送信 NAT を確認します。主回線で動く変換は予備の送信元アドレスを説明しませんし、遠端の専用ネットワークは提示する送信元に合う戻り経路を必要とします。片方の経路で正しい変換が、もう片方では静かに間違っていることがあります。
次に、決して WAN を使ってはいけないトラフィック をどうするかを決めます。pfSense は選択したゲートウェイが落ちている規則について定義された挙動を持ち、後段の広い通過規則や既定経路がその意図を覆すことがあります。遮断された結果を要件として書き、経路を落として検証してください。
喪失と復旧を別々に試し、生成を許されたトラフィックで、外側の接続を運ぶ WAN、アプリの要求を運ぶトンネル、応答が通る経路の三つを同時に見ます。緑のゲートウェイ表示 二つは、その 三つには含まれません。 Netgate のマルチ WAN ガイド は、これが依存する輸送の束縛と書き出されるクライアント代替を説明しています。