この記事では、ドメインネームシステム(DNS)ネームサーバーソフトウェアの多くの独立した実装について、機能、プラットフォームサポート、およびパッケージングを比較します。
これらのDNSサーバーはそれぞれ独立したDNSプロトコルの実装であり、他のコンピューターのDNS名を解決したり、コンピューターのDNS名を公開したり、あるいはその両方を行うことができます。単一機能のDNSツール(プロキシ、フィルター、ファイアウォールなど)や、ここに挙げたサーバーの再配布版(例えば、多くの製品はBINDを独自のユーザーインターフェースで再パッケージ化しています)は対象外です。
DNSサーバーは、ドメインネームシステムクエリの処理における専門性に応じて、いくつかのカテゴリに分類されます。特定の製品において、単独で、または組み合わせて実装される可能性のある主な役割は次の2つです。
F5 NetworksのBIG-IP製品ラインは、権威DNSサーバーまたは再帰DNSサーバーとして機能し、さらにセキュリティ対策を強化しています。主な利点は、DNSとアプリケーション高速化の両方をサポートするために、同じアプリケーション配信コントローラーを使用できることです。
BIND は事実上の標準DNS サーバーです。フリー ソフトウェア製品であり、ほとんどの Unix および Linux プラットフォームに同梱されており、多くの場合、 named (名前デーモン)とも呼ばれます。2004 年に最も広く展開された DNS サーバーでした。[ 1 ]歴史的に、BIND は、それぞれ大きく異なるアーキテクチャを持つ 3 つのメジャー 改訂を経てきました。BIND4、BIND8、および BIND9 です。BIND4 と BIND8 は現在技術的に廃止されており、この記事では考慮されていません。BIND9 は、完全なDNSSECサポートに加えて他の機能と強化を備えた、BIND の完全な書き直しです。
インターネットシステムコンソーシアムは、新しいバージョンであるBIND 10の開発を開始しました。最初のリリースは2010年4月でしたが、ISCの関与は2014年4月のBIND 10バージョン1.2のリリースをもって終了しました。ISCは、BIND 10の開発を継続するためのリソースが不足していることを理由に挙げ、BIND9へのコミットメントを再確認しました。[ 2 ]
BIND 10のコードベースはオープンソースプロジェクトとして継続されています。現時点では、この比較対象には含まれていません。
CNRには、 Cisco Systems製の商用DNSサーバーが含まれており、通常はCNR DHCP(動的ホスト構成プロトコル)サーバーと併用されます。高速な動的更新をサポートしています。
CoreDNSはKubernetesに推奨されるDNSサーバーです[ 3 ]。関連プロジェクトは2019年にCNCFによって「graduled」成熟度ステータスに引き上げられました[ 4 ]。
Dnsmasqは、軽量で設定が容易なDNSフォワーダーであり、小規模ネットワークにDNS(およびオプションでDHCPとTFTP)サービスを提供するように設計されています。グローバルDNSに登録されていないローカルマシンの名前を配信できます。
DnsmasqはDNSクエリを受け付け、小さなローカルキャッシュから応答するか、実際の再帰型DNSサーバーに転送します。/etc/hostsの内容を読み込むことで、グローバルDNSに登録されていないローカルホスト名も解決できるようになります。
djbdns は、2004 年に 2 番目に多く使用されたフリー ソフトウェアDNS サーバーであるtinydns を含む DNS アプリケーションのコレクションです。[ 1 ] qmailの作者であるDaniel J. Bernsteinによって設計され、セキュリティ上の考慮事項が重視されています。2009 年 3 月、Bernstein は djbdns のセキュリティ ホールを最初に発見した人に 1000 ドルを支払いました。[ 5 ]ソースコードは中央で管理されておらず、2007 年にパブリック ドメインに公開されました。djbdns には複数のフォークと、追加機能を追加するための 12 を超えるパッチがあります。
gdnsd は地理的な負荷分散のために設計された DNS サーバーです。[ 6 ] gdnsd は Wikipedia がサーバーとネットワークに使用している DNS サーバーです。[ 7 ]
Knot DNSは、CZ.NICが提供する無料の権威DNSサーバーです。Knot DNSは、インフラストラクチャ(ルートおよびTLD)およびDNSホスティングサービスに使用できる、高速で堅牢なDNSサーバーを目指しています。Knot DNSはDNSSEC署名をサポートし、ルートゾーン(B、K、Lルートネームサーバー)、複数のトップレベルドメインなどをホストします。
Knot Resolver は、スケーラビリティ、回復力、柔軟性を考慮して設計されたオープンソースの最新のリゾルバ実装です。コアアーキテクチャは小さく効率的で、豊富な機能のほとんどはオプションのモジュールとして実装されているため、攻撃対象領域が制限され、パフォーマンスが向上します。コアを小さく効率的に保ちながら、多くのリゾルバ機能がモジュールとしてすぐに利用できます。モジュールアーキテクチャは、C や Lua モジュールなどの拡張機能に対してステートマシンのような API を提供します。[ 8 ]
MaraDNSは、 Sam TrenholmeによるフリーソフトウェアのDNSサーバーで、優れたセキュリティ実績と使いやすさを謳っています。[ 9 ] [ 10 ] DNSレコードを変更するには、MaraDNSを再起動する必要があります。djbdns dnscacheと同様に、MaraDNS 2.0スタンドアロン再帰リゾルバ(「Deadwood」)はスレッドを使用しません。[ 11 ]
Windows DNS Server [ 12 ]は、Microsoft DNS のコンポーネントです。同じソフトウェアを構成すれば、権威モード、再帰モード、ハイブリッドモードをサポートできます。このソフトウェアはActive Directoryと統合されているため、 Active Directoryをベースとする多くの企業ネットワークのデフォルトの DNS ソフトウェアとなっています。また、標準の DNSゾーン ファイルを使用してゾーンを作成することもできます。このソフトウェアは、Windows Serverの役割としてパッケージ化されています。サーバー ソフトウェアには、コマンドラインアプリケーション dnscmd [ 13 ] 、 DNS 管理 GUI ウィザード、および DNS PowerShell [ 14 ]パッケージが付属しています。Windows Server 2012 では、Windows DNS に DNSSEC [ 15 ]のサポートが追加され、本格的なオンライン署名、Dynamic DNSおよびNSEC3サポート、RSASHA および ECDSA 署名アルゴリズムがサポートされました。組み込みのキー ストレージ プロバイダーと、サードパーティの CNG 準拠キー ストレージ プロバイダーのサポートが提供されます。DNS および DNSSEC を管理するためのユーザー インターフェイスとPowerShellサポートも改善されました。 Windows Server 2016 では、DNS サーバーは DNS ポリシーをサポートしており、管理者はこれを使用して名前解決プロセスをより詳細に制御できます。[ 16 ]
NSDは、 NLNet Labsが提供するフリーソフトウェアの権威ネームサーバーです。NSDはDNSSECのテストベッドサーバーであり、新しいDNSSECプロトコル機能はしばしばNSDのコードベースを使用してプロトタイプ開発されます。NSDは複数のトップレベルドメインをホストし、3つのルートネームサーバーを運用しています。
Pdnsd は、キャッシュされた DNS レコードをディスクに保存して長期保存するキャッシュ DNS プロキシ サーバーです。Pdnsd は、ネットワーク接続が遅い、不安定、利用できない、または非常に動的である状況に高度に適応するように設計されており、権威ネーム サーバーとして機能する能力は限られています。GPL ライセンスで提供されています。[ 17 ]
Posadisは、C++で書かれた無料のソフトウェアDNSサーバーで、動的DNS更新をサポートしています。[ 18 ] [ 19 ]
PowerDNSは、多様なデータストレージバックエンドと負荷分散機能を備えた無料のソフトウェアDNSサーバーです。権威サーバー機能と再帰サーバー機能はそれぞれ独立したアプリケーションとして実装されており、DNS over HTTPSなどの機能を実装する独立したDNSキャッシュプロキシ(dnsdist)も用意されています。
DNS Authorityは、 Secure64社が提供する商用権威ネームサーバーソフトウェアです。Secure64社は、真に安全なDNSアプリケーションとオペレーティングシステムを開発し、DNSSECの導入を完全に自動化した企業です。
DNS Cacheは、Secure64社が提供する拡張性と高いセキュリティを備えた再帰型DNSソフトウェアであり、擬似ランダムサブドメイン(PRSD)攻撃を含む、大量のサービス拒否攻撃に対する組み込みの保護機能を提供します。
Simple DNS Plusは、Microsoft Windows上で動作する商用DNSサーバー製品で、使いやすいGUIを重視している。近年、ソフトウェアのメンテナンスが滞っているようだ。
Technitium DNS Server [ 20 ] [ 21 ]は、無料のオープンソース[ 22 ] (GPLv3) [ 23 ]クロスプラットフォームの権威DNSサーバーソフトウェアで、キャッシュ機能と再帰機能を備えています。DNS -over-TLS、DNS-over-HTTPS、DNS-over-QUIC暗号化DNSプロトコルをサポートしています。[ 24 ]また、NSECとNSEC3の両方で、RSAおよびECDSAアルゴリズムのDNSSEC署名と検証もサポートしています。
DNSサーバーはブロックリストを使用してドメイン名をブロックする機能も備えており[ 25 ] 、 Torネットワーク経由でDNSリクエストを転送するためにHTTPまたはSOCKS5の使用もサポートしています[ 26 ]。
DNSサーバーは、DNSリクエストの処理と応答に使用できる独自開発のプラグインの実行をサポートしています。また、サードパーティ製ソフトウェアがDNSサーバーを管理するために使用できるHTTP APIも提供しています。[ 27 ]
Unboundは、高性能を目的とした検証機能、再帰機能、キャッシュ機能を備えたDNSサーバーです。2008年5月20日(バージョン1.0.0)にNLnet LabsによってBSDライセンスの下、フリーソフトウェアとしてリリースされました。FreeBSDではバージョン10.0以降、NetBSDではバージョン8.0以降に、基本システムの一部としてインストールされています。OpenBSDバージョン5.6以降にもUnboundが利用可能です。(以前のバージョンのFreeBSDにはBINDが同梱されていました。)
YADIFAは、BSDライセンスのメモリ効率の良いC言語で書かれたDNSサーバーです。YADIFAはYet Another DNS Implementation For Allの頭文字をとったものです。これは、.euトップレベルドメインを運営するEURidによって作成されました。[ 28 ]
DNSの機能の中には、再帰サーバーまたは権威サーバーにのみ関連するものがあります。そのため、この記事で紹介したような機能マトリックスだけでは、特定の実装の有効性や成熟度を適切に表すことはできません。
もう一つ重要な条件は、サーバーアーキテクチャです。DNSサーバーの中には、単一の「モノリシック」プログラムで両方のサーバー機能をサポートするものがあります。一方、より小さなプログラムに分割され、それぞれがサーバーのサブシステムを実装しているものもあります。コンピュータサイエンスにおけるマイクロカーネル論争と同様に、この区別の重要性と有用性については激しい議論が交わされています。この記事の機能マトリックスでは、DNS機能が単一のプログラムで提供されているか、複数のプログラムで提供されているかについては触れていません。ただし、それらの機能がサードパーティのアドオンソフトウェアではなく、基本サーバーパッケージに含まれていることが前提となります。
本稿で説明するDNSサーバーのオペレーティングシステムサポートの概要において、以下の用語はサポートレベルを示しています。
このリストは網羅的なものではなく、現在最も一般的なプラットフォームを反映したものです。