DirectadminからDNSmanagerにドメインを追加するためのモジュール

DNSmanagerに基づいてDNSクラスターを作成することに関して疑問が生じました。 一部のサーバーはdirectadminを実行しています。
dnsmanagerロジックの小さな余談:
-NSサーバーでリセラーを作成すると、同じ名前のデータベースが作成されます。
-すべてのリセラーユーザーは、ドメインをリセラーデータベースに書き込みます(名前にはユーザー名とパスワードのみが含まれます)。その結果、各ユーザーは独自のドメインを持ちます。 これは、誰かが別のサーバーにドメイン(既に存在する)を追加しないようにするために必要です(ドメインはサーバーに追加され、そのようなドメインが既に存在するためクラスターはDNSを離れませんが、すべてのサーバーが同じユーザー名とパスワードを使用する場合) 、その後削除すると-ドメインが削除されます)。

これに基づいて、ルールが発生します-各サーバーには独自のユーザー名とパスワードが必要です。

作成、名前変更、直接管理およびDNSからの削除時にドメインをインポートするには、マネージャーが必要です。
1.直接管理のあるサーバーで、named.conf configを確認します。
オプション{
追加:
allow-transfer { IP1; IP2; IP3; IP4; }; notify yes; also-notify { IP1; IP2; IP3; IP4; }; allow-recursion { localnets; }; 

IP1; IP2; IP3; IP4; -ゾーンを取得できるIPのリスト。
メインIP DNSマネージャーとDNSがスピンするIPの両方を追加することをお勧めします。
2.直接管理のあるサーバーで、次を確認します。
 cd /usr/local/directadmin/data/templates/custom 

zone.confファイルには、次のようなものがあります。
 zone "|DOMAIN|" { type master; allow-transfer { IP1; }; notify yes; file "|PATH|/|DOMAIN|.db"; }; 

必要に応じて、新しいIPを追加します:
 zone "|DOMAIN|" { type master; allow-transfer { IP1; IP2; IP3; IP4; }; notify yes; file "|PATH|/|DOMAIN|.db"; }; 

IP1; IP2; IP3; IP4; -ゾーンを取得できるIPのリスト。
メインIP DNSマネージャーとDNSがスピンするIP(IPリセラー)の両方を追加することをお勧めします。

3.直接管理者がいるサーバーで、次の名前を変形します。
Freebsd:
 /etc/rc.d/named/restart 

Linux:
 /etc/init.d/named restart 

4.直接管理のあるサーバーで、2つのスクリプトを作成します。
最初のもの:
 cd /usr/local/etc mkdir dadnstodnsmanager cd dadnstodnsmanager touch add-domain.sh mcedit add-domain.sh 

そこに挿入します
 #!/bin/sh DNSMGRIP="IP_DNSmanager" USERDNS="_" PASSUSERDNS="_" MASTERIP="IP__(_IP_)" /usr/local/bin/curl --insecure https://${DNSMGRIP}:1500/dnsmgr\?authinfo=${USERDNS}:${PASSUSERDNS}\&out=xml\&func=domain.edit\&dtype=slave\&master=${MASTERIP}\&name=$1\&sok=ok >/dev/null 2>&1 

または、ただちに値を挿入します:
 #!/bin/sh /usr/local/bin/curl --insecure https://IP:1500/dnsmgr\?authinfo=:\&out=xml\&func=domain.edit\&dtype=slave\&master=_IP\&name=$1\&sok=ok 

次:
 chmod +x /usr/local/etc/dadnstodnsmanager/add-domain.sh 

2番目のスクリプト:
 cd /usr/local/etc mkdir dadnstodnsmanager cd dadnstodnsmanager touch delete-domain.sh mcedit delete-domain.sh 

そこに挿入します:
 #!/bin/sh DNSMGRIP="IP_DNSmanager" USERDNS="_" PASSUSERDNS="_" MASTERIP="IP__(_IP_)" /usr/local/bin/curl --insecure https://${DNSMGRIP}:1500/dnsmgr\?authinfo=${USERDNS}:${PASSUSERDNS}\&elid=$1\&func=domain.delete >/dev/null 2>&1 

または、ただちに値を挿入します:
 #!/bin/sh /usr/local/bin/curl --insecure https://IP:1500/dnsmgr\?authinfo=:\&elid=$1\&func=domain.delete >/dev/null 2>&1 

次:
 chmod +x /usr/local/etc/dadnstodnsmanager/delete-domain.sh 


5.両方のスクリプトの準備ができているので、間違っていないことを確認します。
 cd /usr/local/etc/dadnstodnsmanager/ ./add-domain.sh testmeserver1.com 

ドメインがDNSmanagerに表示されているようです。 これは、サーバー上にあり、DNSレコードがあるドメインで行うのが最適です。
ドメインがDNSmanagerに表示され、レコードが転送された場合、すべてが正常です。
ドメインは表示されているがレコードがない場合は、DNSmanagerで実行します
 dig @IP_MASTER_ testmeserver1.com axfr 


取得した場合:
 ; <<>> DiG VVV <<>> @IP_MASTER_ testmeserver1.com axfr ; (1 server found) ;; global options: +cmd ; Transfer failed. 

ゾーン転送が正しく構成されていないか(セクション1-2を参照)、変更後にnamedが再起動されません。
ログを見て、サーバーが与えるまで修正します
 #dig @IP_MASTER_ testmeserver1.com axfr ; <<>> DiG VVV <<>> @IP_MASTER_ testmeserver1.com axfr ; (1 server found) ;; global options: +cmd testmeserver1.com. 14400 IN SOA ns1.mydnsserver.com. hostmaster.testmeserver1.com. 2013111400 14400 3600 1209600 86400 testmeserver1.com. 14400 IN MX 10 mail.testmeserver1.com. testmeserver1.com. 14400 IN TXT "v=spf1 a mx ip4:IP_MASTER_ ~all" testmeserver1.com. 14400 IN A IP_ testmeserver1.com. 14400 IN NS ns1.mydnsserver.com. testmeserver1.com. 14400 IN NS ns2.mydnsserver.com. testmeserver1.com. 14400 IN NS ns3.mydnsserver.com. ftp.testmeserver1.com. 14400 IN A IP_ localhost.testmeserver1.com. 14400 IN AAAA ::1 localhost.testmeserver1.com. 14400 IN A 127.0.0.1 mail.testmeserver1.com. 14400 IN A IP_ pop.testmeserver1.com. 14400 IN A IP_ smtp.testmeserver1.com. 14400 IN A IP_ www.testmeserver1.com. 14400 IN A IP_ testmeserver1.com. 14400 IN SOA ns1.mydnsserver.com. hostmaster.testmeserver1.com. 2013111400 14400 3600 1209600 86400 ;; Query time: 1 msec ;; SERVER: IP_MASTER_#53(IP_MASTER_) ;; WHEN: Fri Nov XX XX:XX:XX XXXX ;; XFR size: 15 records (messages 1, bytes 424) 

すべてが正常であれば、2番目のスクリプトを確認します。
 cd /usr/local/etc/dadnstodnsmanager/ ./delete-domain.sh testmeserver1.com 

ドメインがDNSmanagerから削除されたことを確認します。

6.管理領域には、特定のイベントの前後に実行される追加のスクリプトのセットがあります。
彼らはにあります:
/ usr / local / directadmin / scripts / custom

興味があるのは:
domain_change_post.sh
domain_create_post.sh
domain_destroy_post.sh
domain_pointer_create_post.sh
domain_pointer_destroy_post.sh
subdomain_create_post.sh
subdomain_destroy_post.sh
user_create_post.sh

そうでない場合は、作成する必要があります。

交代しましょう:

domain_change_post.shは、ドメインの名前が変更された後に実行されます。
編集-追加:
 /usr/local/etc/dadnstodnsmanager/delete-domain.sh.sh $domain /usr/local/etc/dadnstodnsmanager/add-domain.sh $newdomain 


名前を変更すると、古いドメインがクラスターから削除され、新しいドメインが追加されます。

domain_create_post.shは、ドメインの作成後に実行されます。
編集-追加:
 /usr/local/etc/dadnstodnsmanager/add-domain.sh $domain 


domain_destroy_post.shは、ドメインが削除された後に実行されます。
編集-追加:
 /usr/local/etc/dadnstodnsmanager/delete-domain.sh $domain 


domain_pointer_create_post.shは、ドメインドメインポインターの作成後に実行されます。
編集-追加:
 /usr/local/etc/dadnstodnsmanager/add-domain.sh $from 


domain_pointer_destroy_post.shは、ドメインドメインポインターの作成後に実行されます。
編集-追加:
 /usr/local/etc/dadnstodnsmanager/delete-domain.sh $from 


subdomain_create_post.shは、サブドメインが作成された後に実行されます。
編集-追加:
 /usr/sbin/rndc reload $domain 


subdomain_destroy_post.shは、サブドメインが削除された後に実行されます。
編集-追加:
 /usr/sbin/rndc reload $domain 


user_create_post.shは、ユーザーが作成された後に実行されます。
編集-追加:
 /usr/local/etc/dadnstodnsmanager/add-domain.sh $from 


7.チェックを実行します。
7.1ドメインを持つユーザーを作成しました。
7.2ユーザーとしてログインし、サブドメインを作成しました。
7.3ユーザーとしてログインし、ドメインポインターを作成しました。
7.4ユーザーとしてログインし、別のドメインを作成しました2。
7.5ユーザーとしてログインし、domain2に名前を変更しました。
7.6ユーザーとしてログインし、サブドメインを削除しました。
7.7ユーザーとしてログインし、ドメインポインターを削除しました。
7.8ユーザーとしてログインし、domain2を削除しました。
7.9削除されたユーザー。
各項目の後に、dnsmanagerに渡されるものを確認します。

すべてのテストが成功したら、操作を開始できます。

(ウィザードで)1つのdnsmanagerのみを使用する場合、データベースレプリケーションを構成し、他のNSサーバーでpdsを上げることができます。ドメインまたはそのレコードが変更されると、ホスティングサーバーは変更をマスターサーバーに送信し、そこから変更が転送されますサーバースレーブ。

Source: https://habr.com/ru/post/J234941/


All Articles