2011年4月6日水曜日

hostnameファイルの掟

Solaris10で、インタフェースにIPアドレスをアサインする際に、
/etc/hostname.e1000g0
といったファイルを作成しますが、とても大事な決まりがございます。

ファイルの末尾は改行せずに、1行のファイルにしなくてはなりません!

これを守らないと、少なくともわたくしが試したケースでは、サブネットマスクがおかしくなります。(その結果、全体のルーティングテーブルがぐちゃぐちゃになってしまいました。)

このような状況でした。
・hostname.e1000g0に下記のように記述(空白行を付けていた)

123.123.123.123
(空白行)

・/etc/netmasksで、このアドレスが属するサブネットのマスクを、'255.255.255.252'と設定

・システムを再起動

これで、起動後に'ifconfig -a'で確認すると、サブネットマスクが'255.255.0.0'になっていました。(結果的に、'123.123.xxx.xxx'向けのトラフィックは、すべてこのインタフェースから出て行こうとするようになって、ほぼすべての通信が止まりました。)

空白行を削除して再起動すると、サブネットマスクは正しく戻りました。ふぅ。

昔のUNIXの設定ファイルだと、スペースとタブとか、末尾を改行するかしないかで動きが変わってくるものがいろいろあったと思いますが、今でも結構健在です。
恐るべし...

0 件のコメント:

コメントを投稿