Ubuntu 22.04 で PowerDNS Authoritative Server を構築する手順です。PowerDNS は、BIND のゾーンファイル中心の運用とは異なり、データベースをバックエンドにして権威 DNS を管理できます。
この記事では、PowerDNS を権威 DNS として構成し、ゾーン、SOA、NS、A、AAAA、MX、PTR レコードを登録して確認する流れを整理します。
DNS がよくわかる教科書 第 2 版
DNS の基本、名前解決、権威 DNS、キャッシュ DNS、DNSSEC などを体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
関連する DNS 記事
内部 DNS、外部 DNS、権威 DNS は似ていますが責務が違います。名前解決をどこで完結させるのか、どのゾーンを誰に公開するのかを分けて読むと整理しやすくなります。
- Ubuntu 22.04 BIND 内部用 DNS サーバー構築
- Ubuntu 22.04 BIND 外部用 DNS サーバー構築
- Ubuntu 22.04 PowerDNS 権威 DNS サーバー構築
PowerDNS の位置づけ
| 項目 | BIND | PowerDNS Authoritative |
|---|---|---|
| 管理方式 | ゾーンファイル中心 | データベースバックエンド中心 |
| 用途 | 内部 DNS / 外部 DNS のどちらにも使える | 権威 DNS としてレコード管理に向く |
| 更新 | ゾーンファイル編集と reload | pdnsutil や DB 操作で更新 |
| 向いている場面 | 伝統的な DNS 構成 | DB 管理、API 連携、動的なレコード管理 |
PowerDNS をインストールする
sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y pdns-server pdns-backend-sqlite3 dnsutilsSQLite バックエンドを設定する
小規模な検証や内部向けでは SQLite バックエンドで構成できます。大規模運用や冗長化を考える場合は MariaDB / PostgreSQL なども検討します。
sudo tee /etc/powerdns/pdns.d/pdns.local.gsqlite3.conf <<'EOF'
launch=gsqlite3
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
EOF
sudo systemctl restart pdns
sudo systemctl status pdns --no-pagerゾーンを作成する
sudo pdnsutil create-zone example.com ns1.example.com
sudo pdnsutil add-record example.com ns1 A 203.0.113.10
sudo pdnsutil add-record example.com www A 203.0.113.20
sudo pdnsutil add-record example.com mail A 203.0.113.30
sudo pdnsutil add-record example.com @ MX '10 mail.example.com.'
sudo pdnsutil increase-serial example.comIPv6 レコードを追加する
sudo pdnsutil add-record example.com ns1 AAAA 2001:db8::10
sudo pdnsutil add-record example.com www AAAA 2001:db8::20
sudo pdnsutil increase-serial example.comゾーン内容を確認する
sudo pdnsutil list-zone example.com
dig @127.0.0.1 example.com SOA
dig @127.0.0.1 example.com NS
dig @127.0.0.1 www.example.com A
dig @127.0.0.1 www.example.com AAAA
dig @127.0.0.1 example.com MX逆引きゾーンを作成する
権威 DNS として逆引きも管理する場合は、対象プレフィックスに対応する逆引きゾーンを作成します。ここでは例示用の IPv4 逆引きを示します。
sudo pdnsutil create-zone 113.0.203.in-addr.arpa ns1.example.com
sudo pdnsutil add-record 113.0.203.in-addr.arpa 20 PTR www.example.com.
sudo pdnsutil add-record 113.0.203.in-addr.arpa 30 PTR mail.example.com.
sudo pdnsutil increase-serial 113.0.203.in-addr.arpa
dig @127.0.0.1 -x 203.0.113.20外部公開時の注意
- PowerDNS Authoritative は権威 DNS として使い、再帰 DNS と混同しない
- 公開するゾーンと内部専用ゾーンを分ける
- DB バックエンドのバックアップを設計する
- secondary DNS やゾーン転送の許可範囲を明確にする
- API を有効化する場合は認証と到達範囲を制限する
BIND と PowerDNS の使い分け
BIND はゾーンファイルベースで伝統的に扱いやすく、内部 DNS や小規模な権威 DNS に向いています。PowerDNS は DB バックエンドや API 連携を使い、レコード管理をシステム化したい場合に向いています。
まとめ
Ubuntu 22.04 の PowerDNS Authoritative Server は、データベースをバックエンドにした権威 DNS として使えます。BIND と同じ DNS サーバーではありますが、管理思想が異なるため、ゾーンファイルで管理したいのか、DB や API で管理したいのかを基準に選ぶと整理しやすくなります。


