Я сталкиваюсь с очень странной проблемой с моим DNS-сервером, который настроен на пересылку запросов определенного домена на другой DNS-сервер. После перезапуска named я могу разрешить имена хостов, но через некоторое время переадресация перестает работать. Помогает еще один перезапуск. Я пробовал версии 9.8.2 и 9.10 - работает одинаково.

named.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."; };
};

копать, когда 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 ответ1

2

Когда он "терпит неудачу", вы можете видеть, что получаете запись SOA с реального корневого сервера, что означает, что ваш сервер имен вышел обычным путем и попытался найти ответ в Интернете.

Причина в том, что ваш экспедитор (172.21.2.1) не ответил достаточно быстро, поэтому он вернулся к поиску ответа обычным способом.

Чтобы остановить это, вам нужно добавить forward only к вашей зоне оператора, чтобы остановить это поведение. Поведение по умолчанию forward first .

То есть,

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .