NTTのひかり電話を使うときに必要なルータ「RT-200NE」はNAPTされたあとのプライベートIPから自分のグローバルIPを参照できないので、外部に公開するDNSサーバと自宅内で使うDNSサーバを別にする必要がある。
今回の構成ではApacheの設定でネームベースのヴァーチャルドメインを使う予定だからこれは必須。
ってことで早速構築。
Fedora Core 6にはBINDがrpmで提供されてるんだけど、なんとなく設定が煩雑になりがちなBINDはあまり好きじゃないし、MTAにqmailを使うつもりなので同じ作者(D.J.Bernstein氏)が作ったdjbdnsを利用することにした。
2006/12/28日現在最新版は1.05だが、一応公式ページを確認しておく事をお勧めする。
アーカイブをダウンロードしたら解凍し、作成されたディレクトリに移動する。
$ wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz $ tar zxf djbdns-1.05.tar.gz ←アーカイブを解凍 $ cd djbdns-1.05 ←ディレクトリの移動 $ wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/djbdns-1.05.errno.patch $ patch -s -p1 < djbdns-1.05.errno.patch ←パッチを適用 $ sed -i 's/local/djb/g' conf-home ←インストール先を変更 $ make $ su パスワード(P): ←パスワードを入力(なにも表示されない) # make setup check
<
p>djbdnsは3つのプログラムに分かれている。
キャッシュサーバのプログラム、ネームサーバのプログラム、ゾーン転送サーバのプログラムの3つだ。
今回は、キャッシュサーバと、ネームサーバを設定する。
まずは、djbdnsのユーザとグループを作成する。
# groupadd djbdns # useradd dnscache -g djbdns -s /sbin/nologin # useradd dnslog -g djbdns -s /sbin/nologin # rm -rf /home/dnscache /home/dnslog
dnscacheがキャッシュサーバを起動するユーザで、dnslogはログをとるためのユーザだ。
次に初期設定を行う。
192.168.1.1の部分は、キャッシュサーバを動かすサーバのIPアドレスを示している。
# mkdir /var/djbdns ←ディレクトリの作成 # /usr/djb/bin/dnscache-conf dnscache dnslog /var/djbdns/dnscache 192.168.1.1 # touch /var/djbdns/dnscache/root/ip/192.168.1 ←LANの機器からアクセスできるように設定
djbdnsのアーカイブに含まれるrootサーバのIPは古いので書き換える。
# cd /var/djbdns/dnscache/root/servers # sed -i 's/128.9.0.107/192.228.79.201/g' @ # sed -i 's/198.41.0.10/192.58.128.30/g' @
サービスを起動する。
# ln -s /var/djbdns/dnscache /service
少し待って、動いていることを確認する。
(通常1~2秒で起動する。)
# svstat /service/dnscache /service/dnscache: up (pid 25954) 4 seconds
ネームサーバを設定する。
最初にサービスを起動するためのユーザ(tinydns)を作成する。
# useradd tinydns -g djbdns -s /sbin/nologin # rm -rf /home/tinydns
次に初期設定を行う。
tinydnsとdnscacheを同じIPアドレスで動かすことができないため、127.0.0.1を指定する。
# /usr/djb/bin/tinydns-conf tinydns dnslog /var/djbdns/tinydns 127.0.0.1
初期設定が完了したらゾーンファイルを作成する。
tinydnsのゾーンファイルの元は、「/var/djbdns/tinydns/root」に「data」というファイル名で保存されている。
これを編集して「make」するとデータベースファイルが作成される。
ゾーンファイルのフォーマットは以下のとおり。
また、ゾーンファイルを作った後は、dnscacheにて指定したドメインをtinydnsに聞くようにする設定を忘れずに行う。
SOAレコード
.ドメイン:ネームサーバのIPアドレス:ネームサーバ名:TTL
MXレコード
&ドメイン:メールサーバのIPアドレス:メールサーバ名:TTL
Aレコード
=ホスト名:IPアドレス:TTL
CNAMEレコード
+ホスト名:IPアドレス:TTL
# cd /var/djbdns/tinydns/root ←ディレクトリの移動 # vi data ←ゾーンファイルの編集 ... ←ゾーンファイルを書き込む # make ←データベースの作成 # echo 127.0.0.1 > /var/djbdns/dnscache/root/servers/example.com ←作成したゾーンの名前
サービスを起動する。
# ln -s /var/djbdns/tinydns /service
少し待って、動いていることを確認する。
(通常1~2秒で起動する。)
# svstat /service/tinydns /service/tinydns: up (pid 21358) 6 seconds
コメント