djbdns をインストールしてみる
squeeze には djbdns がないっぽい(2010-03-06現在)
http://packages.qa.debian.org/d/djbdns.html
djbdns の Debian fork したdbndns ってのが sid にあるっぽいのでつかってみるか。
セキュリティかIPv6とかが一因かな?
とりあえず squeeze で下記パッケージをインストール
$ sudo apt-get install daemontools daemontools-run ucspi-tcp
/etc/apt/sources.list に sid用apt-line を追加して dbndns をインストール
deb http://ftp.jp.debian.org/debian/ sid main
$ sudo apt-get install dbndns
インストールが終わったら追加したapt-lineは消しておく。
ちゃんとaptの設定をすればこんなことはしなくてもいいんだけどね。
以下のようなDNS環境を設定する
* 家の内部LANにあるサーバから外部ホストの名前解決のための DNS cache
** cache によって一々外部DNSに名前解決にいかなくて済むのでブラウジングが速くなります
* 内部LAN配下のPCの名前解決のための DNSサーバ
** DHCP でIPを配布するときに各ホストのIPを固定して配布するのに必要です
まずは tinydns の設定
これは内部LANのPCの名前解決に使います。
tinydns 動作のためにユーザdnslog, tinydnsをつくります
あとで dnscache で必要になるのでユーザdnscacheも追加しております。
dnslog:x:102:65534:djbdns log user,,,:/var/log/dns:/bin/false
dnscache:x:103:65534:dnscache daemon,,,:/etc/dnscache:/bin/false
tinydns:x:104:65534:tinydns daemon,,,:/etc/tinydns:/bin/false
下記コマンドで必要な設定ファイルなど生成
$ sudo tinydns-conf tinydns dnslog /etc/tinydns 127.0.0.1
127.0.0.1 だと他のホストから名前解決できねーんじゃねーの?ってなるけど
あとでなんとかなります
/etc/tinydns/root/data に下記記述
$ cd /etc/tinydns/root
$ sudo vi /etc/tinydns/root/data
.local:192.168.1.1:a:259200
.1.168.192.in-addr.arpa:192.168.1.1:a:259200
=servername.local:192.168.1.11:86400
=gw.local:192.168.1.254:86400
$ sudo make
/etc/services に /etc/tinydns のリンクを張れば自動で開始されます
次に dnscache の設定
$ sudo dnscache-conf dnscache dnslog /etc/dnscache 192.168.1.1
外部ホストから名前解決のリクエストを受け付けるIPの範囲を設定
$ sudo touch /etc/dnscache/root/ip/192.168.1
とすると 192.168.1.0/255.255.255.0 から受付られる
さらに localというドメインの正引きの問い合わせを 127.0.0.1 に
192.168.1 の逆引きを 127.0.0.1 に設定する
$ cat /etc/dnscache/root/servers/local
127.0.0.1
$ cat /etc/dnscache/root/servers/1.168.192.in-addr.arpa
127.0.0.1
とする
dnscache に対してLAN内ホストの名前解決リクエストがくれば
127.0.0.1 で待ち受けてるtinydnsにdnscacheが問い合わせて返信し、
外部のものは外部DNSに問い合わせにいって返信するようになる。
最後に
/etc/services に /etc/dnscache のリンクを張れば自動で開始されます
done
0 件のコメント:
コメントを投稿