セカンダリをPowerDNSとして使用し、マスターとしてBindを使用しますが、ゾーンを変更/作成するときにDNS NOTIFYを使用できる他のサーバーはすべて使用します( YADIFAを調べますが、私の手はまだ到達していません)。 セカンダリサーバーでゾーンを作成および変更するために使用するのはこの機能です。マイナスは、スレーブでゾーンを削除する場合にのみ、手動で削除する必要があります。 ログでは、リモートゾーンが明確に表示され、必要に応じて、プロセスを自動化するスクリプトを取得できます。ゾーンはほとんど削除されないため、そのような必要はありませんでした。
おそらく、この記事に興味があるなら、ウィザードのセットアップ方法についてのアイデアがあります。または、必要に応じて、セットアップ用の資料を個別に見つけることができます。 バインドの場合、構成でオプションを指定する必要があることに注意してください。
notify yes
したがって、2つのホスト10.0.0.1(ns.server.net)と10.0.0.2(ns0.server.net)があります。ns.server.netがメインで、ns0.server.netがセカンダリです。
それらをserver.netドメインファイルで説明します。
@ IN NS ns.server.net. @ IN NS ns0.server.net. ns IN A 10.0.0.1 ns0 IN A 10.0.0.2
Pdnのインストールと構成に進みます。 Debianを使用しているサーバー:
apt-get install pdns-backend-sqlite3
このオプションは、dnsレコードを保存するために使用されるSqlite v3でPowerDNSサーバーを実行するために必要なものだけでなく、pdns-server、sqlite3を自動的にプルアップします。 Sqlite3が選択されるのは、それほど注意を払う必要がないためですが、別のオプションを選択することを妨げるものは何もありません。
[skip] creating database pdns.sqlite3: success. verifying database pdns.sqlite3 exists: success. populating database via sql... done. Processing triggers for pdns-server ... [ ok ] Restarting PowerDNS Authoritative Name Server: pdns.
そのため、Debian以外のディストリビューションにSqlite3ベースのPowerDNSサーバーをインストールしました。データベースを手動で構成する必要がある場合があります。 残念ながら、パッケージにエラーがあり、サーバーがデータベースを表示するには、1行コメントアウトする必要があります。
/etc/powerdns/pdns.d/pdns.simplebindファイルで、
bind-config=/etc/powerdns/bindbackend.conf
行を削除またはコメントアウトする必要があります。
また、構成では、サーバーをセカンダリとして宣言する必要があります。
/etc/powerdns/pdns.conf
slave=yes
これで、マスターDNSをSqliteデータベースに登録できます。
cd /var/lib/powerdns sqlite3 pdns.sqlite3 sqlite> INSERT INTO supermasters VALUES('10.0.0.1','ns.server.net','master'); .quit
これで、設定は完了しましたが、それだけではありません。データベースをsqliteにロードする必要があります。これを行うには2つの方法があります。
私の意見で最も簡単なのは、ウィザードでシリアルを更新してDNS NOTIFYスレーブを送信し、それによってドメインを通知し、それを強制的に起動してピックアップすることです。
Mesterでは、次のようになります。
master named[12318]: reloading configuration succeeded master named[12318]: reloading zones succeeded master named[12318]: zone server.net/IN: loaded serial 1 master named[12318]: zone server.net/IN: sending notifies (serial 1) master named[12318]: client 10.0.0.2#14310: transfer of 'server.net/IN': AXFR started master named[12318]: client 10.0.0.2#14310: transfer of 'server.net/IN': AXFR ended
セカンダリで:
slave pdns[21225]: Received NOTIFY for server.net from 10.0.0.1 for which we are not authoritative slave pdns[21225]: Created new slave zone 'server.net' from supermaster 10.0.0.1, queued axfr slave pdns[21225]: Initiating transfer of 'server.net' from remote '10.0.0.1' slave pdns[21225]: gsqlite3: connection to '/var/lib/powerdns/pdns.sqlite3' successful slave pdns[21225]: 1 slave domain needs checking, 0 queued for AXFR
sqliteで直接ドメインを取得するために提供できる代替案:
INSERT INTO "domains" VALUES(1,'domain.ru','10.0.0.1',0,'SLAVE',NULL,'master'); INSERT INTO "domains" VALUES(2,'domain.su','10.0.0.1',0,'SLAVE',NULL,'master'); INSERT INTO "domains" VALUES(3,'domain.com','10.0.0.1',0,'SLAVE',NULL,'master');
0が一連のゾーンである場合、ウィザードでは明らかに大きくなり、更新が行われます。
slave pdns[21225]: Received serial number updates for 1 zones, had 0 timeouts slave pdns[21225]: Domain server.net is stale, master serial 3, our serial 0 slave pdns[21225]: Initiating transfer of 'server.net' from remote '10.0.0.1' slave pdns[21225]: AXFR started for 'server.net', transaction started
セカンダリサーバー上にドメインを自動的に作成するという質問が、もう気にならないことを願っています。