web-dev-qa-db-ja.com

ifconfigがデフォルトゲートウェイルートをリセットするのはなぜですか?

FreeBSDでは、 ifconfig 呼び出しは、同じIPアドレスが与えられている場合でも(たとえば、ネットマスクのみを更新する場合)、デフォルトゲートウェイルートを削除するようです。それはバグですか、それとも機能ですか?
私が覚えているように、Linuxはこの場合デフォルトゲートウェイを変更しません。

5
Eugene Yarmash

FreeBSDでは、サブネットへの直接接続を削除するifconfigは、そのサブネットを含むルートもザップします(IIRC更新ネットマスクは削除と置換に削減されます)。これは、到達できなくなったホストと通信しようとしてルーティング構成を混乱させないための「機能」ですが、ユーザーがルートの消失に遭遇すると混乱を招きます。

参照: http://forums.freebsd.org/showthread.php?t=12132

4
voretaq7

これは、ifconfigコマンドが実際に古いIPを削除し、新しいIPを作成するだけでなく、変更するために発生すると思います。 「それは機能です!」

2
Jed Daniels

デフォルトのgwへのルートを維持する方法を探していましたが、このスレッドを見て自分で試したので、方法がないと思います。私がしなければならなかった唯一のことは、IPを設定した直後に手動でデフォルトのgwを設定することです:

Sudo ifconfig eth0 10.0.0.2 subnet 255.255.255.0
Sudo route add default gw 10.0.0.138

したがって、これをリモートで実行している場合は、&&を使用して両方のコマンドを実行する方がよいことに注意してください。そうしないと、行き詰まります。

Sudo ifconfig eth0 10.0.0.2 subnet 255.255.255.0 && Sudo route add default gw 10.0.0.138
1
tutuDajuju