Linux で 2 つのデフォルト ルートを設定するにはどうすればよいでしょうか?

Linux で 2 つのデフォルト ルートを設定するにはどうすればよいでしょうか?

Linux でルーティング サーバーを設定しています。

  1. インターネットへのイーサネット リンク (eth0) (高速ですが、一部のサイトにアクセスできません)。
  2. ローカル ユーザーにインターネット アクセスを提供する OpenVPN リンク (tun0)。
  3. 2 番目のインターネット リンク (低速、無料) であるプロキシ サーバーへの OpenVPN リンク (tun1)。

私の目標は次のとおりです。一般的なインターネット アクセスについては、eth0 経由でルーティングします。eth0 にリンクできないサイトについては、tun1 経由でルーティングします。

最初の実験は成功しました。いくつかのテスト サイトに手動でルーティング テーブルを設定しましたが、期待どおりに動作しました。ただし、テスト サイトは数千あり、時間の経過とともに変化します。そのため、別の方法を探す必要があります。

私は、Quagga (Zebra と OSPFD を有効にして) を設定しようとしましたが、ユーザーがリンク 1 (eth0) 経由でサイトにアクセスできない場合は、自動的に tun1 を通過するようにしたいです。実際には、tun1 と eth0 の両方をデフォルト ルートとして設定しましたが、希望どおりの結果は得られません。

この問題により数日間ブロックされました。私は ospf に精通していないため、ospfd でそれが可能かどうかはわかりません。

皆さんの提案が必要です。もっと良い方法があれば訂正してください。

答え1

ここでの問題は、OpenVPN クライアント マシンでルーティング ルールを設定する必要があるということだと理解しています。OpenVPN サーバー構成でルート プッシュを試しましたか?

push "route IP MASK vpn_gateway";

(交換するIPそしてマスクルーティングターゲットに合わせて適宜変更します。

使用ccdオプションでは、クライアントごとに異なるルールを適用することもできます。man openvpn詳細についてはお問い合わせください。引くまたはクライアントクライアント設定のディレクティブ。

関連情報