这个问题本来不归我处理的,但是我听我同事说win7的能够访问,xp的就不能够访问。于是我就让我同事分别在window7和xp上面访问这个url,同时开始抓包!抓包发现,当PC的DNS不管用的时候,xp和win7去解析这个url的时候用的协议是不一样的。
接下来看一下两者的解析过程的截图:
xp环境下抓取的报文
win7环境下抓取的报文
从抓包上面可以看到win7使用的协议是LLMNR的协议去解析这个url的。而xp是将整个url当做一个主机名然后使用NBNS去解析。想必是软件中没有做NBNS协议而做了LLMNR的协议的时候,就导致了该问题的发生。
在DNS 服务器不可用时,DNS 客户端计算机可以使用本地链路多播名称解析 (LLMNR—Link-Local
Multicast Name Resolution)(也称为多播 DNS 或 mDNS)来解析本地网段上的名称。
该协议的工作过程:
(1)
主机在自己的内部名称缓存中查询名称。如果在缓存中没有找到了名称,那么主机就会向自己配置的主DNS服务器发送查询请求。如果主机没有收到回应或收到了错误信息,主机还会尝试搜索配置的备用DNS服务器。如果主机没有配置DNS服务器,或者如果在连接DNS服务器的时候没有遇到错误但失败了,那么名称解析会失败,并转为使用LLMNR。
(2)
主机通过用户数据报协议(UDP)发送多播查询,查询主机名对应的IP地址,这个查询会被限制在本地子网(也就是所谓的链路局部)内。
(3)
链路局部范围内每台支持LLMNR,并且被配置为响应传入查询的主机在收到这个查询请求后,会将被查询的名称和自己的主机名进行比较。如果没有找到匹配的主机名,那么计算机就会丢弃这个查询。如果找到了匹配的主机名,这台计算机会传输一条包含了自己IP地址的单播信息给请求该查询的主机。
3万+

被折叠的 条评论
为什么被折叠?



