我有一个内部绑定服务器,它非常适合我的本地名称解析。大多数主机都映射了内部 IP,而不是其对应的外部 IP。但是,有些情况下没有等效的内部 IP。这些主机目前仅列在我的公共 DNS 服务器中。因此,当我尝试查询内部 DNS 服务器时,我得到的是未知主机。
有什么办法可以配置 BIND,使其在收到针对它不知道的主机的请求时查询外部源,即使该主机位于其具有权威的域中?
例如,如果我的域名是:site.com
内部 DNS 可能有:
www.site.com 192.168.1.1
smtp.site.com 192.168.1.2
mail.site.com 192.168.1.3
外部 DNS 可能有:
www.site.com 199.200.201.1
smtp.site.com 199.200.201.2
mail.site.com 199.200.201.3
ftp.site.com 199.200.201.4
support.site.com 199.200.201.5
如果我查询内部 DNS 中的 www.site.com,它将返回 192.168.1.1。但如果我查询 ftp.site.com,我将得到一个未知主机。有没有办法配置我的内部绑定以将该请求转发到外部服务器并返回 199.200.201.4?
或者我唯一的选择是将丢失的主机复制到我的内部 DNS 服务器,并拥有相同记录的两个副本(一个在我的公共 DNS 上,一个在我的内部 DNS 上)?
答案1
您有几个选择。在绑定配置文件中,您可以为每个主机创建一个转发区域:
zone "ftp.site.com" {
type forward;
forward only;
forwarders { external_dns_ip; };
};
或者,在区域定义文件中:
ftp IN NS external_dns_ip
(假设 ORIGIN 是“site.com”。)
您还可以使用通配符,而不是为每个主机添加一个条目:
* IN NS external_dns_ip
但这会将所有未知的请求转发到外部名称服务器。