2013-11-14 [長年日記]

WindowsとLinuxの名前を(なぜか)Bonjourで解決する

DHCPでアドレスが振られているローカルデバイス間で名前解決をしたいときにどうしようかという話。 まあ自分でルータなどのDHCPdを動かしているサーバーをさわれる(かつ数台ですむ)ならMACアドレスに対する固定割り当てを設定してしまえばいいのだけど、そうも行かない場合もある。

レガシーなWindows環境であればNetBIOS over TCP/IPがまっさきに思いつくけれど、Linux側にwinbindを導入してみたところ、電源投入のタイミングとかIPアドレスの切り替わりとかで名前が引けなくなることが多々あってあまり使い物にならなかった。

あまり深いところまで追っかけるのも面倒だし、別のやり方がないかUbuntuの設定ファルを眺めていたら/etc/nssswitch.confにmdnsの表記があって、mDNSによる名前解決が有効になっているっぽいことがわかった。

$ cat /etc/nsswitch.conf | grep hosts
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

じゃあこのmDNSのwindows側の実装はないのかなあということで検索したところ、つまるところAppleのBonjourがmDNSの上位互換ということがわかった。しかし、AppleはBonjour単体のインストーラーを用意していないので、Bonjour Print Service for Windowsをインストール。不要であればPrint Service本体をあとからアンインストールすることもできる。また、iTunesのインストーラーにも含まれているので、そちらからインストールしてもいい。

ホスト名は、それぞれのPCのシェル(コマンドプロンプト)でhostnameを実行した結果に.localを付加したものになる。あとはping等々で名前解決できることを確認。以前よりはまともになった気がする。

Tags: linux