DNS首选与备用作用机制探究

转载自 http://www.360doc6.net/wxarticlenew/806020380.html

我们知道在计算机上可以配置首选DNS和备用DNS,当首选DNS不响应的时候,计算机依然可以通过请求备用DNS来进行解析。那么,究竟在什么情况下,计算机才会去找备用DNS服务器呢?从找首选到找备用,这中间切换的时间无疑会影响到用户的使用体验,那么这中间的切换时间大概是多久呢?能否更改这样一个时间呢?

一、单网卡情况

通过查找微软资料,并且实际进行抓包测试,单网卡情况下,如果配置了首选和备用DNS,情况如下:

1)DNS客户端向首选DNS发送请求(试图建立连接),等待1秒;

2)如果客户端在1秒内没有收到回复,则它向此网卡上的所有的DNS服务器发送请求(试图建立连接),等待1秒;

3)如果客户端在1秒内仍然没有收到回复,则它向此网卡上的所有的DNS服务器再次发送请求,等待1秒;

4)此循环一直进行下去(至少在我抓包的这30秒内,规律如此)。

二、多网卡情况

如果计算机配置有多张网卡,情况会变得复杂一些。多网卡情况下,计算机又是通过怎样的机制来请求首选和备用DNS来进行名称解析的呢?具体的过程下图:

1)客户端发起DNS查询请求,查询首先网卡上的首选DNS,并等待1s;

2)1s后没有响应,发起查询请求到所有网卡的首选DNS上,并等待2s;

3)2s后依旧没有响应,发起请求到所有网卡的所有DNS上,并再次等待2s;

4)2s后依然没有响应,再发起所有的请求,并等待4s;

5)4s还没有,再发起,并等待8s;

6)在任何一次查询过程中,有任何一个DNS优先响应,就跟它进行DNS的查询,并将查询结果缓存下来;

7)8s还没有响应,客户端提示超时;

8)并且对于某个特定的网卡,如果至此未收到任何DNS的回应,那么在接下来的30s内,从此网卡上接收到的所有DNS解析请求都会被回复超时,系统将上述DNS标记为超时服务器(不可用),下次查询将不再用它;

9)如果查询过程中,收到一个否定的结果(DNS服务器有响应,但是它说不知道),客户端将终止查询,并接受该结果;

10)客户端对DNS服务器的查询反馈保持跟踪,根据他们响应的数据来灵活移动他们的先后顺序(也就是说,出问题的时候,首选和备选的先后顺序不是写死的)。

以上是单网卡情况下以及多网卡情况下,客户端请求首选DNS和备用DNS的机制。有兴趣的同学,可以参考此处微软官方链接:http://technet.microsoft.com/zh-cn/library/dd197552(v=WS.10).aspx.aspx)

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

评论已关闭

很多东西宁缺毋滥,流星的光芒短暂而灼热闪耀。

让你变得更好的那个人,往往是你觉得很难与之相处的那个人。—— by 小宇

觉得自己做的到和不做的到,其实只在一念之间。

路在自己脚下,没有人可以决定我的方向。

你的选择是做或不做,但不做就永远不会有机会。

凡事顺其自然,遇事处于泰然,得意之时淡然,失意之时坦然,艰辛曲折必然,历尽沧桑悟然。