我们有一个静态IP的服务器,让我们说xx2.5。 我们有几个WinXP(但不是全部)偶尔会将主机名parsing为xx1.59(xx1.x是本地子网)。
路由器的DHCP范围设置为xx50-199,路由器发出租约1.59。
理论上可能有一些具有相同主机名的主机在那里。 它响应ping,但似乎没有注册自己的Windows DNS服务器(1.59没有条目),所以我不认为这是事实。
2.5服务器的DNS是静态的,只出现一次(此服务器没有其他条目出现)。
在受影响的PC上,如果我这样做:
ping THEHOST
我得到1.59
如果我做
nslookup THEHOST
我得到2.5
所以看起来本地caching是有些fubar的。 如果我重新启动XP的机器,它拿起正确的IP地址,一切都很好。 故障是间歇性的,重新启动后不可重现。
我们本地的Windowspipe理员被难住了,我也是(但我不是Windowspipe理员,所以这并不奇怪)。 任何方式来追查这个疯狂的IP? 当它再次发生时,我应该检查什么?
当Windows XP尝试parsing正在使用的NETBIOS名称时,如果不提供具有后缀的完整DNS名称,则会按照以下顺序通过以下资源
使用nslookup跳到第6位,这可能是为什么当你使用nslookup时你看不到问题。 caching中毒和stream氓WINS服务器似乎不太可能,如果问题在重新启动时不可重现,那么它不是HOST或LMHOST文件问题。 这使得b节点广播成为问题的最可能的来源。 我猜测你有一台机器与NetBIOS名为THEHOST的受影响主机位于同一网段。 一种判断netBIOS问题的方法是ping THEHOST.DOMAIN,看看是否会导致问题消失,如果是的话,如果是的话,那么NetBIOS也是如此,那么就会出现DNS问题。
我会检查受影响的服务器上的hosts文件:
%SYSTEMDRIVE%\windows\System32\drivers\etc\hosts
为THEHOST找一个stream氓入口
原因是nslookup总是使用默认的DNS服务器来解决问题,但是Ping通过了正常的Windows方法,它在检查DNS之前检查hosts文件,这可能会被caching。
另一个途径是做一个ipconfig /flushdns ,看看它是否正确解决之后。