我的网络路由器是 ZyXEL ZyWall USG 100,它有一个内置的 DNS 服务器。许多 Windows 计算机连接到它并通过 DHCP 获取 IPv4 地址。他们还会通过路由器的“域名”获知 DNS 后缀(“内部”)。通常这工作正常。但是,有时 Windows(Vista 或 7)机器将无法解析 DNS 记录中域名为“domain-name”的机器的 IP 地址。具有与“域名”关联的 IP 地址的机器此时已打开并可被其他 Windows 计算机访问。
发生这种情况时,它仍然可以使用“nslookup domain-name”解析IP地址,但“ping domain-name”、“ping -4 domain-name”和浏览“ http://domain-name ”失败。Ping "domain-name.internal" 有效。
我在受此问题影响的计算机上查看了“ipconfig /displaydns”命令的输出,我看到意外的 IPv6 条目如下所示:
domain-name
----------------------------------------
No records of type AAAA
Run Code Online (Sandbox Code Playgroud)
我可以通过重新启动网络适配器接口来暂时解决问题。
在http://technet.microsoft.com/en-gb/library/bb878121.aspx,微软说:
注意:由于 Internet 上的 DNS 服务器配置错误,同时使用 IPv4 和 IPv6 的计算机可能无法解析名称并连接到 Internet 资源。当错误配置的 DNS 服务器收到将名称解析为一个或多个 IPv6 地址的请求(请求 AAAA 记录)时,就会发生这种罕见的问题。如果 DNS 服务器不支持 IPv6,则名称查询失败。查询节点然后发送请求以将名称解析为一组 IPv4 地址(对 A 记录的请求)。错误配置的 DNS 服务器丢弃对 IPv4 地址的后续 DNS 查询,整个名称解析尝试失败,导致请求节点的网络连接受损。如果您遇到此问题,在 …