2004年10月24日
FreeBSDでDNSサーバの構築
FreeBSD 5.2.1にはDNSサーバとなるbind8が含まれている。また、FreeBSD 5.3からはbind9が含まれている。これらを使って、DNSのサーバを設定する方法をまとめる。プライマリサーバ、セカンダリサーバの設定とローカルドメインの設定を示す。
なお、新規設定ではなくbind9への移行作業は、FreeBSD BIND9への移行を参照。ゾーンの設定については、NSレコードの役割とプライマリ・セカンダリの理解も参照。
1.DNSサーバの設定(プライマリサーバとするゾーンの設定)
/etc/namedb/named.confを編集する。
(5.3以降では、/var/named/etc/namedb/named.confとなる。)
プライマリサーバとして機能させるゾーンの設定は次のようになる。
zone "toshikazu.org" {
type master;
file "master/toshikazu.zone";
};
zone "tsushin.tv" {
type master;
file "master/tsushin.zone";
};
zone "websites-links.com" {
type master;
file "master/links.zone";
};
zone "ntt2002.net" {
type master;
file "master/ntt2002.zone";
};
続いて、ゾーンの設定ファイルを置くためのディレクトリを作成する。
# mkdir /etc/namedb/master
(5.3以降では、/var/named/etc/namedb/masterとなる。)
そして、このディレクトリにzoneファイルを設置する。
ゾーンの設定については、NSレコードの役割とプライマリ・セカンダリの理解も参照のこと。
toshikazu.zone ファイルの例:
$TTL 3600
; @ means "toshikazu.org."
@ IN SOA p086004.doubleroute.jp. hostmaster.toshikazu.org. (
2004102200 ; Serial
3600 ; Refresh 3600=1hour
600 ; Retry 600=10min
2419200 ; Expire 2419200=4week
1200 ) ; Minimun TTL 1200=20min
IN NS p086004.doubleroute.jp.
IN NS ichi.tom.comm.waseda.ac.jp.
IN NS ns1.mikan.org.
IN MX 10 p086004.doubleroute.jp.
IN MX 50 ichi.tom.comm.waseda.ac.jp.
IN A 219.119.86.4
; A
ichi IN A 133.9.71.61
commoore IN A 219.119.86.4
; CNAME (Canonical NAME)
mail IN CNAME @
www IN CNAME @
ftp IN CNAME @
2.DNSサーバの設定(セカンダリサーバとするドメイン)
/etc/namedb/named.confを編集する。
(5.3以降では、/var/named/etc/namedb/named.confとなる。)
セカンダリサーバとして機能するドメインについての設定は次のようになる。
zone "mikan.org" {
type slave;
file "secondary/mikan.org";
masters {
210.138.23.84;
};
};
zone "1.1.6.0.0.4.2.0.1.0.0.2.ip6.int" {
type slave;
file "secondary/1.1.6.0.0.4.2.0.1.0.0.2.ip6.int";
masters {
210.138.23.84;
};
};
続いて、ドメインの設定ファイルを置くためのディレクトリを作成する。
# mkdir /etc/namedb/secondary
このディレクトリにファイルを作っておく必要はない。
DNSサーバがプライマリサーバと通信して情報を取得し、ファイルを作成する。
そのためbindの権限で書き込めるようにしておく必要がある。
# chown bind:bind /etc/namedb/secondary
# chmod 750 /etc/namedb/secondary
3.DNSサーバの設定(ローカルホスト)
ローカルアドレス用の設定ファイルを準備する。
# cd /etc/namedb
(5.3以降では、# cd /var/named/etc/namedbとなる。)
# /bin/sh make-localhost
このコマンドで次の2つのファイルが自動生成される.
localhost-v6.rev localhost.rev
4.DNSサーバの起動と停止
FreeBSDでbindを起動・停止するには、次のコマンドを実行する。
# /etc/rc.d/named start
# /etc/rc.d/named stop
なお、bind8ではndc、bind9ではrndcといったツールももちろん使える。
5.サーバの自動起動設定
システム起動時にDNSサーバを起動させるための設定を/etc/rc.conf に次の1行を追加する。
named_enable="YES" # Run named, the DNS server (or NO).
6.ネームサーバの登録情報
最後に、レジストラに登録されているネームサーバの情報を変更する。DNSサーバは通信量を削減するためにキャッシュを持っており、登録情報の更新が反映されるまでしばらく時間がかかる点に注意すること。
例えば、toshikazu.orgのネームサーバは次のように登録されている。
Name Server:P086004.DOUBLEROUTE.JP
Name Server:NS1.MIKAN.ORG
Name Server:ICHI.TOM.COMM.WASEDA.AC.JP
7.確認検査
DNSの設定状況を検査してくれるサイトがあるので、それらを有効に活用するべき。
www.DNSreport.comは、基本的な事項からありがちな間違いまでを検査して、その結果を分かりやすく指摘してくる。少なくとも結果からFAILがなくなるようにすべきであり、WARNとなった項目についてはその内容を十分に理解してそれで良いか確認すべきだ。
squishは、ルートサーバから順に名前解決に問題がないかを調べてくれる。
8.おまけ
ローカルのドメインやフレッツのように、グローバルなトップレベルドメインからたどれないゾーンに対応するには、次のような記述を/etc/namedb/named.confに追加すればよい。
(5.3以降では、/var/named/etc/namedb/named.confとなる。)
zone "flets" {
type forward;
forward only;
forwarders {
xxx.xx.xx.xxx; //フレッツスクエアのDNSサーバを確認して指定
};
};
・番外編
ドメイン名を取得するには、レジストラに払う維持費が必要だ。広く使われている.com, .org, .netドメインの卸値はおよそ7ドル/年と聞いたことがある。日本の大手は3000円/年程度と随分とマージンを取っているわけだが、探せばバリュードメインのように1000円/年と納得できる安さで頑張っている日本のレジストラもある。信頼性を重視する企業は別だが、個人で使うのなら後者も十分良い選択肢だろう。このサイトのドメインもバリュードメインというレジストラをここ数年使っているが、Webのメニューから設定はしっかりでき、障害などの問題も起っていない。レジストラの移行も簡単にできるので、経費節約におすすめ。