我遇到了Windows Server 2003 DNS服务的一个小问题.在我的公司,我正在运行Microsoft DNS服务器(172.16.0.12)来对我的公司内部网进行名称解析(域名以dev.nls结尾.解析为IP 172.16 ..),并且它还配置为DNS转发器将其他域名(例如* .google.com,* .sf.net)转发到Internet真实DNS服务器.此内部DNS服务器永远不会为来自外部世界的用户提供服务.
而且,我们在公司防火墙内运行一个邮件服务器(为真正的互联网域@nlscan.com提供传入邮件),可以通过以下任一方式访问:
>通过从Intranet内连接到172.16.0.10.
>通过从Internet连接到mail.nlscan.com(已解析为202.101.116.9).
请注意,172.16.0.10和202.101.116.9不是同一台物理机. 202是一个防火墙机器,它将端口25和110的端口转发到内部网地址172.16.0.10.
现在我的问题是:如果企业局域网内的用户想要解析mail.nlscan.com,它会解析为202.101.116.9.这是正确和可行的,但不是很好,因为邮件流量进入防火墙机器然后反弹到172.16.0.10.我希望我们的内部DNS服务器可以拦截名称mail.nlscan.com并将其解析为172.16.0.10.所以,我希望我可以在172.16.0.12的“hosts”文件中写一个条目来执行此操作.但是,Microsoft DNS服务器如何识别这个“主机”文件?
也许你建议,为什么不让内网用户使用172.16.0.10访问我的邮件服务器?我不得不说这是不方便的,假设用户(员工)在他的笔记本电脑上工作,白天在办公室和夜间在家工作.当他在家时,他不能使用172.16.0.10.
在我们的内部DNS服务器上为nlscan.com创建区域是不可行的,因为
nlscan.com域名服务器在我们的ISP上,它负责解析nlscan.com下的其他主机名和子域.
先感谢您.
[编辑]
正如WesleyDavid建议的那样,我遵循简单地创建名为mailserver.nlscan.com的区域的解决方案,并在该区域中放置无名A记录.时间证明这很有效.
但是,我相信我有一个稍微优雅的解决方案,马西莫.不要为整个nlscan.com区域创建权威区域,只需创建名为mailserver.nlscan.com的区域,并在该区域中放置无名A记录.无名A记录将与区域本身具有相同的名称,您可以为其提供所需的IP地址. nlscan.com下面的所有其他域以及nlscan.com本身将通过公共DNS解析.
我刚刚在我自己的Server 2008 R2 DNS服务器上测试了这个,并且能够通过公共DNS服务器解析我朋友的网站(nessus.nl),但特定的子域(blog.nessus.nl)解析为Apple.com的IP地址.试一试,看看它是否适合你.
较旧,错误的帖子开始:
如果我的理解是正确的(编辑:但事实并非如此),当在Server 2003机器中构建DNS缓存时,它会从hosts文件及其区域数据中提取条目.将172.16.0.10 mailserver.nlscan.com放置在Server 2003计算机的hosts文件中应该可以解决问题.更改主机文件后重新启动DNS服务.
在任何Windows计算机(特别是Server 2003 DNS计算机)上使用ipconfig / displaydns查看主机文件条目.另请注意,负面响应会缓存在您的客户端中,因此请始终在您正在试验的客户端上运行ipconfig / flushdns.否则,您最终会对各种硬件对象进行滥用,因为您想知道为什么客户端无法解析您刚刚输入区域/主机文件的名称. =)
你试过这个但失败了吗?