У меня есть рекурсивная установка кэширования BIND / named, и она не хочет разрешать некоторые домены. Я вижу эти ошибки в файле журнала:
Dec 22 11:53:02 router2.lan named[301]: skipping nameserver 'ns0.flowerfire.com' because it is a CNAME, while resolving 'www.sawmill.net/AAAA'
Dec 22 11:53:02 router2.lan named[301]: SERVFAIL unexpected RCODE resolving 'www.sawmill.net/A/IN': 63.249.66.124#53
Dec 22 11:53:02 router2.lan named[301]: skipping nameserver 'ns0.flowerfire.com' because it is a CNAME, while resolving 'www.sawmill.net/A'
Dec 22 11:53:02 router2.lan named[301]: skipping nameserver 'ns1.flowerfire.com' because it is a CNAME, while resolving 'www.sawmill.net/A'
Dec 22 11:53:02 router2.lan named[301]: SERVFAIL unexpected RCODE resolving 'www.sawmill.net/AAAA/IN': 63.249.66.124#53
Dec 22 11:53:02 router2.lan named[301]: skipping nameserver 'ns0.flowerfire.com' because it is a CNAME, while resolving 'www.sawmill.net/AAAA'
Dec 22 11:53:02 router2.lan named[301]: skipping nameserver 'ns1.flowerfire.com' because it is a CNAME, while resolving 'www.sawmill.net/AAAA'
(этот домен не мой)
Google 8.8.8.8 правильно разрешает этот домен
Вот мой named.conf
options {
directory "/var/named";
pid-file "/run/named/named.pid";
listen-on-v6 { any; };
dnssec-validation auto;
auth-nxdomain no;
allow-query {
any;
};
recursion yes;
allow-recursion {
any;
};
allow-transfer { none; };
allow-update { none; };
version none;
hostname none;
server-id none;
max-cache-size 16M;
max-ncache-ttl 3600;
};
И версия BIND:
BIND 9.11.0-P1
Кто-нибудь знает, почему это происходит?
Кстати, сервер защищен брандмауэром, так что разрешить рекурсию из всех источников нетрудно.
Ключ к проблеме - это два сообщения:
Dec 22 11:53:02 router2.lan named[301]: skipping nameserver 'ns0.flowerfire.com' because it is a CNAME, while resolving 'www.sawmill.net/A'
Dec 22 11:53:02 router2.lan named[301]: skipping nameserver 'ns1.flowerfire.com' because it is a CNAME, while resolving 'www.sawmill.net/A'
BIND очень строго следит за соблюдением RFC 1034 условие который NS
записи «всегда должны» указывать на основное имя, а не на псевдоним. Некоторые программы-серверы имен могут решить проблему повреждения мозга, но их следует рассматривать как исключение, а не правило.
Сначала BIND будет преследовать клейкие записи, обслуживаемые net.
TLD, но когда пришло время обновить NS
записи, они будут удалены из кеша, когда CNAME
встречается.
Кстати, эти серверы имен sawmill.net в целом ужасны. NS
записи, указывающие на CNAME
псевдонимы, NS
записи, которые отсутствуют на клее, четыре NS
записи, которые дублируют IP-адреса и на самом деле указывают только на два: один сервер имен возвращает неожиданный rcode, а смежные IP-адреса игнорируют BCP 16. Sheesh.