[DNS][PowerDNS] PowerDNS recursor 3.6.2 を導入してみた。

AIX、UNIX、Linux
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については、特定のドメインを問い合わせる先を指定する場合に使用します。
  • setgidsetuidは実行グループおよびユーザです。

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

使い勝手やベンチマークについてはおいおい取得できればという感じです。

設定等に間違いなどありましたらご指摘ください。

この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。 Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

kometchtechをフォローする
タイトルとURLをコピーしました