권한 있는 DNS 서버를 실행할 수 없습니다(BIND9).

권한 있는 DNS 서버를 실행할 수 없습니다(BIND9).

저는 학교 과제를 위해 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,comzones/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시간이든 사용하겠습니다.

관련 정보