もうかなり情報が古くなっていますが…とりあえず以前書いたものを公開しておきます.
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 公開……書いたのは大分前です