在具有到 Server 2003 域环境的有线连接、DHCP 分配的 IP 和空主机文件的 Vista x64 PC 上,间歇性地尝试 ping、telnet 或以其他方式解析特定机器名称(或 FQDN)(并不总是同一台机器)将开始出现“无法解决”错误。导致机器名称停止解析的触发器尚未确定。
但是,当出现这种情况时,nslookup 仍然能够成功解析名称,并且通过 IP 地址(ping、telnet 等)访问机器也是成功的。
更新:“ipconfig /displaydns”返回:
myserver.mydomain.local
----------------------------------------
名称不存在。
因此,似乎记录了查找失败。返回的所有其他条目上通常都缺少 TTL 也是令人担忧的。
我发现恢复这种情况的最简单方法是释放和更新 DHCP 租约;“ipconfig /flushdns”不起作用。
我该如何解决这个问题,或者如何提取更多诊断信息来找到根本原因?
谢谢
这听起来像名称解析失败。DNS 服务器是否也通过 DHCP 设置?当您执行 nslookup 时,您是否明确提供 DNS 服务器 IP?由于 Vista 上的 IPv6 堆栈,某些名称解析服务器存在问题,因此您可以查看 ping -4 在 ping 不起作用时是否有效(Vista IP 堆栈首先尝试使用 IPv6 进行名称解析,然后移至 IPv4,但一些解析器拒绝后续IPv4 请求:请参阅http://technet.microsoft.com/en-gb/library/bb878121.aspx了解更多信息)。我不是 windows 专家,所以我通常的攻击路线是查看 LAN 上的数据包,您可能更喜欢探索 windows 方面的东西。
从提升的(以管理员身份运行)命令提示符,您可以尝试重置 winsock/tcpip
我通过从 DHCP 配置中删除除域控制器之外的所有 DNS 服务器来解决了类似的问题。
ping -4
线索是在以前的回复中尝试的建议,以及这个 techarena 论坛帖子如果不是因为 NSLookup 工作,我肯定会说这是一个 DNS 问题。它仍然可能,当它停止工作时我会检查的第一件事是您可以通过 IP 地址 ping 网络的 DNS 服务器。如果这可行,那么您至少知道它是可联系的。
您也可以尝试使用 ping -4 ping 机器的名称以确保它使用 IPv4,我知道 Vista 有类似的问题,它出于某种原因尝试使用 IPv6。