名前解決で BIND を使用する

通常、名前解決の為には hosts ファイルなどを使いますが、ネットワーク上に多数のコンピュータが存在する場合、その全てのコンピュータで hosts ファイルを編集するのは些か面倒です。
なので、ここでは BIND を使った正引き、逆引きの設定を行います。

自動起動の設定

BIND が自動起動するように rc.conf に named_enable を記述します。

# vi /etc/rc.conf

named_enable="YES"

ルートヒントファイルの更新

ルートヒントファイルは常に最新の状態を保たなければいけません。

% cd /etc/namedb
% sudo fetch ftp://rs.internic.net/domain/named.root

rndc の設定

次に BIND を操作するための rndc の設定を行います。

鍵ファイルの作成

rndc の設定を行うに当たって、鍵ファイルが必要になります。
FreeBSD では最初から用意されていますが、少し気持ち悪いので作り直します。

# rndc-confgen -a

通常は /etc/namedb/rndc.key に保存されています。

# ls -l /etc/namedb/ | grep rndc.key

-rw-------  1 root  wheel    77 Nov  1 00:00 rndc.key

鍵ファイルのコピー

先程作成した鍵ファイルの内容を rndc.conf にコピーします。

# cat /etc/namedb/rndc.key > /etc/namedb/rndc.conf

コピーされている内容は以下のようなものになっていると思います。
secret “md5”; の md5 はランダムな文字列です。

# cat /etc/namedb/rndc.conf

key "rndc-key" {
	algorithm hmac-md5;
	secret "md5";
};

rndc.conf の設定

次に rndc.conf を編集して、ローカルマシンからのみ操作出来るようにします。

# vi /etc/namedb/rndc.conf

key "rndc-key" {
	algorithm hmac-md5;
	secret "md5";
};

options {
	default-key "rndc-key";
	default-server 127.0.0.1;
	default-port 953;
};

Server 127.0.0.1 {
	key "rndc-key";
};

root 以外は見れないようにする

rndc.conf と rndc.key は root だけに見えるようにします。

# chmod 600 /etc/namedb/rndc.conf
# chmod 600 /etc/namedb/rndc.key

注意事項

意外とハマりやすいのがユーザーとグループの設定に関してです。
log の取得に関しても、ユーザーとグループの所属が違うとログ関連でエラーが出力されます。
FreeBSD ( Linux *BSD Solaris etc ) に慣れている人でも、一度ハマってしまうと中々抜け出せません。

サーバを運営するのなら、そういった事柄を常に頭の隅に置いておく事が大切です。

DNS サーバの種類

DNS サーバでは用途によって設定内容が変わります。
例えばコンテンツサーバとキャッシュサーバを分けて運営したり、マスター、スレーブの関係や、ゾーン転送に関してなど、学ぶべき事が多いです。
特に DNS サーバではドメインの名前解決という、全てのサーバに関わる事なので、自分はどのような DNS サーバを構築したいのか、今一度考え直してみてください。

リンク

連載記事 「BINDで作るDNSサーバ」
連載記事 「実用 BIND 9で作るDNSサーバ」