ubuntu-server-10-04:dnsmasq
dnsmasqでDNSキャッシュサーバ
自宅サーバを構築しているが、固定IPを取得するほどまじめにやっているわけでもないので、DDNSのアドレスを使用している。前に使用していたルータは、ルータでDDNSのIP更新を行えば、ルータ内にいても勝手に内部のサーバのIPに置き換えてくれていたが、今のルータはそうならない。この状態だと、ルータ外にいる場合はDDNSのアドレスを使用してサーバにアクセスし、ルータ内にいる場合は、ローカルIPを直打ちしてサーバに接続することになる。これだと面倒なので、dnsmasqというDNSキャッシュサーバを使用して、ルータの内部にいる場合でもDDNSと同じアドレスでアクセスできるようにする。
インストール
$ sudo apt-get install dnsmasq
dnsmasq dnsmasq-base がインストールされる
設定
/etc/dnsmasq.conf を編集
$ sudo vi /etc/dnsmasq.conf
特に設定することなし
システムが名前解決に使用するサーバを設定する。
$ sudo vi /etc/resolv.conf
/etc/resolv.conf にDNSサーバを指定する(プロバイダなど)
nameserver 127.0.0.1 nameserver xxx.xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx nameserver 192.168.xxx.1
- nameserver 127.0.0.1 ←まずは自前で解決する
- nameserver xxx.xxx.xxx.xxx ←自前で名前解決出来なかった場合は、プロバイダのプライマリDNSを使う
- nameserver xxx.xxx.xxx.xxx ←プロバイダのプライマリDNSでダメだった時は、セカンダリDNSを使う
- nameserver 192.168.xxx.1 ←最後の手段ゲートウェイに任せてみる
DHCP を利用していると resolv.conf が勝手に書き換わってしまうので、DHCPは使わないようにする。
自前で解決するホスト名を記述する。
$ sudo vi /etc/hosts
127.0.0.1 localhost 127.0.1.1 host 127.0.1.1 myfileserver # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
- 記述形式
- IPアドレス TAB(0x09) ホスト名
最後に dnsmasq を再起動して終了
$ /etc/init.d/dnsmasq restart
クライアント側の設定
最後にクライアントが dnsmasq サーバをDNSサーバとして使用するように設定する。
ルータの設定に DHCP でクライアントの IP を設定する際に、クライアントに使用させる DNS を指定する項目があったので、そこに dnsmasq の IP を設定した。
これでホームネットワークにいる場合でも、外部にいる場合でも同じアドレスにアクセスすればサーバにつながるようになった。
参考
ubuntu-server-10-04/dnsmasq.txt · 最終更新: 2011/05/01 22:24 by admin