[ SERVER ]

Linux 2.2.14

djbdns に付属の dnscache を使う

2001/12/23 Tomohiro Kumagai

□ djbdns 1.05

djbdns とは、qmail の作者、D.J.Bernstein さんが作成したネームサーバです。

http://djbdns.jp.qmail.org/djbdns/ に掲げられていますけど、「安全、確実、高速、簡潔、設定も簡単な DNS ツール群」 が売り文句になっているようです。

 

この djbdns の中に付属している tinydns というサービスプログラムは、要求に対して、自分の知りうる情報のみを忠実に返します。なので BIND を使用していた人が乗り換えたとき、次のような思わぬトラブル (?) に見舞われる可能性があります。

BIND や Microsoft DNS のように、普通に DNS サーバを構築して、それだけをクライアントコンピュータの参照 DNS として登録すれば、どんなドメイン名でも参照可能になると思っていると、そうではないため慌てます(自分のこと)。

 

djbdns のセットを使って、クライアントがドメイン名を解決するのに使うのが、dnscache です。なので、名前解決用のサーバを構築する場合には、この dnscache をインストールしてキャッシュサーバを構築しなくてはなりません。

ここで注意しなくてはならないのが、djbdns では、tinydns と dnscache を同一の IP アドレスでは実行できないということです。ただし異なる IP アドレスでさえあれば、同一のコンピュータ上で稼動することが出来ます。

通常は DNS キャッシュは内部サーバが利用するものだと思いますので豊富な(?)プライベートアドレスから割り当てればいいでしょう。ただ、もしグローバルアドレスから割り当てなくてはならないときは、IP がないと困るかもしれませんね。

自分だけで使用するのならば 127.0.0.1 で大丈夫ですけど。

 

□ インストールと起動

まずは djbdns のインストールを済ませます。細かいお話は EZ-NET 特集: ネームサーバ djbdns 1.05 のインストール の中の djbdns の項目を見てみてください。tinydns のお話とは無縁なので、そちらのほうは必要に応じてみてみてください。

以下は、djbdns の導入が終わって、svscan が正常に稼動しているものとして話を進めていきます。

 

まずは dnscache が必要とするユーザアカウントの登録です。

groupadd djbdns

useradd -d /dev/null -g djbdns -s /bin/true dnscache
useradd -d /dev/null -g djbdns -s /bin/true dnslog

上記のようにして dnscache と dnslog という2つのアカウントを登録します。

 

そして dnscache の設定を行います。

/usr/local/bin/dnscache-conf dnscache dnslog /etc/dnscache 192.168.0.1

ここでは /etc/dnscache というディレクトリを自動生成してもらっています。このとき、設定に関する情報が自動的にそのディレクトリに保存されます。最後の 192.168.0.1 というのは、dnscache が使用する IP アドレスです。省略した場合は 127.0.0.1 として処理されるようです。

これでインストールは完了です。

 

次のようにして dnscache を起動させます。

ln -s /etc/dnscache /service

こうすることで、Linux 起動のたびに svscan が自動で dnscache を起動してくれるので、rc.local などに何かを追記する必要はありません。なお、dnscache を意図的に再起動したい場合には svc -t /etc/dnscache というコマンドを使用すればいいようです。

 

□ dnscache の設定

dnscache を動かす上で、設定することは1つだけです。

ディフォルトの状態では、dnscache が受け付けるのは自分自身が稼動しているコンピュータからの要求だけです。なので、ネットワーク内のほかのコンピュータからの要求を処理する場合には、それを dnscache に登録しておかなくてはいけません。

今回は 192.168.0.0/24 からの要求を受け付けるようにしようと思います。その場合はコマンドラインから次のようにして登録します。

touch /etc/dnscache/root/ip/192.168.0

これで登録完了です。

ここまで設定すれば、名前解決用の DNS として利用することが出来るようになっています。なので参照する DNS サーバとして dnscache が稼動している IP アドレス、今回のお話では 192.168.0.1 を指定すれば、いろいろなドメイン名を参照することが出来ます。

 

□ 関連ページ

EZ-NET 特集: DNS サーバ djbdns

djbdns に関するお話を、上記のページにまとめてみました。このページの内容を含め、ほかにもいろいろなことに触れてみました。

 


 

カスタム検索

copyright © Tomohiro Kumagai @ EasyStyle G.K.
contact me: please from mail-form page.