如何让 Windows Server DNS 使用主机文件来解析特定主机名

Jim*_*hen 19 domain-name-system windows hosts

[注意:这个问题的解决方案是完美的,与标题所暗示的有所不同。]

我正面临一个小问题Windows Server 2003 DNS service。在我的公司中,我正在运行 Microsoft DNS 服务器(172.16.0.12)来对我公司的内部网进行名称解析(域名以dev.nls. 解析为 IP 172.16. .结尾),并且它还被配置为 DNS 转发器以转发其他域名(例如 *.google.com , *.sf.net) 到Internet real DNS servers. 此内部 DNS 服务器从不倾向于为来自外部世界的用户提供服务。

而且,我们在公司防火墙内运行一个邮件服务器(为真实的Internet 域提供传入邮件@nlscan.com),可以通过以下任一方式访问:

  1. 通过172.16.0.10从内部网连接到。
  2. 通过从 Internet连接到mail.nlscan.com(解析为202.101.116.9)。

请注意,172.16.0.10202.101.116.9不是同一台物理机。在202一个有防火墙的机器谁做端口的端口转发25,并110以内部网络地址172.16.0.10

现在我的问题是:如果企业局域网内的用户想要解析mail.nlscan.com,则解析为202.101.116.9。这是正确且可行的,但不是很好,因为邮件流量进入防火墙机器然后反弹到172.16.0.10. 我希望我们internal DNS server可以拦截名称mail.nlscan.com并将其解析为 172.16.0.10 。所以,我希望我可以在“hosts”文件中写一个条目172.16.0.12来做到这一点。但是,如何Microsoft DNS server识别这个“hosts”文件?

也许你会建议,为什么不让内网用户172.16.0.10访问我的邮件服务器?我不得不说这很不方便,假设用户(员工)在他的笔记本电脑上工作,白天在办公室,晚上在家里。当他在家时,他无法使用172.16.0.10.

nlscan.com在我们内部创建区域DNS server是不可行的,因为nlscan.com域的名称服务器在我们的 ISP 上,它负责解析 nlscan.com 下的其他主机名和子域。

[编辑]

按照WesleyDavid建议,我遵循简单地创建一个名为 zonemailserver.nlscan.com的解决方案,并在该 zone 中放置一个无名 A 记录。时间证明这很有效。

Wes*_*ley 12

这篇文章的后半部分是错误的。我的印象是,基于我在网上读到的一些东西(如果它在网上,那一定是真的!)Windows DNS 服务器服务创建缓存的部分任务也是将其主机文件加载到缓存及其本地区域数据。我四处寻找,找不到确凿的证据。我在自己的 Server 2008 R2 机器上测试了这个理论,发现 hosts 文件没有用于构建 DNS 服务器的缓存。

但是,我相信我有一个比 Massimo 更优雅的解决方案。无需为整个 nlscan.com 区域创建权威区域,只需创建一个名为 mailserver.nlscan.com 的区域并在该区域中放置一个无名 A 记录。无名 A 记录将与区域本身具有相同的名称,您可以为其提供所需的 IP 地址。nlscan.com 下的所有其他域以及 nlscan.com 本身将由公共 DNS 解析。

我刚刚在我自己的 Server 2008 R2 DNS 服务器上对此进行了测试,并且能够让我朋友的网站 (nessus.nl) 通过公共 DNS 服务器解析,但特定的子域 (blog.nessus.nl) 解析为 Apple.com IP 地址. 尝试一下,看看它是否适合你。

较旧,错误的帖子开始:

如果我的理解是正确的(编辑:事实并非如此),当 DNS 缓存内置在 Server 2003 机器中时,它会从主机文件及其区域数据中提取条目。放置172.16.0.10 mailserver.nlscan.com在您的 Server 2003 机器的主机文件中应该可以解决问题。更改主机文件后重新启动 DNS 服务。

在任何 Windows 机器(特别是您的 Server 2003 DNS 机器)上使用 ipconfig /displaydns 来查看您的主机文件条目。还要记住,否定响应会缓存在您的客户端中,因此请始终在您正在试验的客户端上运行 ipconfig /flushdns。否则,您最终会在各种硬对象上滥用自己,因为您想知道为什么您的客户无法解析您刚刚输入到区域/主机文件中的名称。=)

你试过这个并失败了吗?

  • Windows Server 2003 的 DNS 将**不**使用 `hosts` 文件来解析名称。它将使用自己的数据、转发器或递归查询,但**不**本地`hosts`文件。 (2认同)