如何配置 DNS 服务器以转发有关特定域及其所有子域的查询

use*_*061 7 domain-name-system bind

我有 DNS 服务器(带有 bind9 的 linux box),它对某些域具有权威性,并将所有其他查询转发到我的 ISP 提供商的外部 DNS 服务器。

到目前为止没有问题。

现在我希望将有关某些特定域的查询转发到我的内部 DNS 服务器,fe:

zone "some_domain" {
       type    forward;
        forwarders {
                some_internal_dns_ip;
        };
};
Run Code Online (Sandbox Code Playgroud)

到目前为止仍然没有问题,一切正常。

但是,我还想将一些反向 DNS 查询转发到我的内部 DNS。所以,我补充说:

zone "16.172.in-addr.arpa" {
        type    forward;
        forwarders {
                some_internal_dns_ip;
        };
};
Run Code Online (Sandbox Code Playgroud)

这不像我期望的那样工作。关于“ 16.172.in-addr.arpa”(例如 1.16.172.in-addr.arpa)的查询被正确解析,但关于完整地址(例如1.1.16.172.in-addr.arpa)的反向查询则不会。我知道我的服务器应该在这里使用一些递归查询,但无法配置它。我已经尝试添加以下选项

recursion yes;
allow-recursion { 127.0.0.1; };
allow-recursion-on { 127.0.0.1; };
Run Code Online (Sandbox Code Playgroud)

但没有成功。(我在这里使用了环回地址,因为我只需要为我的 DNS 主机而不是它的客户端使用此功能)有什么建议吗?

小智 8

这是因为默认情况下绑定会创建“空白区域”。因此,您的名称服务器是“16.172.in-addr.arpa”的主服务器。zone 并返回“NXDomain”以获得您的答案。

如果你定义了“empty-zones-enable no;” 在 named.conf 中,这将按您的预期工作。


Joe*_*man 1

两种方法...

  1. 使 BIND 成为 16.172.in-addr.arpa 的主站。在区域文件中,使用 NS 记录委托给其他内部服务器。

或者

  1. 使 BIND 成为 16.172.in-addr.arpa 的从站。将另一台内部服务器设置为主服务器。