手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 PowerDNS 権威 DNS – DB バックエンドでゾーンを管理する

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 は似ていますが責務が違います。名前解決をどこで完結させるのか、どのゾーンを誰に公開するのかを分けて読むと整理しやすくなります。

PowerDNS の位置づけ

項目BINDPowerDNS Authoritative
管理方式ゾーンファイル中心データベースバックエンド中心
用途内部 DNS / 外部 DNS のどちらにも使える権威 DNS としてレコード管理に向く
更新ゾーンファイル編集と reloadpdnsutil や DB 操作で更新
向いている場面伝統的な DNS 構成DB 管理、API 連携、動的なレコード管理

PowerDNS をインストールする

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y pdns-server pdns-backend-sqlite3 dnsutils

SQLite バックエンドを設定する

小規模な検証や内部向けでは 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.com

IPv6 レコードを追加する

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 で管理したいのかを基準に選ぶと整理しやすくなります。

Ubuntu 22.04 PowerDNS 権威 DNS – DB バックエンドでゾーンを管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る