Oracle VM VirtualBoxなどの仮想環境としてCentOS 6を作成したときにホストOS側からゲストOSの名前解決を手軽に実施する方法。
手順
- EPELリポジトリにある「nss-mdns」パッケージをインストールする
- system-config-firewall-tuiなどで「Multicast DNS (mDNS)」を許可する
- rebootする
rebootはAvahiデーモンの起動やiptablesの設定再読み込みなどでも代替できるが、手軽にということでrebootする。
解説
nss-mdnsパッケージのインストール
EPELリポジトリを登録していない場合は「nss-mdns」パッケージのあるURLを指定してインストールしてやってもOK。(avahiなどもインストールする必要があるのでyumに渡すと手っ取り早い)
$ sudo yum install http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/nss-mdns-0.10-8.el6.x86_64.rpm
名前解決の方法として使うために/etc/nsswitch.confの修正が必要だが、EPELにあるパッケージだとに自動で以下のように追加してくれる。順番が気に入らない場合は手をいれると良い。
grep ^host /etc/nsswitch.conf
hosts: files mdns4_minimal [NOTFOUND=return] dns
mDNS
どういうものかを知りたい場合は http://multicastdns.org/ あたりを読めばよいと思うよ。CentOSではAvahiという実装が搭載されています。
以下のように「ホスト名.local」という名前で解決できるように動いているはず。
$ ps auxwww|grep local |grep ^avahi
avahi 1242 0.0 0.0 27784 1640 ? S 22:34 0:00 avahi-daemon: running [cent6u.local]
iptables
mDNSで名前解決するときにはIPアドレス「224.0.0.251」の5353ポートを使うので、それを許可するようにする。
system-config-firewall-tuiだとudpしか許可させないので、必要に応じてtcpも許可しておくと良い。