假设我的内部网络上有一个 Web 服务器,位于 NAT 路由器后面。我为“xyz.com”域配置了外部 DNS,并为“foo”配置了一条 A 记录,指向路由器的公共地址。
我希望我的内部网络客户端将 foo.xyz.com 解析为内部地址。
但是,这是唯一应该指向内部地址的 xyz.com 记录。
我是否需要为 xyz.com 创建一个主要区域并镜像我外部区域的所有记录(“foo”除外)(这是我现在正在做的),或者有更好的方法吗?
答案1
实际上,情况恰恰相反。您需要做的是将一个权威区域添加到您的服务器,并foo.bar.com
添加相应的记录。服务器将看到它对该主机名具有权威性,并使用本地记录。其他所有内容(例如bar.com
和)www.bar.com
都将通过常规解析器发出。
答案2
我认为 Justin 假设 foo.bar.com 是一个域,但根据您的问题,听起来更像是 foo.bar.com 只是您的 Web 服务器的 FQDN?
如果我理解正确的话,您想要做的是让您的外部 DNS 服务器拥有 bar.com 的所有记录,而您的内部 DNS 服务器仅拥有 foo.bar.com 的记录,并且以某种方式将对 bar.com 中任何其他记录的所有请求转发到您的外部 DNS 服务器进行解析?
如果这是真的,那么不行,在 MS DNS 服务器(2000-2008 版本)中没有办法做到这一点。要拥有 bar.com 的任何记录,服务器必须是 bar.com 的权威,如果它是权威的,那么它将始终以“没有这样的记录”响应来响应它没有的 bar.com 记录的请求,而不是执行某种递归查询。
其他 DNS 服务器也具有此功能(玛拉DNS) 但我认为它违反了 RFC,所以它不会出现在任何符合 RFC 的 DNS 服务器中。
简而言之,您当前的方法(在内部和外部镜像除此记录之外的所有记录)是使此裂脑配置与 MS DNS 服务器一起工作的最佳/唯一方法。