2010-03-06

install djbdns on squeeze

Debian GNU/Linux squeeze で dnscache と tinydns で DNS環境を構築すべく
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 件のコメント:

コメントを投稿