[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:21836] route command on Kernel 2.0.*/2.2.*



渡辺大作@t3.rimと申します。

/etc/init.d/network ファイルに関して疑問があり
質問させていただくことにしました。

現在使用しているpotatoの /usr/doc/sysvinit/examples/networkは 以下のように
なっています。

------ ここから
(snip) 
case "`uname -r`" in
        2.0.*) ADDROUTE="yes" ;;
        *)     ADDROUTE="" ;;
esac

# Configure the loopback device.
ifconfig lo 127.0.0.1
[ "$ADDROUTE" ] && route add -net 127.0.0.0 dev lo
(snip)

ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
[ "$ADDROUTE" ] && route add -net ${NETWORK}
(snip)
--------- ここまで

上記スクリプトの通り、
カーネルのバージョンが、2.0.*か、それ以外か(2.2.*)によって
route add コマンドを実行するしないを振り分けていることがわかります。

これは一体なぜなのでしょうか。
現在自分のマシンでは,カーネル2.2.14を使用していますが
強制的にroute addをするようなスクリプトだと、
ブート時に"requestされたIPアドレスはアサインできない"というような
旨のエラーが出ていることが確認できます。
それでも起動後netstat -nr等では問題ないテーブルが
構成されていることが確認できます。
route addのコマンドをコメントアウトして再起動して、
netstat等でテーブルを確認しても、やはり問題なく、テーブルができています。

2.2.* だと、明示的なroute add -net なしに、ローカルデバイスのrouteは
追加されるとか、そういったことがあるのでしょうか。
カーネル2.2代ののchangesドキュメントにも目を通したつもりですが情報は
得られませんでした。

これに関して情報を頂けたらと思います。


FAQでしたら申し訳ございません。
ドキュメントのリンク等アドバイスいただけましたら幸いです。

Best regards,
Watanabe, Daisaku<dwata@xxxxxxxxxxxx>