オープンソース

DNSサーバのおすすめOSS比較9選!選定ポイントも解説

DNSサーバとは、インターネットの名前解決を行うサーバーのことを言います。この記事では、権威DNSサーバ・キャッシュDNSサーバのカテゴリーごとに、おすすめの各DNSサーバのOSSの特徴を比較し、DNSサーバソフトウェアを選定する際に重視すべきポイントをまとめました。

目次

DNSサーバーとは

DNSは、Domain Name Systemの略で、インターネットの名前解決を行う機能です。IPアドレスは一般的に数字の羅列で表されますが、人間には識別しにくいため、対応するドメインが付与されています。そして、ホスト名やドメイン名からIPアドレスを調べたり、IPアドレスからホスト名やドメイン名を調べたりする時に、DNSの機能を使います。

DNSは、インターネットを利用するために非常に重要な役割を果たしていて、欠かせない機能です。インターネットの初期からある仕組みですが、近年はキャッシュポイズニングやDOSなどの攻撃にさらされることが多くなり、こうしたDNS攻撃から保護することを目的として、様々な改良が追加されています。なおDNSサーバは、インターネット全体の仕組みで使われているため、OSSのサーバソフトウェアが利用されることが多いです。

DNSの機能を提供するDNSサーバには、権威DNSサーバキャッシュDNSサーバという別々の役割を担う2つのサーバがあります。権威DNSサーバは、DNSコンテンツサーバとも呼ばれ、IPアドレスやホスト名などの情報を公開する役割を持っています。キャッシュDNSサーバは、クライアントが権威DNSサーバからホスト名やIPアドレスを取得する際に利用するサーバです。

DNSサーバは構築すべきか借りるべきか?

最近は、さまざまなサーバの機能を、インターネット上のサービスや無料サービスで使用することが可能です。DNSサーバも例外ではなく、セキュリティリスクや管理上の手間を気にして自社内にサーバを構築することを嫌い、外部のサービスを使用するケースも少なくありません。しかし、自社用にDNSサーバを構築することにはいくつかのメリットがあります。

キャッシュDNSサーバを構築するメリット

キャッシュDNSサーバは、組織内のPCやスマホなどのデバイスからインターネットの様々なサービスを利用するときに、必須となるサーバです。最近は、Googleが無償で提供しているGoogle Public DNS(8.8.8.8)や、CloudflareがAPNICと提携して維持・運営を行っているCloud flare DNS(1.1.1.1)など、外部のパブリックなサービスを使用することもできます。また、ルータに内蔵されているDNSサーバ機能や、接続しているインターネット・プロバイダのキャッシュDNSサーバを利用することもできます。しかし、キャッシュDNSサーバを組織内に構築することで、以下のような大きなメリットがあります。

インターネットのレスポンス速度が早くなる

インターネット接続の回線が低速な場合や、通信が混みあっている場合には、名前からIPアドレスを調べるため名前解決の処理に時間がかかる場合があります。例えばウェブサイトへアクセスする場合、WebブラウザでURLを入力したりリンクをクリックしたりした後、サイトの次のページが表示されるまでの応答の時間が長くなります。すると、インターネットのレスポンスが遅いと感じてしまいます。

しかし、組織内のローカルな環境にキャッシュDNSサーバを構築すると、DNSサーバが問い合わせ済みの情報をキャッシュとして保存しているため、名前解決をする応答の時間が短縮されます。そのため、組織内にキャッシュDNSサーバを配置することで、利用者からは、インターネットのレスポンス速度が早くなるのです。

インターネット回線のパケットを抑える

ローカルな環境にキャッシュDNSサーバを構築すると、ユーザーがよく使う名前はDNSサーバにキャッシュされるようになります。そのため、インターネット上を検索する必要がなくなり、回線を効率良く使用することができます。

安全性が向上する

万一、キャッシュDNSサーバが停止すると、名前解決ができなくなるため、インターネットのほとんどのサービスが利用できなくなります。そのため、何らかの原因で外部サービスが停止すると、大きな影響を受けることになります。キャッシュDNSサーバは、2台以上を設定しておくことが可能です。自社用に構築する場合、組織内に構築したDNSサーバを優先して使うように設定し、トラブルがあった場合のみ外部のDNSサーバを使用するように設定しておくことで、障害に強くなります。

なお、キャッシュDNSサーバのOSSの比較については、以下のページで説明しています。

権威DNSサーバを持つメリット

インターネット上では、権威DNSサーバを代行してくれるサービスが多くあります。こうしたサービスでは、GUIでDNSの設定を行えるなど、使い勝手も良いのが特長です。しかし、こうしたサービスを利用せずに自社でサーバを構築する場合でも、明確なメリットがあります。

