Windows下nslookup解析成功但是ping无法解析域名的解决方法

Windows下nslookup解析成功但是ping无法解析域名的解决方法

最近换了新WiFi,结果用来没两天,发现一些网站打不开了。

Windows下nslookup解析成功但是ping无法解析域名的解决方法_第1张图片

图1:DNS解析错误

 

原以为是DNS出问题了,于是nslookup一下,发现有查询结果啊。然后ping一下,就提示“未找到主机”了。

而且更加玄乎的是:所有Windows系统的电脑都无法访问,但是所有Linux系统的电脑却能访问,手机也能ping通且访问。

在网上找了许多教程,结果大部分都说是Windows的问题,要重置winsocks,刷新DNS,重置TCP/IP之类的方法。这些方法我都一一尝试了,可是问题根本没有得到解决。

后来换回旧的WiFi,居然又能上了!

再抓包一排查,发现使用新WiFi的时候,系统会同时查询A记录和AAAA记录,而使用旧WiFi的时候,就不会,只会查询A记录。

然后ipconfig一下,发现使用新WiFi的时候,系统分配了个fc00:xxxx这样的IPv6 ULA地址,而使用旧WiFi的时候,就不会。当然啦,因为旧WiFi不支持IPv6嘛。可是这个新WiFi只是当个AP使用,而网关没有开启IPv6,所以我记得我关掉了IPv6开关以防止无法上网的呀?

打开后台,确实关了啊?

Windows下nslookup解析成功但是ping无法解析域名的解决方法_第2张图片

图2:IPv6已关闭

 

那么现在可以说破案了。我关闭了新WiFi的IPv6功能,因为网关没有开启IPv6;但是这个新WiFi还是通过SLAAC之类的给局域网内其他主机分配了ULA地址。导致部分机器以为自已能访问IPv6资源,于是进行AAAA记录的请求。可是估计DNS也没配置好,导致没能返回AAAA地址(实际上发现查询AAAA记录,但是返回的是A记录?),于是就直接NXDOMAIN了,即使返回了A记录。

(深入一些,DNS在未查询到AAAA记录而查询到了A记录时,本应对AAAA查询返回NO-DATA的,但是不知咋的返回了NXDOMAIN。Windows系统可能收到NXDOMAIN后立即停止解析了,而A记录随后才到来,故没有被接收到。而Linux可能还会等一下A记录,所以能正确解析A记录。)

之后,鉴于这个扶不上墙的新WiFi的IPv6设置无法更改,所以最后还是在电脑上把IPv6禁用了,才能访问的。

虽然可能还不是很清楚具体的原理,可能还是能说明几个问题:
(1)目前来说局域网中DNS服务器配置确实有点问题
(2)Windows比Linux“蠢”一些;
(3)这个某联的新款WiFi更加“蠢”,IPv6功能无法彻底关闭!

你可能感兴趣的:(网络运维)