もうかなり情報が古くなっていますが…とりあえず以前書いたものを公開しておきます.
FreeBSD 4.xへのbind9のインストール
FreeBSD4にはbind8が標準でインストールされています. bind8でもAAAAレコードにも対応しているのでIPv6を試してみる分には困りませんが, IPv6でのクエリに対応していないのでIPv6のみの環境を作るときには障害になります. あと,今後のバージョンアップはbind9を中心に行われると思われるので, この際bind9に移行しておきましょう.
インストール
portsからインストールします.
/usr/ports/dns/bind9等でmake installしてください. 私は,portinstall -rPP bind9しました.
/usr/local以下にインストールされるので,元々のnamedは残ります. rc.confでコマンドの場所を変更してください(最後に書きます).
rndcを使えるように
今まではndcコマンドでnamedを停止したり設定をリロードさせたりしてましたが, bind9からはrndcコマンドが用意されています.
rndc-confgenコマンドを実行すると,暗号鍵や設定を自動生成してくれます. が,FreeBSD4.xで実行すると,いつまで待っても終了しません. /dev/randomのエントロピーが不足しているのが原因です. portsからインストールしたときにもソレっぽいメッセージが表示されたと思います.
rc.confに「rand_irqs="5 11"」の行を追加して再起動するか, rndcontrol -s 5 -s 11等を実行して乱数に使うIRQを追加してください. 駄目なら使うIRQを変更したり増やしたり適当にいじってください.
named.confの設定
今回は,今まで使っていた,/etc/namedb/named.confから引き継ぎます. rndc関係の設定とipv6の設定を加えただけです.
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "***********************";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "***********************";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
実行するとrndc.confの内容とnamed.confに追加する内容が表示されます. 暗号鍵が含まれているので,/usr/local/etc/rndc.confにコピーしたら, root以外に読めないようにchmodするのを忘れないようにしましょう. あと,rndcからの接続を受け付けるように,keyとcontrolsをnamed.confにコピーしましょう.
key "rndc-key" {
algorithm hmac-md5;
secret "************************";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
options {
directory "/etc/namedb";
allow-recursion { 192.168.0.0/24; };
listen-on-v6 { any; }; // listen on IPv6
forwarders {
218.176.253.65; // Yahoo!BB DNS
218.176.253.97;
};
};
zone { ...以下略
こんな感じにすればOKです.ゾーンファイルの書き方などは, bind8から特に変わってないのでそのままで大丈夫です. listen-on-v6で,IPv6でもlistenするようにしています. IPv6の環境が無い人は関係ないので書かなくて良いです.
自動起動
自動起動するように/etc/rc.conf以下の行を加えておきましょう.
#/etc/rc.conf
named_enable="YES"
named_program="/usr/local/sbin/named"
named_flags="-c /etc/namedb/named.conf"
ついでに,/etc/make.confにNO_BIND=trueを追加してmake buildworld時に 古いbindをコンパイルしないようにしておきます.
更新履歴
- 2005-08-25 公開……書いたのは大分前です