/etc/networks + netstat 問題を掘り下げる
実装屋魂がうずくので、netstat の問題について更に突っ込んだ調査をしてみる。
OpenSolaris の Bug Database で検索を掛けてみたら、"netstat -r on x86 calls gethostbyaddr() with byte-swapped IP address" とかは、まんま今回の障害の相似形だ。
solaris_2.6(s297_16) 時点で gethostbyaddr() の取り扱いに関するこの問題は直っているらしいのだけど、getnetbyaddr() に関しては手付かずですか!? > OpenSolaris/Solaris 10
普段の仕事では、障害検出時には類似障害調査の徹底を要求してくるような顧客との付き合いがあるので、こういうケースでの対応の甘さは気になるなぁ。っていうか、2.6 とかって、オープンソースじゃなくて商用プロダクトだった頃の気がするんだけど…………。
"gethostbyaddr doesn't define the byte ordering for addr" なる問題も solaris_9(s81_56) 時点で修正されているらしいけど、どのオンラインマニュアルでも、戻り値の byte-order が network-byte-order である旨は書かれているけど、引数として指定する値の byte-order に関しては言及が無いなぁ。「言うまでも無く○○○○だ」という事なのかもしれないけど、「言うまでも無い」ことを明記しておくのが API マニュアルの肝だと思われるので、ちょっと残念。
ちなみに、改めて確認してみると、gethostbyaddr(3NSL) は getipnodebyaddr(3SOCKET) に移行されているのね。
怪しい英語を操りつつ、とりあえず bug database に登録してみた。暫くして承認されたら、"netstat getnetbyaddr" あたりのキーワード or テキストで検索できるようになる筈。
※ 2010/04/27 追記:
暫くぶりに確認してみたら、6914175 として公開されていた。