木曜日, 5月 11, 2006

pdnsd

以前、djbdnsのdnsキャッシュを使っていました。
でも、思ってたより性能が出てないので止めました。

何度か書いてますが、このページはさくらインターネットでホスティングしています。
で、気がつくとなんの連絡もなしにDNSキャッシュが一台止まっていました。
しばらくして復帰してましたが、まあ、はっきり言って困るのでまた自分で用意することにしました。

djbdnsは更新されないのでやめました。
rootサーバーの一覧が古いままなんですね。
なので自分で更新しないといけません。
こんなことは滅多にないんですが、滅多にないだけに気がつきにくいので、よくない。
頻繁にあっても面倒なのでよくないですが。

てことで、pdnsdを導入することにしました。
理由はDebianのリファレンスで推奨されてたから。

とりあえず、設定ファイル(pdnsd.conf)のglobalセクションで
server_ip="127.0.0.1";
の行のコメントを外したら動きました。
このサーバーは外向けにコンテンツDNSサーバーを動かしてるので、デフォルトではポートが衝突して起動しないんですね。

このままだと、さくらのキャッシュサーバーのキャッシュサーバーに過ぎないので、ルートサーバーから再帰的に検索するように設定します。
これでさくらのキャッシュが汚染されようがストップしようが影響受けません。
で、ここまでやって気がついたんですが、結局pdnsdもルートサーバーの登録は手動でする必要がありました。なんてこったい。

server {
ip="192.33.4.12","128.8.10.90","192.203.230.10","192.5.5.241","192.112.36.4","128.63.2.53","192.36.148.17","192.58.128.30","193.0.14.129","198.32.64.12","202.12.27.33","19
8.41.0.4","192.228.79.201";
root_server=on;
}
最低限必要なのはこれだけ。
ipの取得は、
dig -t ns .
でできます。もちろん、その時点で名前解決できる必要があります。

pdnsdには動的にサービスを設定するpdnsd-ctlというコマンドが付属しています。
なので、digで得たデータを編集してこのコマンドに渡すスクリプトを書けば自動で更新できますね。
エラー時の処理が怖いのでそこまではやりませんが。

最後にresolv.confを127.0.0.1にして終わり。
djbdnsよりは簡単でした。

0 件のコメント: