DNS解析在Web浏览器中失败,但是nslookup成功


9

我们是一个拥有300个席位的小型组织,具有混合BYOD和Active Directory环境(Windows Server 2012 Standard,Windows 7 Enterprise),并且遇到了一个非常奇怪的问题,涉及非常特定范围的故障,无法在我们的域上解析我们组织的域名-加入公司控制的机器。为了便于讨论,我将使用company.com代替我们的域名。

背景:

  • Active Directory域控制器位于172.16.1.3
  • AD / DC计算机也正在运行DHCP,DNS和HTTP(IIS)
  • IIS在AD / DC机器上托管我们组织在company.comsubdomain.company.com上的网站
  • 我们有一个拆分DNS方案,其中AD / DC服务器用于内部DNS解析,但是另一台异地服务器为公共查询提供DNS解析
  • company.comsubdomain.company.com对应的IP地址是我们网络边缘的防火墙(在AD / DC DNS服务器和异地DNS服务器上)使用的公用IP地址。
  • 防火墙已针对NAT进行了正确配置,以使其通过其公用IP地址收到的HTTP和HTTPS请求传递到AD / DC服务器的内部IP并反映

方案1:

  • 加入域的Windows 7 Enterprise计算机上的用户直接连接到我们的本地网络,该本地网络具有由DHCP服务器发出的本地地址172.16.6.100 / 16。
  • DNS服务器条目由DHCP(172.16.1.3)提供
  • 该用户可以访问在company.com和subdomain.company.com上托管的网站
  • 编辑: nslookup已在这种情况下运行,并从内部DNS服务器(172.16.1.3)正确返回正确的DNS记录。

方案2:

  • 加入域的同一台Windows 7 Enterprise计算机上的同一用户回家,并使用其住宅ISP连接到Internet
  • 客户端计算机的IP和DNS服务器条目由DHCP提供
  • 该用户可以访问任何互联网资源,例如google.com
  • 该用户无法访问company.comsubdomain.company.com上的网站(返回“主机未解析”错误)
  • 当该用户运行的NSLOOKUP company.com他们不要接受由DNS提供了正确的公共IP地址
  • 对IP地址的HTTP / HTTPS请求成功,服务器正确返回了网页
  • 此问题在所有网络浏览器中普遍存在
  • 使用tracert company.com返回“无法解析目标系统名称”
  • 使用ping company.com返回“找不到主机company.com”
  • 在请求失败之前/期间在客户端上运行Wireshark时,客户端计算机不会发送任何数据包(用于DNS解析或用于初始HTTP / ping / tracert请求)
  • 重新启动DNS客户端服务不能解决问题
  • 停止DNS客户端服务不能解决问题
  • 使用ipconfig / flushdns无法解决此问题
  • 使用路由/ f不能解决此问题
  • 使用netsh int ip reset重置网络连接不能解决此问题
  • 编辑: nslookup已在这种情况下运行,并从用户使用的网络的DHCP设置指定的DNS服务器正确返回正确的DNS记录

方案3:

  • 连接到我们的本地网络时,个人(未加入域)Windows 7 Professional计算机上的同一用户可以访问company.comsubdomain.company.com上的网站
  • 编辑: nslookup已在这种情况下运行,并从内部DNS服务器(172.16.1.3)正确返回正确的DNS记录。

方案4:

  • 在个人(未加入域)Windows 7 Professional计算机上的同一用户在连接其家庭网络后能够访问company.comsubdomain.company.com上的网站
  • 编辑: nslookup已在这种情况下运行,并从用户使用的网络的DHCP设置指定的DNS服务器正确返回正确的DNS记录

最后说明:

这个问题似乎普遍存在,影响到所有公司拥有的计算机。我们正在对所有公司拥有的计算机使用通用的系统映像,该映像是在八月份加载的。我一直在互联网上寻找可能的解决方案,但到目前为止却空手而归-非常感谢您可能提出的任何建议。


2
在您的域控制器上运行网站,是吗?那不是布宜诺斯艾利斯。
瑞安·里斯

1
是的,我同意。预算紧张,我能说什么。也许将来...
2013年

1.您是否在使用组策略在加入域的计算机上配置任何DNS设置?2.对于每种情况,在调试模式下运行nslookup可能会给您一些提示。
joeqwerty13年

谢谢你的建议。DNS由DHCP服务器而不是组策略提供,因此,当用户离开我们的物理建筑物时,他们会收到与其连接的任何网络的DNS服务器。我在所有情况下都已运行nslookup,并且在所有情况下(包括方案2中的失败情况),它都返回正确的DNS设置。这个问题似乎是,由于某种原因,网络浏览器,甚至没有费心去尽可能NSLOOKUP -如上所述,他们根本无法在不启动方案的任何网络交易2

我是否可以假设他们可以接受www.company.com但不能只是接受,company.com或者两者都失败?
TheCleaner 2013年

Answers:


1

加入域的计算机将在寻找其DC,而不仅仅是进行基于DNS的查找。由于域与公共网站相同,因此他们将搜索SRV记录,以告诉他们如何访问DC并获取域信息。由于远程网络中没有DC,因此他们无法使用可识别AD的常规Windows部件来解析此名称。

当您使用ping或(几乎)任何Windows应用程序时,它将使用完整的Windows IP堆栈,包括与AD通信的部分。而NSLookup实际上只是执行DNS查询。您已经使用Wireshark跟踪验证了此内容,Windows尝试访问company.com时未执行任何查找,但是nslookup显示了正确的DNS查找。这就是为什么您无法通过ping或Web浏览器解析域的原因,但是nslookup很好。

解决方案的第一部分是使用www.company.com来内部和外部访问该网站,以便客户完全忽略寻找DC。

第二部分的解决方案比较棘手,具体取决于subdomain.company.com内部和外部引用的内容。DC是否具有子域的DNS记录,或者这些请求只是发送到外部DNS服务器?如果确实有DNS记录,该记录指向何处?


0

我会检查计算机上的HOSTS文件(http://en.wikipedia.org/wiki/Hosts_%28file%29#Location_in_the_file_system)是否包含您要访问的主机的任何条目。我认为NSLOOKUP工具会绕过hosts文件,但网络浏览器不会。

我还将检查您是否没有在网络浏览器中配置代理,因为某些类型的代理也可以解析DNS。

我还将尝试使用IE(“ iexplore -extoff”)或Firefox(启动时按住Shift键或“ firefox -safe-mode”)在其“安全模式”(即,禁用所有插件和插件)下运行浏览器。

理想情况下,如果可能的话,请尝试使用其他Web浏览器来缩小范围,无论是Web浏览器还是OS。

然后,如果我仍然无法到达任何地方,我将检查网络适配器绑定了哪些服务(具有特定规则的疯狂防火墙是否挡住了?)

最后,这正在进入越来越不可能的阶段,但是NSLOOKUP会自动将计算机或连接特定的域名附加到查询中。例如,我的路由器将域名设置为“ router”,因此任何类似“ matthew”的nslookup实际上都会在DNS中搜索“ matthew.router”,这可能是网络浏览器没有这样做的原因。捕获并不是听起来像是您的问题..但是以防万一您在数据包捕获中错过了它,或者捕获环境不太正确:-)。

这些是我会尝试的方法,希望对您也有帮助:-)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.