MSめ!

久しぶりに、やられた。

ここ数日、なんかノートPCのネットワークの調子がおかしい気はしていたが、目を背けていた。が、今日になって実験に使おうと思ったら本格的に困ったことになっていた。他のマシンから、ノートPCが全く見えない。いや、マシンの存在は見えてるのだがIPアドレスがひけない。でも、ある1台のマシンだけはなぜか問題無い。おそらくXP Pro同士だと、ニュータイプ同士のように何か通じるものがあるのだろう。

とにかく再インストールだけは避けたいので、必死こいてネット調べまくったが、症状から探しても「ファイアウォールの設定を外しましょう」「NetBEUIをインストールしましょう」みたいなカスな情報しか見つからない。イマドキNetBEUIなんか誰が使うか、アホ!そんな古い情報は早く削除しやがれ!!

一日かけてやっと発見した解決への糸口は、Sambaサーバ側でnmblookup -Aした時に、"P "という見慣れない文字列を見つけたこと。そう、nmblookupの「ホスト名->アドレス」変換はできないのだが、"nmblookup -A"の「アドレス->ホスト名」は動くのだ。このあたりの挙動も意味不明。っていうか、"P"って何だよ!普通"M"か"B"だろ!と思いつつ、そもそもBとかMとかの意味すら知らない。しかし、sambaのマニュアルは不親切なので、その意味するところは謎だ。

しょうがないので、その辺りのキーワードから再度ネットで調べたところ、これはNBTのノードタイプというものらしく、B,P,M,H の4つのモードがあるらしい。それぞれ"Broadcast", "Point-to-Point", "Mixed", "Hybrid"らしい。正確な違いはわからんが、一見しただけでも"P"はヤバい雰囲気満載だ。やっぱりBかMが正解じゃん。(ちなみに、非サーバなそこいらのWindowsはMで動作するのが普通です)

ノードタイプによる挙動の違いとかを紹介してるサイトは多いが、その設定方法なんてどこにも書いてない。デフォルトでどのノードタイプになってるか、っていう紹介ばかりだ。そんな設定いじる奴がいることは想定されてないようだ。というか、そんな設定項目は今までに見たこともない。そこで更に調べまくったところ、「DHCPで提供されるNBTの設定がある」という情報にいきついた。たしかに、DHCPの設定に「NBTにサーバから提供される設定を使う」みたいな項目あるね。いつも無視して、デフォルトのまま「設定を使う」にしてるけど、そんな設定を提供してるサーバ見たことなかったよ。無視して悪かったよ。反省してるから、一度受けてしまった設定を解除してくれ。

DHCPサーバからNBTの設定を受け取った場合は、ノードタイプの設定がレジストリに書かれてるらしいというナイスなネタにたどり着いた。試しにレジストリを見てみたところ、たしかに設定されてる。消してみたら、あっさり直った。うちのDHCPサーバは、そんな気の利いた設定は提供してないはずだ。ってことは、北米出張中のどこかのDHCP ServerがNBTの設定として"P"を提供して、それが消去されずに使われてたってことかい?orz

そういう設定は起動時とかにデフォルトで消してくれないのかよ...って気もするが、DHCPの仕様とか知らないし、これってMSのせいなのかどうかもよくわからん...今回の教訓としては、とにかく北米方面のDHCPには油断するなってことだ。

いや、マジで今日はこれだけで一日終わってしまったのだ。(涙)でも、Sambaのお陰で再インストールしないで済んだのは助かったよ。