我已阅读有关拆分DNS的以下文章:http://www.isaserver.org/tutorials/You_Need_to_Create_a_Split_DNS.html。我想我理解了这个概念,但是为了设置文章中建议的最佳解决方案,我需要控制“外部”的 DNS 服务器(就我而言,我无法做到这一点)。
我的场景如下:一个名为公司本地. 一个公共领域叫做公司网站。我有一个网站地址www.corp.com,它实际上指向域上的已发布服务器公司本地。我还想将此 Web 服务器发布给内部客户端(域中的客户端公司本地),而无需它们转到外部 IP 并返回。因此,我只需在 DNS 服务器上设置一个新区域,内部客户端 (公司本地) 使用称为公司网站,并添加一个条目www.corp.com,这次指向内部 IP 地址。
对于我的问题:我在外部 Web 服务器上还有许多其他条目,应该保留原样。我知道我可以复制并维护两个 DNS 服务器,但理想情况下我希望这样:
情况1
- 内部客户请求www.corp.com。
- 内部 DNS 服务器查找是否有 www.corp.com 的条目。
- 是的,因此它使用 www.corp.com 的内部 IP 地址进行回答。
案例 2
- 内部客户请求someother.corp.com。
- 内部 DNS 服务器查看是否有 someother.corp.com 的条目,但找不到。
- 然后它将请求转发到外部 DNS 服务器,查看其中是否有为 someother.corp.com 定义的条目。
- 外部 DNS 服务器使用 someother.corp.com 的外部 IP 向内部 DNS 服务器做出响应。
- 内部 DNS 服务器响应内部客户端。
对于情况 2,实际情况是,内部 DNS 服务器认为它对区域 corp.com 具有权威性(某种程度上来说确实如此),如果它没有找到 someother.corp.com 的记录,它会向客户端做出否定答复。
希望我说清楚了,期待您的意见!提前致谢!另外,我正在运行带有 Windows DNS 服务器 (Windows Server 2008) 的 Windows 域。
答案1
这有点像 hack - 而且我只用 bind 做过,但它确实有效。
创建一个新的区然后www.corp.com
创建并@记录该区域作为您网站的内部 IP 地址。
这将使 DNS 服务器认为它对“区域”具有权威性,www.corp.com
并在人们请求时返回 @ 记录www.corp.com
。它会将 *.corp.com 的其余部分传递给您的普通公共 DNS 服务器进行递归查找,然后返回外部 IP。
答案2
如果你使用未绑定local-zone
作为递归服务器,您可以使用和指令让它回复特定的本地数据local-data
,并将任何未知的条目转发到外部服务器。
local-zone: corp.com. transparent
local-data: "www.corp.com. IN A www.xxx.yyy.zzz"