DNSサーバ構築。

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

関連記事

  1. NO IMAGE
  2. NO IMAGE
  3. NO IMAGE
  4. NO IMAGE
  5. NO IMAGE
  6. NO IMAGE

    2011.09.07

    Paragonの。

コメントをお待ちしております

CALENDAR

2024年5月
 1234
567891011
12131415161718
19202122232425
262728293031  

ARCHIVES

CATEGORIES