内部DNSサーバとして使える

インターネット上で提供しているサービスでは、組織内のローカルなサーバの名前解決のための情報を管理することができません。組織内のローカルなDNSサーバを作ることで、組織内のネットワーク管理がやりやすくなります。

耐障害性が高まる

DNSサーバが、自社のWWWサーバやメールサーバなどのサービスを提供するサーバと別のロケーションにあると、耐障害性が低下してしまいます。次の3つの例で考えてみましょう。

  1. WWWサーバ、メールサーバがA社にあり、DNSサーバがB社にある
  2. WWWサーバ、メールサーバ、DNSサーバが同じ場所(A社)にある
  3. WWWサーバ、DNSサーバがA社、メールサーバ、予備のDNSサーバがB社にある

1のケースでは、A社の回線などに障害が発生した場合、サービスが停止してしまいます。また、B社のDNSサービスに障害が発生した場合も、サービスは停止してしまいます。
2の場合には、A社の回線に障害が発生した場合だけサービスが停止します。
3の場合には、A社で障害が発生しても、B社にあるメールサーバは停止しません。
つまり、1は2よりもリスクが高く、3がもっともリスクが低いということになります。

権威DNSサーバには、マスターサーバ(プライマリサーバ)とスレーブサーバ(セカンダリサーバ)の2つの種類があります。マスターサーバは、名前やアドレスを管理するゾーンデータベースを自分で管理するサーバです。スレーブサーバは、マスターサーバから、ゾーンデータベースの転送を受けて、そのコピーを保持します。マスターサーバとスレーブサーバの連携は、自動で行われます。また、スレーブサーバは、何台でも配置することができます。自社のサーバのロケーションに合わせて、権威DNSサーバを複数台を構築することで耐障害性が高まるのです。

自社でDNSサーバを構築すると管理性が悪い?

長い間一般的に使われていたBINDのイメージから、DNSサーバは運用や管理の負荷が高くて大変だと考える人もいます。BINDはGUIの画面上から管理ができないため、DNSに登録しているデータ(レコード)などの変更に関する専門的な知識を理解しておく必要がありました。また、セキュリティの問題が頻発し、アップデートなどの作業が頻繁に必要になりました。そのため、DNSサーバは運用管理のコストが掛かるという印象があります。

しかし、最近ではGUIから管理することができたり、脆弱性が少ないDNSサーバのソフトウェアを選ぶこともできます。こうしたソフトウェアを選択してDNSのシステムを構築すれば、意外と大きな効果があります。本ページの項目では、権威DNSサーバのソフトウェアをいくつか紹介し、長所・短所を説明しています。これらを参考に用途に合ったソフトウェアを選択し、DNSサーバのシステムを構築することをお勧めします。なお、キャッシュDNSサーバの比較、DNSサーバの選定ポイント、DNSの新しい攻撃手法については、本ページ下部のリンクよりご覧いただけます。構築や導入後の保守サポートに関するご相談は下記よりお気軽にお問い合わせください。

OSSのおすすめ権威DNSサーバ

BIND

ISCが提供しており、古くから使われている有名なソフトウェアです。DNSサーバとして十分な機能を持ち汎用的に利用できる一方で、脆弱性が多く報告されており、セキュリティリスクが高いと言われています。

長所

  • 権威DNSサーバとキャッシュDNSサーバの両方の機能を利用することができます。
  • Dynamic DNS、view、DNSSEC、IPv6の対応などのほぼすべての機能が揃っています。
  • 多くのLinuxディストリビューションで標準的に採用されていて、入手が容易です。
  • Linuxディストリビュータのパッケージを使えば、継続的にアップデートを受けることができます。
  • サポートが必要な場合には、RedHat Enterprise Linuxなどのサポート付きのディストリビューションを利用することができます。
  • 歴史が古く、インターネット上に多くの情報が載っています。

短所

  • 非常に多くの脆弱性が確認されており、セキュリティアップデートが大変です。
  • 設計が古いため、キャッシュDNSと権威DNSの機能が分離されておらず、セキュリティ的に脆弱です。
  • ファイルやコマンドで管理を行う必要があります。
  • DNSSECは利用できますが、管理はかなり煩雑です。
  • ここで紹介するDNSサーバの中では、最も性能が劣ります。

BINDとPowerDNSの脆弱性の数

BINDとPowerDNSの脆弱性の数

デージーネットでは、脆弱性が多い点や他のソフトウェアと比較して性能が低い点などから、BINDの利用を推奨していません。BINDの代替としては、権威DNSサーバはPowerDNSを、キャッシュDNSサーバはunboundを推奨しています。

BIND構築事例 お問合せ

PowerDNS

