バインドDNSサーバー設定の自動生成システム

このサービスでは、多くの場合、多くのDNSゾーンを作成し、それらにレコードを追加または変更する必要があります。 手動でこれはかなり骨の折れる複雑なプロセスです。構文に留意し、詳細を間違えないようにする必要があります。 そのようなことについては、コンピューターで作業を完了することがまさにそれです。



IAdminは、ホスティングサーバーでバインド構成を自動的に生成するように設計されたシステムであり、MySQLデータベースのiadminデータベースと、データベースのデータに基づいて構成ファイルを生成するスクリプトです。 テーブルdns_domains、dns_records、dns_subgmailは、バインドの構成に使用されます。 pearlで記述されたメインスクリプトは、iadminデータベースからデータを読み取り、構成ファイルを作成します。 ゾーンファイルは、/ var / cache / bind /ディレクトリに生成されます。 iadminシステムによって処理されない他のゾーンファイルもそこに保存されます。 同じシステムがセカンダリDNSの構成を作成し、そこに転送されます。 スクリプトが実行されるまで、データベースからのすべての変更は具体化されません。



データ



Dns_domainsテーブル




このテーブルは次のフィールドで構成され、DNSサーバーを構成するためのメインテーブルです。



たとえば、サービスに英語圏のiadmin.vipを追加し、Gmailを使用してftpを使用しない(123.123.4.56をホストする)には、表に次の行を記述する必要があります。

id

ドメイン名

www

ftp

メール

タイプメール

二次

Hosted_on

可能にする

シリアル

所有者

215

iadmin.vip

1

0

1

gmail

ヌル

123.123.4.56

1

2010082001

1









このレコードにより、およそ次の内容のゾーンファイルを生成できます。

 $ TTL 86400
 iadmin.vip。  SOA ns0.english.comで。  ns1.english.com。  (
                 2010082001; シリアル
                 10800; リフレッシュ
                 3600; 再試行
                 604800; 期限切れ
                 86400); 最低
                 NS ns0.english.com。
                 NS ns1.english.com。
                 IN A 123.123.4.56
 ;  IN MX 1 relay.iadmin.vip。
 ;リレーIN A 77.88.99.11
                 MX 1 ASPMX.L.GOOGLE.COMで
                 MX 5 ALT1.ASPMX.L.GOOGLE.COMで
                 MX 5 ALT2.ASPMX.L.GOOGLE.COMで。
                 MX 10 ASPMX2.GOOGLEMAIL.COMで。
                 MX 10 ASPMX3.GOOGLEMAIL.COMで。
                 MX 10 ASPMX4.GOOGLEMAIL.COMで。
                 MX 10 ASPMX5.GOOGLEMAIL.COMで。
                 IN TXT "v = spf1 include:aspmx.googlemail.com〜all"
 CNAME ghs.google.comにメールしてください。
 CNAME ghs.google.comのカレンダー。
 CNAME ghs.google.comで開始します。
 docs IN CNAME ghs.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 5 0 5269 xmpp-server.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server1.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server2.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server3.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server4.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 5 0 5269 xmpp-server.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server1.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server2.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server3.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server4.l.google.com。
 www in CNAME iadmin.vip。
 CNAME iadmin.vipのww。
 CNAME iadmin.vipのwwww。




Dns_recordsテーブル




このテーブルは、任意のレコードをゾーンに追加するために使用され、次のフィールドで構成されます。





たとえば、ドメインゾーンiadmin.vipにサードパーティのメールサーバー(メールやGmailではありません)を追加するために、たとえばrelay.dc.ukrtel.netを追加するには、次の行を記述する必要があります。





ドメイン名

リタイプ

データ

有効

id

.iadmin.vip

MX

10 relay.dc.ukrtel.net。

1

680



その後、dns_domainsドメインゾーンのシリアルを増やす必要があることに注意してください。



Dns_subgmailテーブル




このテーブルは、Google Appsを使用するいくつかのサブドメインがあるゾーンの記述を簡素化するために使用され、次のフィールドで構成されます。





