bind9 只为这个区域配置没有 DNSSEC 的本地域的转发区域

gal*_*ets 5 bind dns-server dnssec

我有一个本地域 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;
    };
};
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时,nslookup server.mydomain.local我在 syslog 中得到关注:

error (broken trust chain) resolving 'server.mydomain.local/A/IN': 192.168.1.1#53
Run Code Online (Sandbox Code Playgroud)

我的理解是这是因为 DNSSEC。我不想在全局范围内禁用 DNSSEC,但我确实想为此区域禁用 DNSSEC。是否可以?

请不要建议使用type slave;区域。我想通过前向区域实现这一目标

gal*_*ets 6

我找到了答案。以下行/etc/bind/named.conf.options修复它:

--->        dnssec-must-be-secure mydomain.local no;   <---
Run Code Online (Sandbox Code Playgroud)

所以,全文/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; };
};
Run Code Online (Sandbox Code Playgroud)

更新:实际上,在这一点上,我无法确定我是否确实使用该行修复了绑定。不知何故,现在所有的查询都成功了,不管有没有这条线。如果有专家在场,请插话

  • 此答案仅在您将 `dnssec-validation` 设置为 `yes` 时才有效,如果将其设置为默认的 `auto`,则它将不起作用 (6认同)