私のコンピュータの1つに2つのインターフェイスがあります。一つは、DHCPからIPを取得するインターネット接続です。問題ありません。
他のインターフェイス(eth1)はローカルシステム用であり、対応する設定gateway 192.168.3.1
ファイル(Ubuntuベースの展開)に設定されています。
問題は、インターフェイスを呼び出すとeth1
自動的にデフォルト(0.0.0.0)のルートがルートテーブルに追加され(予想どおり)、ローカルにパケットを送信しようとするため、インターネットに接続できないことです。ネットワーク。これまでは、192.168.3.1
ゲートウェイのデフォルトパスを削除して手動でこれを行う必要がありました。
インターフェイスを開くと、デフォルトパスが追加されないように設定する方法はありますか?特定のネットワークルーティングがgateway 192.168.3.1
必要なので、設定ファイルにそれを維持する必要があります。3.x
これは私のルーティングテーブルです。
192.168.3.0 * 255.255.255.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.3.1 0.0.0.0 UG 100 0 0 eth1
default DD-WRT 0.0.0.0 UG 100 0 0 eth0
答え1
192.168.3.1
ゲートウェイとして宣言しないでください。ゲートウェイは「デフォルトパス」を意味します。インターフェイスアドレスが 192.168.3.1/24 ネットワーク内にあれば、これでnetmask 255.255.255.0
十分です。
それ以外の場合は、インターフェイス設定スクリプトの一部として必要なパスを追加します。 Debian / Ubuntuでは、up
に句を付けるか、/etc/network/interfaces
またはスクリプトを追加してください/etc/network/if-up.d
。実行するコマンドはroute add 192.168.3.1 eth1 && route add -net 192.168.3.0/24 gw 192.168.3.1
答え2
まず、これを実行してip route list
から、eth1インターフェースで同じ内容を再確認してください。/etc/sysconfig/network-scripts/route-eth1
インターフェイスが再起動されるたびに、インターフェイスファイルのルーティング設定が適用されるように同じ内容をファイルに入れます。一方、これを行うために特に何かをしたい場合は、ネットワークが/etc/rc.d/init.dnetwork
再起動されるたびにそのタスクを実行するスクリプトを配置できます。これはまた、Route-eth1ファイルを読み込み、ルーティング設定を適用します。