iPhone Safari でグローバルなドメイン・ホスト名を指定したときに、ローカルネットワーク上のホストに接続したい。ということで dnsmasq を導入してみた。
標準的な設定のシステムであれば、dnsmasqを起動した時点でネットワークのDNSサーバとして稼働する準備が整っている。DNS検索の要求が来ると、dnsmasqはまず「/etc/hosts」ファイルを参照し、要求に一致するエントリがないかを調べる。一致するエントリがあれば、対応するIPアドレスを返す。
(中略)
一致するものが「/etc/hosts」になければ、dnsmasqは「/etc/resolv.conf」に記されている“本来”のネームサーバに要求を転送する。
(中略)
なお、実在する外部のドメイン名は、より優先度の高い「/etc/hosts」のエントリによってマスクできる。
dnsmasqでDNSおよびDHCPサービスを強化する - SourceForge.JP Magazine : オープンソースの話題満載
実験的に設定してみる。
ローカルネットワークの Debian GNU/Linux lenny (192.168.24.50) に dnsmasq をインストールする。
# aptitude install dnsmasq
dnsmasq と dnsmasq-base パッケージがインストールされる。
設定ファイルは /etc/dnsmasq.conf だけど何もいじらない。設定すればDHCPサーバにもなるらしい。
dnsmasq をインストールした Debian マシン (192.168.24.50) の /etc/hosts と /etc/resolv.conf に必要な内容を記述する。
bar.nilab.info で 192.168.24.50 にアクセスするような設定。
# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 foo.localdomain foo
192.168.24.50 bar.nilab.info
bar.nilab.info 以外の名前解決は 192.168.24.1 にある DNS サーバにおまかせする設定。
# cat /etc/resolv.conf
nameserver 192.168.24.1
dnsmasq に設定を反映させるために restart する。
# /etc/init.d/dnsmasq restart
これで、Debian マシン (192.168.24.50) を DNSサーバとして使えるようになった。
試しに、 iPhone を自宅内の無線LANに接続して(別のサーバのDHCPからIPアドレスを取得)、 iPhone の Safari から bar.nilab.info に接続したらちゃんと 192.168.24.50 につながった。 グローバルなドメイン・ホスト名を指定して、ローカルネットワーク上のホストに接続するのに便利。
Ref.
- Dnsmasq - a DNS forwarder for NAT firewalls.
- dnsmasqでDNSおよびDHCPサービスを強化する - SourceForge.JP Magazine : オープンソースの話題満載
- Dnsmasq - Wikipedia
- Linuxユーザのためのチップス: dnsmasqで簡易DNSサーバ
- Ubuntu Weekly Recipe:第20回 いろいろなキャッシュ:dnsmasq, cache proxy|gihyo.jp … 技術評論社
- DNSmasq を使うと iPhone/iPad 等で名前解決できない? - metastable blog
- Mac OS X v10.4, 10.5, 10.6:「.local」ホスト名を Bonjour および標準 DNS を介して検索する方法
tags: dns debian iphone
Posted by NI-Lab. (@nilab)