Linux から nmb な名前解決をしたい → libnss_wins

最近,メインの作業環境を Windows から Linux に変えました。で困ってたのは,Linux*1 から Windows のマシン名でアクセスできないことです。

どういうことかというと,今までの作業環境だと,

  1. Linux サーバを立てる
  2. Samba を動かす
  3. Windows ドメインに参加させる*2
  4. Apache を動かす
  5. Windows クライアントのブラウザから Linux サーバにアクセス→ウマー

というステップでしたが,ここでたとえば Samba サーバ名を hogehoge にしとけば,ブラウザから ttp://hogehoge/ でアクセスできたわけです。

ところが,いまのクライアント環境は Linux なので,ttp://hogehoge/ でうまくアクセスできません。困ったーでも host.conf とか nsswitch.conf とかあるし,なんとかうまくできるはずだーと,いろんなキーワードでググってみたら,やっぱりちゃんとありました。

/etc/nsswitch.conf に,以下のように wins を追加するだけで,Windows とほぼ同様の名前解決ができる。

hosts:          files dns wins
ねぎ式 - Windows ばかりの LAN の名前解決は libnss_wins がヨサゲ

んーでもうち WINS サーバあげてないしーと思ったんですが,上記サイトさんの解説や,Miracle Linux のドキュメント を見ると,wins を特に指定してないと port 137 ブロードキャストできちんと解決してくれるらしいです。

てなわけで,とりあえず samba(-common) をインストールして,/etc/nsswitch.conf を

hosts:          files wins dns

のように書き換えて(私的環境では dns より wins を前に持ってきました),無事 Linux 上のブラウザから ttp://hogehoge/ でアクセスできるようになりました*3

いやー危うく winbind について勉強するとこでした*4

*1:もうすぐ Fedora 7 がリリースされるのに Fedora core 6 っす;やっと Fedora 7 の GA が 2007-05-31 に決まりました

*2:厳密には ActiveDirectory 運用してるんですが,あるときを境に ADS でうまくいかなくなったんで server = DOMAIN で運用してます

*3:もちろん ping hogehoge も OK

*4:もちろんいつかきちんと勉強します;そろそろ各所で設定をしてくのめんどいし