学校での割り当てのために、BIND9DNSサーバーをDebianサーバーで動作させようとしています。問題は、DNSサーバーをDig -t soa my.domain.com @ns.my.domain.com
でテストしようとすると、Dig: couldn't get address for 'ns.my.domain.com': failure
が表示されることです。先生は自動チェックを実行していますが、「SOAレコードが一致しません」とだけ表示されます。私は完全に暗闇の中にいます。
IPアドレスと名前の概要は次のとおりです(プライバシーのために作成されています)。
My server: my.domain.com 123.123.123.100
Name server 1: ns1.school.com 123.123.123.101
Name server 2: ns2.school.com 123.123.123.102
Test server: 123.123.123.103
これらのIPアドレスは先生から私に与えられました。テストサーバーは、2時間ごとに自動チェックを実行して、モジュールが機能しているかどうかをチェックします。
systemctl status bind9
を実行すると、次のメッセージが数回繰り返されます。
client 123.123.123.103#51478 (my.domain.com): zone transfer 'my.domain.com/AXFR/IN' denied
何が悪いのかわかりません。誰かが私を正しい方向に導くことができますか?
[〜#〜]構成[〜#〜]
named.conf.options
options {
directory "/var/cache/bind";
recursion no;
allow-transfer { none; };
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
named.conf.local
zone my.domain.com {
type master;
file "/etc/bind/zones/db.my.domain.com";
allow-transfer { 123.123.123.101; 123.123.123.102; };
};
zones/db.my.domain.com
@ IN SOA ns.my.domain.com. [email protected]. (
2018082501 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Name servers
my.domain.com. IN NS ns.my.domain.com.
my.domain.com. IN NS ns1.school.com.
my.domain.com. IN NS ns2.school.com.
; A records for name servers
ns IN A 123.123.123.100
ns1 IN A 123.123.123.101
ns2 IN A 123.123.123.102
www IN A 123.123.123.100
test IN A 123.123.123.103
あなたが私たちに示した構成から、修正する必要がある言及すべきいくつかのポイントがあります:
zones/db.mydomain,com
ではなくzones/db.mydomaon.com
である必要があります。あなたが私たちに提示するエラーに関しては、それはドメイン転送がテストマシン123.123.123.103に拒否されていることを言っています。そのため、許可する場合は、次のようにDNS転送が許可されているサーバーに追加します。
allow-transfer {123.123.123.101; 123.123.123.102; 123.123.123.103;};
この変更後、BINDを再起動する必要があります。
テストサーバーが、転送されるはずの実際のファイルに対してスクリプト/テストを実行しているため、エラーが発生していると考えられます。
ns1とns2がすでにschool.comドメインに登録されている場合、それらをmydomain.com
ドメインに再度登録する必要があるとは思いません(実際、多くの専門家が同じ過ちを犯しているのを見てきました)。
マシンテストに関しては、school.comとmydomain.comのどちらに当てはまるかは完全には明らかではありません。
Digコマンドが失敗した場合、次のように直接IPアドレスを指定します。
サーバー内の場合:
Dig -t soa my.domain.com @127.0.0.1
または実際にはもっと良い:
Dig -t soa my.domain.com @123.123.123.100
最後のコメントとして、ネガティブキャッシュの1週間TTLは高すぎます。30分または1時間を使用します。