DNS 서버(BIND)가 전달을 중지합니다. 다시 시작하는 것이 도움이 됩니다. 왜?

DNS 서버(BIND)가 전달을 중지합니다. 다시 시작하는 것이 도움이 됩니다. 왜?

특정 도메인에 대한 요청을 다른 DNS 서버로 전달하도록 설정된 DNS 서버에 매우 이상한 문제가 발생했습니다. Named를 다시 시작한 후 호스트 이름을 확인할 수 있지만 잠시 후 전달 작업이 중지됩니다. 다시 시작하면 도움이 됩니다. 버전 9.8.2와 9.10을 사용해 보았지만 동일하게 작동합니다.

명명된.conf:

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query       { any; };
        allow-query-cache { any; };
        allow-transfer    { any; };
        allow-recursion   { any; };
        recursion yes;

        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

zone "video54.local" IN {
        type forward;
        forwarders { 172.21.2.1; };
};

zone "idc.local" IN {
        type master;
        file "dynamic/idc.local.db";
        allow-update { key "idc.local."; };
};

dig, DNS가 확인을 중지하는 경우:

dig @127.0.0.1 idc-git.video54.local

; <<>> DiG 9.10.0-RedHat-9.10.0-0.el6 <<>> @127.0.0.1 idc-git.video54.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21317
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;idc-git.video54.local.     IN  A

;; AUTHORITY SECTION:
.           10374   IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2014072100 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jul 21 12:44:38 IDT 2014
;; MSG SIZE  rcvd: 125

다시 시작한 후 다시 발굴하십시오.

dig @127.0.0.1 idc-git.video54.local

; <<>> DiG 9.10.0-RedHat-9.10.0-0.el6 <<>> @127.0.0.1 idc-git.video54.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55990
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;idc-git.video54.local.     IN  A

;; ANSWER SECTION:
idc-git.video54.local.  3600    IN  A   172.21.3.33

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jul 21 12:44:56 IDT 2014
;; MSG SIZE  rcvd: 66

무엇이 문제인지 말씀해 주시겠어요?

감사해요!

답변1

"실패"하면 실제 루트 서버에서 SOA 레코드를 얻는 것을 볼 수 있습니다. 이는 네임 서버가 일반적인 경로로 나가서 인터넷에서 답을 찾으려고 시도했음을 의미합니다.

그 이유는 전달자(172.21.2.1)가 충분히 신속하게 응답하지 않아 일반적인 방법으로 답변을 찾는 것으로 돌아갔기 때문입니다.

이를 중지하려면 forward only영역 설명에 추가하여 이 동작을 중지해야 합니다. 기본 동작은 입니다 forward first.

즉,

zone "video54.local" IN {
    type forward;
    forwarders { 172.21.2.1; };
    forward only;
};

관련 정보