IAdminは、ホスティングサーバーでバインド構成を自動的に生成するように設計されたシステムであり、MySQLデータベースのiadminデータベースと、データベースのデータに基づいて構成ファイルを生成するスクリプトです。 テーブルdns_domains、dns_records、dns_subgmailは、バインドの構成に使用されます。 pearlで記述されたメインスクリプトは、iadminデータベースからデータを読み取り、構成ファイルを作成します。 ゾーンファイルは、/ var / cache / bind /ディレクトリに生成されます。 iadminシステムによって処理されない他のゾーンファイルもそこに保存されます。 同じシステムがセカンダリDNSの構成を作成し、そこに転送されます。 スクリプトが実行されるまで、データベースからのすべての変更は具体化されません。
データ
Dns_domainsテーブル
このテーブルは次のフィールドで構成され、DNSサーバーを構成するためのメインテーブルです。
- id-シリアル番号を記録
- domainname-ゾーンバインドがサポートするドメインの名前
- www -wwwサブドメインは必須ですか(1-必須)
- ftp -ftpサブドメインを行います(1-必須)
- メール -ゾーンでMXレコードが必要ですか(1-必須)
- typemai l-MXレコードを生成するためのテンプレートを定義します( ' our' -Postfixが配信され、 'gmail'-Google Appsはドメインでアクティブになります)。 mail = 0の場合、このフィールドは無視されます。 さらなる変更が可能です。
- secondaryfor-どのDNSサーバー(IP)に対して、サーバーはセカンダリになります(NULL-マスター)
- hosts_on-レコードA:指定されたドメイン名でサイトがホストされているIPアドレス
- enable-アクティブゾーンかどうか(1-アクティブ)。 それ以外の場合、このゾーンは生成されません。 ゾーンがenable = 0で応答された場合、バインドサービスからゾーンがスローされることはありませんが、iadminシステムを介した設定は影響に影響しないことに注意してください
- serial-シリアルゾーン。 このテーブルまたはdns_records、dns_subgmailに変更を加えた後、値を増やす必要があります。 したがって、構造year_month_day_pravkaは、ゾーンに変更があったときを確認するのに便利です。
- 所有者 -NSサーバーを英語(1)または標準(0)で記述
たとえば、サービスに英語圏の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テーブル
このテーブルは、任意のレコードをゾーンに追加するために使用され、次のフィールドで構成されます。
- domainname-エントリが追加されるドメインゾーンの名前
- rectype-追加されるレコードのタイプ(A、CNAME、MX、NSなど)
- data-追加されるデータ
- enabled-値1を取ります-このレコードは追加され、0-レコードは非アクティブ化されます
- id-シリアル番号を記録します(自動的に)
たとえば、ドメインゾーンiadmin.vipにサードパーティのメールサーバー(メールやGmailではありません)を追加するために、たとえばrelay.dc.ukrtel.netを追加するには、次の行を記述する必要があります。
ドメイン名
| リタイプ
| データ
| 有効
| id
|
.iadmin.vip
| MX
| 10 relay.dc.ukrtel.net。
| 1
| 680
|
その後、dns_domainsドメインゾーンのシリアルを増やす必要があることに注意してください。
Dns_subgmailテーブル
このテーブルは、Google Appsを使用するいくつかのサブドメインがあるゾーンの記述を簡素化するために使用され、次のフィールドで構成されます。
- id-シリアル番号を記録します(自動的に)
- domainname-サブドメインが使用されるドメインゾーンの名前
- サブドメイン-Google Appsも必要なサブドメイン
- enable-値を取ります1-このサブドメインが追加され、0-レコードが非アクティブ化されます
たとえば、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に投稿されたソースコード