
次のようなルーティングテーブルがあります
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.151
10.0.10.0/24 dev eth1 proto kernel scope link src 10.0.10.151
default via 10.0.1.1 dev eth0
リンクは 2 つあり、1 つは LAN を経由して 10.0.1.1 経由でインターネットに接続します。もう 1 つは eth1 に直接接続された ADSL ルーター (10.0.10.1) です。
外部から外部 IP アドレス 10.0.10.1 に接続すると、タイムアウトが発生します。デフォルト ルートを 10.0.10.1 に変更すると、外部から外部 IP アドレス 10.0.10.1 への接続が機能します。したがって、これはルーティングの問題 (パケットは 10.0.10.1 から送信されますが、デフォルト ルートである 10.0.1.1 から送信されます) のように見えますが、解決方法がわかりません。
実際には、デフォルト ルートを 10.0.1.1 にしたいのですが、同じインターフェイス経由で 10.0.10.1 の外部 IP への要求に応答したいだけです。
答え1
iproute2 が提供する高度なルーティング テーブルを使用する必要があります。2 つのテーブルを設定し、IP からのすべてのトラフィックを特定のテーブルに送信します。このテーブルでは、デフォルト ゲートウェイを設定できます。グローバル デフォルト ルートを設定するには、メトリックを使用して、1 つのインターフェイスを他のインターフェイスよりも優先するだけです。
例:
- デフォルトゲートウェイをテーブルに追加します。
ip ルートは 10.0.1.1 テーブル 101 経由でデフォルトを追加します
ip ルートは 10.0.10.1 テーブル 102 経由でデフォルトを追加します
- 特定の IP からのすべてのトラフィックがテーブルに送信されるルールを追加します。
IPルールを10.0.1.151ルックアップ101から追加
10.0.10.151 ルックアップ 102 からの IP ルールの追加
- 優先するゲートウェイのメトリックを追加します。
ip ルートは 10.0.1.151 メトリック 1000 経由でデフォルトを追加します
IPルートは10.0.10.151メトリック2000経由でデフォルトを追加します
これがあなたのスタートに役立つことを願っています :)