我在我的 OS X 机器上本地运行 BIND,以启用通配符 Apache vhosts,这需要将所有网络接口的 DNS 服务器设置为 127.0.0.1。
这很有效,但意味着当我在使用内部 DNS 服务器将特殊(即 .companyname)URL 路由到网络上的服务器的网络上时,查找会失败。
我尝试添加 127.0.0.1 和 DHCP 提供的 DNS 服务器,但这也不起作用。
有没有办法让 BIND 使用 DHCP DNS 服务器来处理它无法本地解析的请求?
答案1
Bind 不是为这种用例设计的。它被设计为在由同一系统管理员配置它和 DHCP 服务器的服务器上运行。它不是为移动而设计的。
您可以编写一个脚本,在每次刷新 DHCP 租约时更改forwarders
Bind 中的值,但我不建议这样做。您会遇到缓存问题,您的.company
域名被缓存,而NXDOMAIN
它们不应该被缓存,或者被缓存为真实 IP,而它们不应该被缓存。
可能有一个专门的缓存/解析 mame 服务器,它具有您所追求的内置功能,但 Bind 不是。
答案2
您可以配置forwarders
将无法自行解析的所有请求转发到哪个 BIND。但是,BIND总是能够解析任何名称对应的域authoritative
。如果您配置了通配符记录*.example.com
,则无法让 BINDfoo.example.com
从其他 DNS 服务器解析。您需要在 BIND 实例托管的区域中配置这些记录。