Saturday, January 12, 2008

Resolving IP address for Mac, Linux and Windows each other by names

(ルーターを介さない)同一セグメント内ならば、 Mac 同士は DNS や hosts に登録しなくても "hiroshi-macbook.local" のような名前で IPアドレスを解決できます。 Mac を使っている人にとっては当たり前なので、Linux や Windows のホストにアクセスするときに環境によってはコロコロと変わる IP アドレスを指定しなければならないとストレスが溜まります。

Debian Etch, CentOS 5, Windows でその問題を解決する方法を紹介します。

Debian Etch



Avahi Daemon をインストール

$ sudo apt-get install avahi-daemon
$ uname -a
Linux hiroshi-etch 2.6.18-5-686 #1 SMP Mon Dec 24 16:41:07 UTC 2007 i686 GNU/Linux


これで、同じネットワークセグメント内の Mac などから、hiroshi-etch.local という名前でアクセスできるようになります。

$ ssh hiroshi-etch.local


逆に Linux から他のホストの名前解決ができるようにするには、

$ sudo apt-get install libnss-mdns


CentOS 5



$ sudo yum install avahi


nss-mdns のパッケージは無いようなので、(nss-mdns)

$ curl -O http://0pointer.de/lennart/projects/nss-mdns/nss-mdns-0.10.tar.gz
$ tar xzf nss-mdns-0.10.tar.gz
$ ./configure
$ make
$ sudo make install


/etc/nsswitch.conf の "hosts:" の行を以下のように書き換える (詳細は README を参照)

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

これで、他の .local ホスト名を解決できるようになる。

Windows


Apple から Bonjour for Windows をダウンロードしてインストールすればOK。
iTunes をインストールしていれば自動的に入っているはず。

No comments: