El servidor DNS (BIND) deja de reenviar. Reiniciar ayuda. ¿Por qué?

El servidor DNS (BIND) deja de reenviar. Reiniciar ayuda. ¿Por qué?

Me encuentro con un problema muy extraño con mi servidor DNS, que está configurado para reenviar solicitudes de un dominio específico a otro servidor DNS. Después de reiniciar nombrado, puedo resolver los nombres de host, pero después de un tiempo, el reenvío deja de funcionar. Otro reinicio ayuda. Probé las versiones 9.8.2 y 9.10; funciona igual.

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

excavar, cuando DNS deja de resolverse:

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

cavar de nuevo, después de reiniciar:

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

¿Puedes decirme qué pasa?

¡Gracias!

Respuesta1

Cuando "falla", puede ver que obtiene un registro SOA de un servidor raíz real, lo que significa que su servidor de nombres salió por la ruta habitual e intentó encontrar la respuesta en Internet.

La razón de esto es que su reenviador (172.21.2.1) no respondió lo suficientemente rápido, por lo que volvió a buscar la respuesta de la manera normal.

Para detener esto, debe agregar forward onlya su declaración de zona para detener este comportamiento. El comportamiento predeterminado es forward first.

Es decir,

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

información relacionada