Djbdns

djbdnsは、ダニエル・バーンスタインにより開発されたDNSサーバ用ソフトウェア。

概要 
DNSキャッシュサーバのdnscacheとDNSコンテンツサーバのtinydnsを2つの柱として構成されている。BINDとは違い非常にシンプルかつ堅牢な構造をしており、バーンスタインは djbdns のセキュリティホールの第一発見者へ1000ドルの懸賞金を与えることを発表していた。2009年2月に Matthew Dempsky によりキャッシュ汚染攻撃が可能であることが発見され、Dempsky は懸賞金を獲得した。2009年3月現在、発見されたセキュリティホールはこの1個のみである。

2007年冬、パブリックドメインとなる。

特徴 
キャッシュサーバとコンテンツサーバの分離が djbdns の大きな特徴である。BIND では、このふたつのサーバ機能を単一の named と呼ばれるデーモンで管理していた。キャッシュサーバである dnscache の機能は、クライアントからのクエリを受付けて再帰検索を行い、名前解決を行い、得た情報をキャッシュすること、コンテンツサーバである tinydns の機能は、回答すべきゾーン情報を管理し、問い合わせに答えるという機能をもつ。コンテンツサーバはあくまでも自ゾーン情報を公開するためのもので、DNS情報のキャッシュや再帰検索は行わない。キャッシュサーバとコンテンツサーバの機能はまったく別であり、同一サーバでこのふたつのデーモンを稼働させることは推奨されていない。また、組織外に公開すべきではないキャッシュサーバをうっかり公開してしまうミスを防ぐこともできる。

djbdns は、デーモンだけでなく、各種のツールも単機能のプログラムが協調して動く設定になっている。また、可能な限り root 権限を使用せず、デーモンは、chroot して動作する。設定ファイルも簡素である。djbdns はその管理に、daemontools と呼ばれるミドルウェアを使用する。tinydns の DNSデータベースの格納には、cdbと呼ばれる高速なハッシュ化データベースが使用される。

djbdns では、CNAME の使用は可能だが推奨されてはいない。Aレコードを使用することが推奨されている。

コンポーネント 
 dnscache - DNSキャッシュサーバ
 tinydns - DNSコンテンツサーバ
 axfrdns -ゾーン転送用TCP版DNSコンテンツサーバ
 walldns - ファイアウォールで使用するための、匿名の逆引き用DNSコンテンツサーバ
 rbldns - リアルタイムブラックホールリストのためのデーモン
 dnsライブラリ - libresolvに代わるDNSクエリのためのライブラリ

パッチによる保守 
djbdnsは2001年にバージョン1.0.5がリリースされて以来、公式の改良は行われていない。このため、DNSSECなどの新しい機能には対応していない。また、ダニエル・バーンスタインがIPv6の導入や普及に対して懐疑的な立場であることから、IPv6に対応していない。これに対して、有志によるパッチが提供されているが、以下の点が問題として考えられる。

 将来性 - DNSSECやIPv6に対応していないことなど、DNSサーバとしての機能の不足は否めない
 安全性 - 公式配布の状態では堅牢であるが、実用上パッチの適用が必要であり、パッチを当てた状態での堅牢性については誰も保証しない

関連項目 
 qmail
 daemontools
 dbndns
 Unbound

脚注

外部リンク 
 djbdnsホームページ (英語)

DNSソフトウェア
サーバ
ダニエル・バーンスタイン