我有 DNS 服务器(带有 bind9 的 Linux 机器),它对某些域具有权威性,并将所有其他查询转发到我的 ISP 提供商的外部 DNS 服务器。
到目前为止还没有问题。
现在我希望将有关某些特定域的查询转发到我的内部 DNS 服务器,例如:
zone "some_domain" {
type forward;
forwarders {
some_internal_dns_ip;
};
};
到目前为止仍然没有问题,一切正常。
但是,我还想将一些反向 DNS 查询转发到我的内部 DNS。因此,我添加了:
zone "16.172.in-addr.arpa" {
type forward;
forwarders {
some_internal_dns_ip;
};
};
但这并没有像我预期的那样工作。关于“ 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; };
但没有成功。(我在这里使用了环回地址,因为我只需要对我的 DNS 主机使用此功能,而不需要对其客户端使用此功能)有什么建议吗?
答案1
这是因为 bind 默认会创建“空区域”。因此,您的名称服务器是“16.172.in-addr.arpa.”区域的主服务器,并返回“NXDomain”作为您的答案。
如果您在named.conf中定义“empty-zones-enable no;”,它将按预期工作。
答案2
我遇到了同样的问题,你只是在 named.conf 语法中缺少 IN:
zone "5.10.in-addr.arpa." IN {
type forward;
forwarders {10.5.0.1;};
};
zone "6.10.in-addr.arpa." IN {
type forward;
forwarders {10.6.0.1;};
};
这很令人困惑,因为主/从区域不需要它。无论如何,这就是为我修复它的方法。
答案3
两种方法...
- 将 BIND 设为 16.172.in-addr.arpa 的主服务器。在区域文件中,使用 NS 记录委派给其他内部服务器。
或者
- 将 BIND 设为 16.172.in-addr.arpa 的从属服务器。将另一个内部服务器设置为主服务器。