自動セカンダリDNSはもはや問題ではありません

最近記事を見て、他の誰かがセカンダリサーバーでのDNSドメインの自動登録について疑問に思っていたことに非常に驚きました。 長年使用してきたAutomateスレーブDNSサポートのバージョンを共有したいと思います。 すべての人に適しているわけではありませんが、非常に簡単です。



セカンダリを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
      
      







セカンダリサーバー上にドメインを自動的に作成するという質問が、もう気にならないことを願っています。



All Articles