Windows DNS 服务器:托管区域,但转发未知条目

Windows DNS 服务器:托管区域,但转发未知条目

我们公司有一个裂脑 DNS 场景,其中相同的条目指向不同的 IP。

Example1:
Internal DNS: email.company.net (A) 172.20.1.1
External DNS: email.company.net (A) 22.191.72.18

因此,电子邮件只是我们必须“拆分”的少数条目之一。我们的公共 DNS 区域中确实有很多其他 DNS 条目,这些条目也需要在内部区域中保持不变。让我们看另一个示例:

Example2:
Internal DNS: video.company.net (A) -not present-
External DNS: video.company.net (A) 22.191.72.49

所以当我想访问视频门户网站在公司内部,DNS 服务器报告未找到该查询的 DNS 条目。为了使其正常工作,我必须在内部 DNS 区域重新创建所有外部 DNS 条目,并随着时间的推移维护所有这些记录。这会导致大量重复工作。我想做的是:

创建一个包含一些条目的区域并为其分配一条策略,该策略如下:“解决您可以在其中找到的内容,但将您无法找到的内容转发给您的解析器/根提示”

是否有类似的事情可以通过策略来实现?这种功能又该如何称呼?

我知道我可以创建一个包含 email.company.net 和空 A 记录的区域。这会将任何 somethingelse.company.net 记录转发到外部。我问这个问题的原因要复杂得多,我想问一个尽可能简短的问题。所以假设这个解决方案现在不适用于这里。如果您能集中精力回答上面的问题,我将不胜感激。

编辑:所以最后,内部 DNS 服务器应该执行如下操作:

  • DNS 服务器收到客户端对 email.company.net 的请求
  • DNS 服务器在其内部区域 company.net 中进行查找
  • DNS 服务器将 IP 172.20.1.1 返回给客户端
  • DNS 服务器收到客户端对 video.company.net 的请求
  • DNS 服务器在其内部区域 company.net 中进行查找
  • DNS 服务器未找到 video.company.net 的条目
  • 然后 DNS 服务器通过其根提示进行递归查找
  • DNS 服务器最终得到答案,并将 IP 22.191.72.49 返回给客户端

答案1

不幸的是,你想要的是不可能的;当你在内部 DNS 服务器中创建一个区域并将其定义为主要区域时,该服务器将假定该区域具有权威性,因此将以“此记录不存在”来回答它不知道的任何记录请求。

唯一的解决方法是您已经知道的:您可以仅为您实际想要屏蔽的记录定义子区域,然后在其中创建空记录;空记录映射到区域的全名,因此最终效果是相同的,但这样的区域不会屏蔽主区域中的所有其他名称,这将使用标准递归进行解析。

在您的示例中,您应该创建一个名为的区域email.company.net,然后在其中创建一个指向 172.20.1.1 的空 A 记录;对 的内部查询email.company.net将使用 172.20.1.1 来回答,但这不会影响对 的查询video.company.net,这些查询将继续通过查询公共 DNS 来解析。

顺便说一句,这个技巧不仅适用于 A 记录,还适用于任何可以为空的记录(例如 SRV);但是,它不适用于需要有实际名称的 CNAME。

相关内容