PowerDNS
PowerDNS は DNS サーバーです。C++ で書かれており GPL ライセンスで配布されています。PowerDNS はシンプルな BIND スタイルのゾーンファイルからリレーショナルデータベースやロードバランサー・フェイルオーバーを使用するアルゴリズムまで、幅広いバックエンドを利用できるのが特徴です。
インストール
公式リポジトリの powerdns パッケージをインストールしてください。
そして /etc/powerdns/pdns.conf
にある設定ファイルを確認します。
バックエンド
PowerDNS で特定のバックエンドを使うように設定するには設定ファイルで launch
オプションをセットする必要があります。また、使用するバックエンドによっては、バックエンドの設定も必要です。
PostgreSQL, MySQL, SQLite の場合 /usr/share/doc/powerdns
にデータベーステーブルを作成する SQL ファイルが存在します。
PostgreSQL バックエンド
まず PowerDNS がデータを保存するのに使用するユーザーとデータベースを作成してください。
そして "schema.pgsql.sql" ファイルを実行してテーブルを作成:
psql -U <user> -d <database name> -a -f /usr/share/doc/powerdns/schema.pgsql.sql
最後に設定ファイルを更新してください:
launch=gpgsql gpgsql-host=/run/postgresql # if PostgreSQL is listening to unix socket # gpgsql-host=127.0.0.1 # gpgsql-port=5432 gpgsql-dbname=<database name> gpgsql-user=<user to use> gpgsql-password=
MySQL バックエンド
MySQL サーバーをインストール・実行してください。新しいユーザー・新しいデータベースを作成してデータベースにスキーマをインポートします:
mysql -u root -p pdns < /usr/share/doc/powerdns/schema.mysql.sql
Then, configure Powerdns to use MySQL:
/etc/powerdns/pdns.conf
launch=gmysql gmysql-host=127.0.0.1 gmysql-socket=/run/mysqld/mysqld.sock gmysql-user=pdns gmysql-password=Pa$$w0rd gmysql-dbname=pdns # Add this for dnssec support # gmysql-dnssec=yes
127.0.0.1 の代わりに localhost を使うこともできますが、PowerDNS がソケットファイルを使うようになります。デフォルトでは chroot で PowerDNS を動作させるため、ソケットファイルは利用できません。
起動
powerdns
サービスを起動・有効化してください。