eth0だけの通常の構成を行った後、戻ってeth1の構成を追加しました。eth0がアップしただけで、ルートテーブルは次のようになりました。
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
しかし、eth1を起動すると、デフォルトルートステートメントの順序により、常に使用されるインターフェイスが決まります。以下に示すように、192.168.1.65ゲートウェイへのeth1ルートを選択することが起こります。
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.1.65 dev eth1 metric 100
default via 192.168.0.97 dev eth0 metric 100
1つのゲートウェイステートメントのみ
最初の問題は、余分な「via 192.168.1.65」デフォルトルートです。/ etc / network / interfacesのeth1定義に「gateway 192.168.1.65」ステートメントがある場合に表示されます。したがって、余分なゲートウェイステートメントを削除し、インターフェイスをバウンスします。
# ifdown eth1
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
新しいルーティングテーブルを設定する
eth1から流出するすべてのトラフィックに適したデフォルトルートを含む新しい個別のルーティングテーブルを作成します。ここのテーブル番号は重要ではありません。101は単にメインのルーティングテーブルではありません。これを行うには、/ etc / network / interfacesのeth1設定で「ポストアップ」コマンドを使用します。eth1に投稿を1つだけ追加します。eth1:サブインターフェースのいずれにも追加しないでください。
post-up ip route add default via 192.168.1.65 dev eth1 table 101
バウンスeth1。メインのルーティングテーブルは変更されず、eth1が起動している場合、テーブル101には192.168.1.65経由のデフォルトルートが含まれます。
# ifdown eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101 (ie, table is empty, no output)
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101
default via 192.168.1.65 dev eth1
新しいルーティングルール
ルーティングルールを追加して、テーブル101を使用して、eth1から送信されるパケットのデフォルトルートを選択します。
# ip rule add from 192.168.1.64/27 lookup 101
# ip rule show
0: from all lookup local
32765: from 192.168.1.64/27 lookup 101
32766: from all lookup main
32767: from all lookup default
ルールも/etc/network/interfaces
ファイルに追加します。
post-up ip rule add from 192.168.1.64/27 lookup 101
インターフェイスがダウンしたときにルートとルールを削除するクリーンアップを追加してください:
post-down ip rule del from 192.168.1.64/27
post-down ip route del default via 192.168.1.65 table 101
[ubuntu 16.04+の編集] ここで示したように、またこのヘルプから作成したテストから、ip route2はコマンドの構造を変更しました。仕事をするためには、man ip
ポイントの順番にするために少し適応する必要があるでしょう。
up ip route add default table 101 dev eth1 via 192.168.1.65
up ip rule add from 192.168.1.64/27 lookup 101
down ip rule del from 192.168.1.64/27
down ip route del default table 101 via 192.168.1.65
または、ifdown-ifupコマンド(エラーメッセージ@ifdownコマンド(周辺機器が正しく構成されていないことを示す標準メッセージ)を伴うifupコマンド)の後、テーブル101に@ifupが存在しない場合になります。