1つのインターフェースからのすべてのトラフィックを、異なるIPを持つデフォルトゲートウェイにルーティングする

1つのインターフェースからのすべてのトラフィックを、異なるIPを持つデフォルトゲートウェイにルーティングする

状況:

eth0 - インターネットアクセスのあるデフォルトネットワーク IP: 192.168.2.1 デフォルトゲートウェイ: 192.168.2.254

eth0:1 192.168.2.2 仮想NIC、eth0と同じだがIPが異なる。同じケーブルこのIPはインターネットアクセスが異なる

eth1: 192.168.0.1

eth2: 192.168.1.1

eth1とeth2からのすべてのトラフィックは192.168.2.1を使用して192.168.2.254にルーティングされます。

eth2から来るすべてのトラフィックを192.168.2.254にルーティングする必要がありますが、セカンダリIP 192.168.2.2を使用する必要があります。

さまざまな設定を試しましたが、成功しませんでした。

答え1

これはソースポリシールーティングと呼ばれます。ソースポリシールーティングの設定手順については、Linux Advanced Routing & Traffic Control HOWTOで

肝心なのは、INET2 のような名前で新しいルーティング テーブルをシステムに追加することです (これらのコマンドは root として実行する必要があります)。

エコー 200 INET2 >> /etc/iproute2/rt_tables

次に、メイン IP ルーティング テーブルにソース ルールを追加します (これは /24 ネットワークだと思います)。

192.168.1.0/24 テーブル INET2 から IP ルールを追加

次に、INET2 テーブルのデフォルト ルートを割り当てる必要があります (2 番目の接続のデフォルト ゲートウェイについては言及していないので、ここで推測します)。

ip route 192.168.2.253 dev eth0:1 テーブル INET2 経由でデフォルトを追加します

最後に、システム上のルート キャッシュをフラッシュする必要があります。

IPルートフラッシュキャッシュ

この方法で作成されたルールは一時的なものであり、システムを再起動すると消えてしまいます (ただし、INET2 テーブルは保持されます)。そのため、ネットワーク インターフェイスの起動スクリプトにルールを配置する必要があります。これを正確に行う方法は、Linux の特定のディストリビューションによって異なり、実際には別の問題です。

関連情報