PowerDNS Recursor
With PowerDNS Recursor, Internet Service Providers can provide a fast and reliable DNS service
以前にDNSキャッシュサーバをUnbound、コンテンツサーバをNSDで構築したことを書いておきましたが、セカンダリ側のキャッシュサーバをPowerDNS recursorに変更してみました。
変更した理由は特にないのですが、なんとなくです。使い勝手や機能的な比較をしてみたかったから、というのが理由といえば理由でしょうか。
検証環境:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04
Codename: trusty
導入手順
今回はセキュリティ事案も最近発生したことから、最新のパッケージから導入してみました。
ダウンロードは以下から。
PowerDNS Recursor
With PowerDNS Recursor, Internet Service Providers can provide a fast and reliable DNS service
1. ファイルをダウンロードしてコンパイルする。
cd /usr/local/src/
curl -LO https://downloads.powerdns.com/releases/pdns-recursor-3.6.2.tar.bz2
tar -xjf pdns-recursor-3.6.2.tar.bz2
cd pdns-recursor-3.6.2/
apt-get install libboost-dev
./configure #コンパイルオプションがないことに少し驚く
make -j3
make install
2. グループとユーザを追加する。
groupadd -r pdns-recursor
useradd -r -g pdns-recursor -d / -s /sbin/nologin -c "PowerDNS Recursor user" pdns-recursor
chown pdns-recursor:pdns-recursor -R /etc/powerdns/
3. 設定を実施する。
cd /etc/powerdns/
cp -ar recursor.conf-dist recursor.conf
vi recursor.conf
# パラメータは適宜変更してください
allow-from=127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
forward-zones-file=/etc/powerdns/forward.conf
forward-zones-recurse=.=<ISPのプライマリDNSサーバアドレス>, .=<ISPのセカンダリDNSサーバアドレス>
hint-file=/etc/powerdns/named.cachelocal-address=127.0.0.1, <interfaceのIPaddress>
query-local-address=0.0.0.0
query-local-address6=::
setgid=pdns-recursor
setuid=pdns-recursor
POINT
forward-zones-recurse
は全てという場合は”.=
“という書き方になります。forward-zones-file
については、特定のドメインを問い合わせる先を指定する場合に使用します。setgid
、setuid
は実行グループおよびユーザです。
4. 転送用ファイル(forward-zones-file)の書き方
# 一行1ドメインとなります
# 行先頭に+をつけるのがルールらしい
# 参考:https://doc.powerdns.com/md/recursor/settings/
#forward-zones-file
+example.com=192.0.2.1, 192.0.2.2
5. service に追加、起動する前に一旦起動確認。
pdns_recursor --daemon=off
フォアグラウンドで起動してくるので、エラーメッセージが出力されていないことを確認する。
エラーメッセージが出力されている場合、そのメッセージに従って対応する。
6. サービスに登録する
cp /usr/local/src/pdns-recursor-3.6.2/pdns-recursor.init.d /etc/init.d/pdns-recursor
chmod 755 /etc/init.d/pdns-recursor
update-rc.d pdns-recursor defaults
service pdns-recursor start
使い勝手やベンチマークについてはおいおい取得できればという感じです。
設定等に間違いなどありましたらご指摘ください。