我有一台 Centos 5.2 服务器,它运行了 named 来进行 DNS 解析 - 它不保存任何自己的信息,只是转发所有请求。来自 named.conf:
options {
[...]
forwarders { 1.1.1.1; 1.1.1.2; };
};
named.conf 中的所有其他行都保留为默认设置。
我想更改配置,以便对 newdomain.com 下的任何请求都会传递到 22.22.22.22,而对任何其他地址的请求都会转到 1.1.1.1 或 1.1.1.2
我该如何配置此服务器上的 DNS 来执行此操作?
答案1
呵呵,在我自己做一些修整之前,我对之前的答案投了赞成票。
好的,因此,如果您编辑named.conf
并添加以下内容:
zone "newdomain.com" {
type forward;
forward only;
forwarders { 22.22.22.22; };
};
现在您将无法轻松地进行反向查找,您必须修改以下区域语句以适应域的 IP 地址(这最初是 192.168.80.0/24 的反向)。
zone "80.168.192.in-addr.arpa" {
type forward;
forward only;
forwarders { 22.22.22.22; };
};
做出改变后,你应该
检查您是否没有弄乱配置文件:
named-checkconf
告诉 bind 重新加载其配置:(
rndc reload
更推荐/etc/init.d/bind reload
)
请记住,这将返回该域的非权威性答案。解决此问题的方法是(如果远程 DNS 有问题,则可以提供更好的本地缓存)作为该区域的从属服务器。
编辑以添加forward only;
语句。这将导致查询在尝试转发器中指定的服务器后失败,而不是失败后再尝试标准查找。还编辑以将 /etc/init.d/bind reload 更改为rndc reload
注释中的建议之后。
答案2
如果您正在尝试优化,并且 22.22.22.22 是该区域的授权,那么您也可以使用存根区域:
zone "newdomain.com" {
type stub;
masters { 22.22.22.22 };
};
这与转发略有不同。它将查询服务器 22.22.22.22 以获取 NS 记录,并始终将它们保存在缓存中。这将执行几乎相同的操作,但如果还列出了另一个 NS 主机(例如,33.33.33.33),则您的服务器将了解并使用它。
我相信这里的存根区域是比条件转发更好的选择。
答案3
您能作为 newdomain.com 的从属服务器吗?即进行完全传输?