PowerDNSとは、Open-Xchage社が主体となって開発を行っているオープンソースソフトウェアのDNSサーバです。以前は製品だったDNSサーバをオープンソース化したもので、長い実績のあるDNSサーバです。近年は、BINDに代わるDNSサーバとして人気が高まってきています。

DNSサーバPowerDNSのWEB画面

長所

  • セキュリティの問題が少なく、使いやすいDNSサーバです。
  • Webインターフェースから設定でき、簡単に管理が行えます。
  • Webインターフェースは、用途に応じて、Poweradmin、phpIPAMなど複数のソフトウェアから選択できます。
  • ドメイン毎に管理者を変えることもできます。
  • Dynamic DNS、DNSSEC、IPv6に対応しています。
  • DNSSECの利用が最も簡単に行えるDNSサーバです。
  • dnsdistと組み合わせると、viewと同様の機能が実現できます。
  • dnsdistと組み合わせると、キャッシュDNSサーバと権威DNSサーバを同居することができます。
  • デージーネットがサポートを提供していて、アップデートやQ&Aのサービスを受けられます。
  • BINDに比べて、高速に動作します(NSDよりは若干劣ります)。
  • BINDの設定ファイルをそのまま利用したり、変換して利用することが出来ます。
  • APIを備えていて、phpIPAMなどのIPアドレス管理ツールとの連携も可能です。

短所

  • 長所を生かすにはRDBやWebサーバとの連携が必要で、システム構成がやや複雑です。

デージーネットでは、BINDに代わる権威DNSサーバとしてPowerDNSを推奨しています。デージーネット社内のDNSサーバもPowerDNSを利用しており、こうした構築やシステム保守サポート、コンサルティングの実績を活用して、PowerDNSの商用サポートを提供しています。

PowerDNS構築事例 PowerDNSサポート お問合せ

NSD

NSDとは、NLnet LabsとPIPE NCCが共同で開発を行い、保守を行っている権威DNSサーバのオープンソースソフトウェアです。BSD Licenseにて提供されています。NSDは"Name Server Daemon"の略で、DNSルートサーバなどでも採用されている、実績のあるDNSサーバです。

長所

  • 今回紹介しているDNSサーバの中では、最速で動作します。
  • 設定ファイルは、とてもシンプルで、使いやすいものです。
  • unboundと同じ開発元であるため、unboundとは設定方法が似ています。

短所

  • コマンドラインから管理を行う必要があります。
  • 機能はシンプルであるため、IXFR (差分ゾーン転送) のマスター側機能、クエリログ、ダイナミックDNS、viewを利用することはできません。
  • パッケージで提供されていないため、アップデートを自分で行う必要があります。
  • アップデートやQ&Aサービス等のサポートが、日本国内では提供されていません。
  • DNSSEC署名の機能はないため、外部ツールを利用する必要があります。

NSD構築事例 お問合せ

KnotDNS

KnotDNSは、CZ NIC社が開発した権威DNSサーバのオープンソースソフトウェアです。GNU General Public License 3 (もしくはそれ以降) にて提供されています。マルチCPU環境に強く、CPUを増やすことで性能が向上します。KnotDNSは権威DNSサーバ機能のみを提供しており、キャッシュサーバ機能はKnot Resolverとして別のソフトウェアで提供されています。

長所

  • NSDとほぼ同等の性能を発揮する高速なDNSサーバです。
  • CPUを増やすことでさらに性能が向上します。
  • Dynamic DNSをサポートしています。
  • 設定ファイルはYAMLベースであるため、使いやすいです。また、ゾーン設定のテンプレート機能があり、ゾーンが多くても設定ファイルがシンプルに保たれます。
  • DNSSECの運用がしやすいです。
  • dnstapと併用することでクエリログをとることができます。

短所

  • コマンドラインから管理を行う必要があります。
  • viewを利用することができません。
  • パッケージで提供されていないため、アップデートを自分で行う必要があります。
  • アップデートやQ&Aサービス等のサポートが、日本国内では提供されていません。

KnotDNS構築事例 お問合せ

権威DNSサーバ
ここでは、BINDPowerDNSNSDKnotDNSについて紹介します。
キャッシュDNSサーバ
ここでは、bindunboundRecursorDJBDNSdnsdistについて紹介します。
DNSサーバ選定のポイント
ここでは、DNSサーバを選定する場合のポイントについて確認します。
DNSの新しい攻撃手法NXNSAttack
NXNSAttackは、DNSサービスの委任と呼ばれる機能を悪用したものです。ここでは委任の仕組みからNXNSAttackのメカニズムまでを解説します。

DNSサーバのおすすめOSS比較9選!選定ポイントも解説の先頭へ