たとえば、iadmin.vipドメインゾーンがGoogle Appsサービスとの別の同期サブドメインを持つエントリを追加するには、次の行を記述する必要があります。





id ドメイン名 サブドメイン 可能にする
56 iadmin.vip 同期する 1


ドメインゾーンは次のようになります。

 $ TTL 86400
 iadmin.vip。  SOA ns0.english.comで。  ns1.english.com。  (
                 2010082001; シリアル
                 10800; リフレッシュ
                 3600; 再試行
                 604800; 期限切れ
                 86400); 最低
                 NS ns0.english.com。
                 NS ns1.english.com。
                 77.88.99.11で
 ;  IN MX 1 relay.iadmin.vip。
 ;リレーIN A 123.123.4.56
                 MX 1 ASPMX.L.GOOGLE.COMで
                 MX 5 ALT1.ASPMX.L.GOOGLE.COMで
                 MX 5 ALT2.ASPMX.L.GOOGLE.COMで。
                 MX 10 ASPMX2.GOOGLEMAIL.COMで。
                 MX 10 ASPMX3.GOOGLEMAIL.COMで。
                 MX 10 ASPMX4.GOOGLEMAIL.COMで。
                 MX 10 ASPMX5.GOOGLEMAIL.COMで。
                 IN TXT "v = spf1 include:aspmx.googlemail.com〜all"
 CNAME ghs.google.comにメールしてください。
 CNAME ghs.google.comのカレンダー。
 CNAME ghs.google.comで開始します。
 docs IN CNAME ghs.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 5 0 5269 xmpp-server.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server1.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server2.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server3.l.google.com。
 _xmpp-server._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server4.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 5 0 5269 xmpp-server.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server1.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server2.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server3.l.google.com。
 _jabber._tcp.iadmin.vip。  IN SRV 20 0 5269 xmpp-server4.l.google.com。
 www in CNAME iadmin.vip。
 CNAME iadmin.vipのww。
 CNAME iadmin.vipのwwww。
 MX 1 ASPMX.L.GOOGLE.COMで同期します。
 MX 5 ALT1.ASPMX.L.GOOGLE.COMで同期します。
 MX 5 ALT2.ASPMX.L.GOOGLE.COMで同期します。
 MX 10 ASPMX2.GOOGLEMAIL.COMで同期します。
 MX 10 ASPMX3.GOOGLEMAIL.COMで同期します。
 MX 10 ASPMX4.GOOGLEMAIL.COMで同期します。
 MX 10 ASPMX5.GOOGLEMAIL.COMで同期します。
 TXTの同期 "v = spf1 include:aspmx.googlemail.com〜all"
 CNAME ghs.google.comのmail.sync。
 CNAME ghs.google.comのcalendar.sync。
 start.sync IN CNAME ghs.google.com。
 docs.sync IN CNAME ghs.google.com。
 _xmpp-server._tcp.sync.iadmin.vip。  IN SRV 5 0 5269 xmpp-server.l.google.com。
 _xmpp-server._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server1.l.google.com。
 _xmpp-server._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server2.l.google.com。
 _xmpp-server._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server3.l.google.com。
 _xmpp-server._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server4.l.google.com。
 _jabber._tcp.sync.iadmin.vip。  IN SRV 5 0 5269 xmpp-server.l.google.com。
 _jabber._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server1.l.google.com。
 _jabber._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server2.l.google.com。
 _jabber._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server3.l.google.com。
 _jabber._tcp.sync.iadmin.vip。  IN SRV 20 0 5269 xmpp-server4.l.google.com。


また、その後、dns_domainsドメインゾーンのシリアルを変更する必要があることを忘れないでください。

スクリプト



このスクリプトは、iadminに保存されたデータに基づいて、バインド用の構成ファイルを書き込みます(現在はパール上にありますが、将来的にはPythonで書き直される可能性が高い)。

githubに投稿されたソースコード



All Articles