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

概要

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

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

特徴

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

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

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

コンポーネント

パッチによる保守

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

関連項目

脚注

  1. ↑ Daniel J. Bernstein (2001年). “The djbdns security guarantee”. 2009年3月11日閲覧。
  2. ↑ Dempsky, Matthew (2009年). “Bugtraq: djbdns misformats some long response packets”. 2009年3月11日閲覧。
  3. ↑ Daniel J. Bernstein (2009年). “djbdns<=1.05 lets AXFRed subdomains overwrite domains”. 2009年3月11日閲覧。
  4. ↑ Daniel J. Bernstein (2007年). “Frequently asked questions from distributors”. 2008年4月26日閲覧。
  5. ↑ Daniel J. Bernstein (2003年). “The IPv6 mess”. 2009年8月2日閲覧。

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS D36