我有一个用于本地域 mydomain.local 的工作 DNS 服务器。我尝试将 bind9 配置为在默认配置下工作,但此区域除外,我想要将查询转发到本地 DNS 服务器。这是我的配置(ubuntu 14.04):
/etc/bind/named.conf.local:
zone "mydomain.local" IN {
type forward;
forward only;
forwarders {
192.168.1.1;
};
};
但是当我尝试时,nslookup server.mydomain.local
我在系统日志中得到了以下内容:
error (broken trust chain) resolving 'server.mydomain.local/A/IN': 192.168.1.1#53
据我了解,这是由于 DNSSEC 造成的。我不想全局禁用 DNSSEC,但我想针对此区域禁用 DNSSEC。可以吗?
请不要建议使用type slave;
区域。我想使用前向区域来实现这一点
答案1
我找到了答案。以下行/etc/bind/named.conf.options
修复了此问题:
---> dnssec-must-be-secure mydomain.local no; <---
因此,全文如下/etc/bind/named.conf.options
(跳过评论):
options {
directory "/var/cache/bind";
forwarders {
192.168.1.1;
};
dnssec-enable yes;
dnssec-validation yes;
dnssec-must-be-secure mydomain.local no;
auth-nxdomain no;
listen-on-v6 { any; };
};
更新:实际上,目前我无法确定我是否确实用该行修复了绑定。不知何故,现在所有查询都成功了,无论有没有这行。如果有专家在场,请插话
答案2
但是如果您创建一个区域“local”,即“mydomain.local”的父区域,并将您转发的服务器的 ip 指定为 ns,这将使 dnssec 以值自动运行。