Здравствуйте ! Заранее извиняюсь - если вопрос глупый. В последнее время стал замечать что некоторые имена не резолвятся DNS. Причем не постоянно. Например: Хороший запрос: [root@mail etc]# host 92.53.117.34 34.117.53.92.in-addr.arpa domain name pointer smtpout4.timeweb.ru.
Тутже даю следующий запрос - и он уже не успешный: [root@mail etc]# host 92.53.117.34 Host 34.117.53.92.in-addr.arpa. not found: 3(NXDOMAIN)
Смотрим логи: [root@mail etc]# tail /var/log/messages Apr 23 18:28:49 mail named[1370]: error (broken trust chain) resolving ‘34.117.53.92.in-addr.arpa/PTR/IN’: 92.53.116.200#53 Apr 23 18:51:11 mail named[1370]: validating @0x7f820c61c560: 117.53.92.in-addr.arpa SOA: no valid signature found Apr 23 18:51:11 mail named[1370]: validating @0x7f820c61c560: 117.53.92.in-addr.arpa NSEC: no valid signature found Apr 23 18:51:11 mail named[1370]: error (broken trust chain) resolving ‘34.117.53.92.in-addr.arpa/DNSKEY/IN’: 92.53.98.100#53 Apr 23 18:51:11 mail named[1370]: error (broken trust chain) resolving ‘34.117.53.92.in-addr.arpa/PTR/IN’: 92.53.116.200#53
Как я понимаю - проблемма в DNSSEC, но как грамотно разрулить ситуацию не понимаю. Пишут что нужно отключить DNSSEC. Хороший ли это путь ? Как правильно поступить в данной ситуации ?
Некоторые конфиги: [root@mail etc]# cat /etc/centos-release CentOS Linux release 7.0.1406 (Core)
[root@mail etc]# cat /etc/resolv.conf search my_domain.ru nameserver 127.0.0.1 nameserver 8.8.8.8
[root@mail etc]# cat /etc/named.conf options { listen-on port 53 {192.168.1.201; 127.0.0.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»; // forward only; // forwarders {8.8.8.8; 8.8.4.4;}; allow-query {192.168.1.0/24; 127.0.0.1;}; version «WinDNS 1.01»; notify no; recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging { channel default_debug { file «data/named.run»; severity dynamic; }; };
include «/etc/named.rfc1912.zones»; include «/etc/named.root.key»;
Установка параметра - dnssec-validation no; - решает проблемму. Очевидно, что после перезапуска сервиса named - первый запрос с опцией dnssec отдается вышестоящему серверу DNS и успешно разрешается им. Далее наш локальный сервер кэшурует этот ответ, помнит что ответ у него уже есть, но при включенном DNSSEC - генерирует ошибку «error (broken trust chain) resolving» и не разрешает ip адрес в имя. До тех пор пока не «забудет» о своем кэше и опять не отдаст запрос выше стоящему серверу.