一つのプロファイルにremote行が二つあっても、二本目のレーンに見えるだけで、実際は二回目の試行です。最初のendpointが応答をやめると、クライアントは次へ移り、セッションは広がりません。このリストを早い段階でフェイルオーバーと呼んでおかないと、間違ったつまみを調整することになります。

remoteのリストが与えるもの

プロファイルは容量のプールではなく、順序づけられた試行の集合として扱ってください。各エントリがトンネルを立ち上げる順番を得て、セッションは応答したエントリ上に残ります。リストが長くなるのは接続できる確率を上げるのであって、パイプの太さを変えるのではありません。

本当のアグリゲーションは別の仕組みです。一つのフローを複数の経路に分けるには、両端でトラフィックを分割し、順序どおりに再構成するソフトウェアが必要です。

より多くのサーバーでより速いトンネルをうたう業者は、その二つ目のモデルを売っているのであって、長いリストを売っているのではありません。クライアントがendpointを順に試すだけなら、五つのエントリが変えるのは確率だけで、それ以外は何も変わりません。障害のとき、セッションは落ちて別の場所で戻り、ログには新しいendpointとして現れ、決して太いパイプとしては現れません。

設定を一つのendpointに保つブロック

通常のremote行はアドレスを運び、ときにはポートとプロトコルも運びます。endpointにプロキシが必要なとき、またはファイルの他の部分が使わないトランスポートが必要なときは、その設定を接続ブロックに入れて一緒に保ちます。インラインブロックは一つの.ovpnファイルでも機能し、ほとんどのプロファイルはその形で配布されます。

ブロックの外にあるものは、それを上書きしないエントリの既定値として働きます。だからこそ、組み立てたブロック一つと通常のremote四つは、アドレスのリストでは説明できない動作をします。

見覚えのないブロックを削除するのは見た目の問題ではありません。それが属していたendpointはファイルの既定値に戻り、待ち受けているトランスポートとは違うものになることがあります。間違った包みを外すと、一つのエントリだけが失敗して他は動くので、壊れたプロファイルではなく悪いサーバーのように見えます。編集する前に、各remoteをトランスポート、ポート、プロキシと一緒に読んでください。

再試行の順序とremote-randomのコスト

死んだエントリは次の試行までに時間を費やすので、順序は重要です。望むendpointを先頭に置き、残りは順位づけされた代替として扱ってください。

remote-randomは開始順を混ぜ、負荷を同等のサーバーに分散させますが、一つのendpointが明らかに主系のときには裏目に出ます。いずれにせよ、クライアントが選んだendpointをログに残してください;接続が遅く感じるとき、プロファイル名は何も語りません。詳細ログからリンク行をgrepすれば、セッションがどこに着地したか分かります。

運営元を混ぜると信頼の表明が壊れる

プロファイルは身元についての表明でもあり、これらのアドレスは到達したいサービスで、固定した証明書はそれに属します。そのファイルに無料の公開サーバーを混ぜると表明が壊れます:相手の証明書とあなたのものは別のサービスを指します。よくある結果は身元の失敗か、プロバイダーの網の外のホストに資格情報を差し出すことです。代替は運営元が配布する集合の内側に保ち、資格情報と信頼の材料を一致させてください。

二つのプロバイダーのendpointが必要なら、それはルーティングであってプロファイルの編集ではありません。トンネルの上で解いてください——どのトラフィックがどの経路を通るかはそこで決められます。

仮定せずに各エントリを試す

承認されたプロファイル更新のあと、必要な各endpointへ意図的に接続し、どのトランスポートが上がったかを確認してください。詳細な実行でそれが見えます。openvpn --config office.ovpn --verb 4を開始し、期待したアドレスのリンク行を読んでください。次にトンネルの先のリソースを確認してください;エントリはハンドシェイクを完了しても、どこにもルーティングしないことがあります。

フェイルオーバーには希望ではなく独自の試験が必要です。実験室で最初のendpointを遮断し、クライアントを起動して、次へ移るまでの時間を測ってください。遅い最初のエントリの後ろに長いリストを置くより、短くてよく始まるリストのほうがましです。

運営元がリストを変えるたびに再確認してください。取り込んだ集合は、そのエントリが存在し、ブロックが示すトランスポートを話す間だけ役に立ちます。OpenVPN 2.6のマニュアルはここでremote、connection、random-orderの各ディレクティブを扱っており、構文に迷ったときに確認すべき版です。

関連記事