저는 학교 과제를 위해 Debian 서버에서 BIND9 DNS 서버를 작동시키려고 합니다. 문제는 dig -t soa my.domain.com @ns.my.domain.com
.teacher를 사용하여 DNS 서버를 테스트하려고 할 때 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
무엇이 잘못되었을지 모르겠습니다. 누구든지 나를 올바른 방향으로 안내할 수 있습니까?
구성
명명된.conf.옵션
options {
directory "/var/cache/bind";
recursion no;
allow-transfer { none; };
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
이름 .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; };
};
영역/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
답변1
보여주신 구성에서 수정해야 할 몇 가지 사항이 있습니다.
- 도메인 이름 파일
zones/db.mydomain,com
은zones/db.mydomaon.com
; 제공하신 오류에 대해서는 테스트 시스템 123.123.123.103으로의 도메인 전송이 거부되었다고 나옵니다. 따라서 다음과 같이 DNS 전송을 허용하는 서버에 추가하여 이를 허용할 수 있습니다.
전송 허용 {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시간이든 사용하겠습니다.