自宅サーバで、内側からだとプライベートIPで参照しないといけないような環境だと、外出先では/etc/hosts書き換えとかめんどくさいので、インストール。後、ローカル用に好きなドメインを持てたほうが開発の時に楽。
Bind9にしようかとも思ったんだけど、慣れてないからめんどくさくて。
下記のコマンドで/etc/apt/sources.listに追加。
% echo "deb http://fr.archive.ubuntu.com/ubuntu intrepid main universe" >> /etc/apt/sources.list
apt-get でインストール
% apt-get update % apt-get install daemontools % apt-get install djbdns
daemontools-runを入れないといけないのだけど、/etc/inittabがないとこける。
Ubuntuって、inittabがない。upstartというのが使われているそうだ。http://lab.urume.net/2007,0227,612.html
とりあえず、こけないようにファイルを作ってからインストール。
% touch /etc/inittab % apt-get install daemontools-run % mv /etc/inittab /etc/inittab.daemontools
ユーザーとグループの作成
% addgroup --system djbdns % adduser --system tinydns --ingroup djbdns --no-create-home % adduser --system dnscache --ingroup djbdns --no-create-home % adduser --system dnslog --ingroup djbdns --no-create-home
dnscache設定。IPは適当に。
% dnscache-conf dnscache dnslog /var/dnscache 192.168.0.1 % cd /var/dnscache/root % touch ip/192.168 % echo "127.0.0.1" > servers/your.local.domain
touchしているのは、192.168からアクセスされてもOKな設定。
your.local.domain というファイルは、この名前のドメインは、127.0.0.1に投げてねっていう意味。
下で、tinydnsのIPを設定してますが、それにあわせましょう。
tinydns設定(IPは適当にだけど、dnscacheとは別のIPにしないと駄目です)
% tinydns-conf tinydns dnslog /var/tinydns 127.0.0.1 % cd /var/tinydns/root % ./add-ns your.local.domain 127.0.0.1 % ./add-host your.local.domain 192.168.0.1 % make
your.local.domain のNSレコードが127.0.0.1で、
your.local.domain のAレコードは、192.168.0.1と指定。
サービスを登録
% sudo update-service --add /var/dnscache/ dnscahce % sudo update-service --add /var/tinydns/ tinydns
確認
% svstat /etc/service/tinydns % svstat /etc/service/dnscache
svc コマンドの使い方は、上から、起動、停止、再起動。
% svc -u /etc/service/NAME % svc -d /etc/service/NAME % svc -t /etc/service/NAME
inittabがほったらかしだったので、下記のURLを参考にファイルを作る。
http://fxp0.org.ua/2007/apr/21/svscanboot-and-upstart-ubuntu-feisty/
% cat > /etc/event.d/svscanboot # svscanboot # start on runlevel 2 start on runlevel 3 start on runlevel 4 start on runlevel 5 stop on runlevel 0 stop on runlevel 1 stop on runlevel 6 respawn exec svscanboot
で、最後に、お使いのルータとかDHCPDの設定で、DNSの場所をdnscacheのIPにしてやればOK。