Home/ Library index

もうかなり情報が古くなっていますが…とりあえず以前書いたものを公開しておきます.

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 公開……書いたのは大分前です


Copyright © 瓶詰堂 all rights reserved.