-
サーバ構築のデージーネットTOP
-
OSS情報
-
一押しOSS
-
BINDに替わるDNSサーバ〜PowerDNS〜
-
BIND v.s. PowerDNS サーバの管理性
-
サーバ構築のデージーネットTOP
-
OSS情報
-
DNSサーバ
-
BINDに替わるDNSサーバ〜PowerDNS〜
-
BIND v.s. PowerDNS サーバの管理性
BIND v.s. PowerDNS サーバの管理性
PowerDNSと、現在広く利用されているBINDの比較第2弾をご紹介します。
ここでは、PowerDNSとBINDの管理性を比較しました。
BINDのゾーンの管理
特に、管理するゾーンの情報は、named.confファイルという1つのファイルで行います。
named.confの例
options {
listen-on port 53 { 127.0.0.1;
192.168.7.2; };
listen-on-v6 port 53 { ::1;
2001:db8::2; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
zone "example.com" IN {
type master;
file "example.com.db";
allow-update { none; };
allow-transfer { 192.168.1.3; };
notify yes;
};
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.in-addr.arpa.db";
allow-update { none; };
allow-transfer { 192.168.1.3; };
notify yes;
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa" {
type master;
file "0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.db";
allow-update { none; };
allow-transfer { 192.168.1.3; };
notify yes;
};
PowerDNSのゾーン管理
PowerDNSは、ゾーンの追加や削除をPoweradminを使って直感的に行うことができます。
BINDのリソースレコード管理
BINDでは、DNSゾーン毎にファイルを作成し、リソースを管理します。
ゾーンファイルの例
-----------------------------------
$TTL 172800
@ IN SOA ns1.example.com. root.ns1.example.com. (
2015011701
3600
300
360000
86400
)
IN NS ns1.example.com.
IN NS ns2.example.com.
IN MX 10 mx1.example.com.
IN MX 20 mx2.example.com.
ns1 IN A 192.168.1.2
IN AAAA 2001:db8::2
ns2 IN A 192.168.1.3
IN AAAA 2001:db8::3
mx1 IN A 192.168.1.4
IN AAAA 2001:db8::4
mx2 IN A 192.168.1.5
IN AAAA 2001:db8::5
pc1 IN A 192.168.1.101
IN AAAA 2001:db8::101
-----------------------------------
これらのファイルは、記法が独特です。「@」「.」など、自動的補完される文字が存在したり、$TTLなど変数が使えたりするのは、非常に便利です。一方で、新たに設定方法を習得する人にとっては、少なからずハードルがあります。また、設定を変更したらSOAレコードのシリアル番号を更新する必要があります。
設定を変更したら、DNSサーバに設定ファイルを再読み込みさせます。rndcのような、リモートから制御するコマンドも用意されています。
# rndc reload example.com [Enter]
zone reload up-to-date
プロセスにHUPシグナルを送信する手法や、systemdの制御などを使う方法がより一般的です。
# systemctl reload named.service[Enter]
PowerDNSのリソースレコード管理
PowerDNSでは、リソースレコードの管理もPoweradminを使って行うことができます。SOAのシリアル番号は、Poweradminが自動的に更新してくれるため、管理者が意識する必要はありません。また、再起動や再読み込みのような処理は必要なく、設定はすぐに反映されます。
管理者の権限設定
BINDは、ファイルで管理していることもあり、管理はLinuxのrootユーザで行う必要があります。一方で、PowerDNSでは、ゾーンのオーナーを設定することができます。次は、Poweradminのユーザ管理画面です。
ユーザには、次のような権限を与えることができます。そのため、ゾーン毎に管理者をかえることができます。
- システム全体を管理できるユーザ
- 特定のドメインのみを管理できるユーザ
- マスタ/スレーブなどの構成を管理するユーザ
- 参照専用のユーザ
脆弱性
BINDは、非常に脆弱性が多く報告されています。そのため、頻繁にバージョンアップを行う必要があります。一方で、PowerDNSは脆弱性が少なく、安全で管理者の負担の少ないDNSサーバであるということができます。
結論
PowerDNSは、管理性、性能、安全性などで、BINDよりも優れています。そのため、一般的な用途ではDNSサーバを構築する場合には、PowerDNSを選んだ方が良いでしょう。一方で、PowerDNSには、BIND特有のviewという機能と同等の機能がありません。viewは、クライアントに応じて応答を変える機能です。1つのDNSサーバで公開DNSサーバと社内DNSサーバの2つの役目を担わせる場合等に使います。
仮想サーバが頻繁に使われるため、viewを使ってDNSの応答を制御しなくても、別のDNSサーバを構築することで対処が可能です。なお、PowerDNSでも、Luaレコードという機能でレコード毎のviewを実装することは可能です。もし、どうしてもviewを使わなければならないような状況の場合には、BINDを使ってDNSサーバを構築するのがよいと思われます。
PowerDNS導入の検討資料を無料でダウンロードいただけます。
DNSの仕組みと重要性、オープンソースのPowerDNSとUnboundを組み合わせた構成についてまとめた資料です。PowerDNSについて情報を収集する際、サービスをご検討いただく際などにお役立てください。
デモのお申込み
もっと使い方が知りたい方へ
PowerDNSの操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。PowerDNSのデモをご希望の方は、下記よりお申込みいただけます。
一押しOSS情報「PowerDNS」
PowerDNS構築事例・関連情報
PowerDNSとは、Open-Xchage社が主体となって開発を行っているDNSサーバです。コンポーネントとして権威DNSサーバとキャッシュDNSサーバが存在します。本書はPowerDNSについて調査した内容をまとめたものです。
BINDに代わって注目されているDNSサーバのPowerDNSと管理ソフトウェアの説明資料です。
デージーネットOSS研究室が、BINDに代わって使われるようになった、NSD、KnotDNS、PowerDNSなどの権威DNSサーバの性能評価を行った報告資料です。
PowerDNSは、BINDに比べて管理が簡単かつ高速で、セキュリティに強いという特徴を持っています。しかし、比較的新しいソフトウェアであるため、使い方、障害時の対応に関する情報はまだ多くありません。 ここでは、デージーネットが行うPowerDNS商用サポートについて紹介します。
今回は、情報・通信業のお客様へDNS権威サーバを構築した事例です。お客様は、以前よりDNS権威サーバとして、BINDを利用していましたが、セキュリティ面や耐障害性に不安がありました。
権威DNSサーバをBINDで構築し、DNSSEC対応をしているが管理が煩雑だということでご相談を頂きました。PowerDNSとPowerAdminを利用することで、DNSSECの運用が簡単に行えるようになりました。
BINDに替わる権威DNSサーバとして注目されているPowerDNSを使用して、DNSサーバのセキュリティとスピードの向上を図りました。また、PowerDNSの管理ツールであるPowerAdminと合わせて利用することで、管理性も向上することができました。
BINDとは、権威DNSサーバとキャッシュDNSサーバの両方の機能を持ったオープンソースソフトウェアです。DNSサーバのデファクトスタンダードとして古くから利用されてきました。BINDは、非常に汎用的に利用できる一方で、コードが複雑で脆弱性が潜みやすく、セキュリティ上の問題があるとされています。
DNSサーバとは、インターネットの名前解決を行うサーバーのことを言います。ここでは、おすすめの各DNSサーバのOSSの特徴を比較し、DNSサーバソフトウェアを選定する際に重視すべきポイントをまとめました。