DNS查询工作原理

任何域名都至少有一个DNS,一般是2个。但为什么要2个以上呢?因为DNS可以轮回处理,第一个解析失败可以找第二个。这样只要有一个DNS解析正常,就不会影响域名的正常使用。

一个url对应多个ip的解决办法:

循环DNS:DNS中注册多个主机,按照顺序循环返回查询结果,实现load balance;


负载平衡器

Anycast:Anycast允许源结点向一组目标结点中的一个结点发送数据报,而这个结点由路由系统选择,对源结点透明;同时,路由系统选择“最近”的结点为源结点提供服务,从而在一定程序上为源结点提供了更好的服务也减轻了网络负载。


ISP的DNS缓存

ISP的DNS缓存时间一般是1个小时。前后2次间隔1个小时的话,他就去域名的DNS上重新取得数据。这里说的是最近一次和当前的比较,也就是说如果时间差距较大,就重新去域名的DNS服务器上找。所以刷新就变得很有必要,否则缓存了一次并且域名记录改了以后,ISP就永远不去找新的记录了。知道了这个原理以后,大家就会明白,为什么原来没有的记录注册并生效会很快,修改的话生效会很慢。就是因为缓存的原因。但如果没有缓存,访问的效率会很低,因为任何一次输入www.zzndns.com都得跑到NS1.ZZNDNS.COM、NS2.ZZNDNS.COM去查询记录。


备注:很多域名商的域名解析系统也不是实时刷新的。一般会设置一定的时间,比如20分钟。就是说,你设置了一个新的A记录以后,域名服务器会在20分钟内为你添加。目的就是为了节约服务器资源,怕客户的DNS不断的刷新记录。因为刷新记录肯定需要消耗一定的资源,而且刷新过程中是不能解析的。另外刷新过程大概需要耗费5秒钟,就是说这个5秒内域名商的的DNS是不能用的。


refer:

1、http://technet.microsoft.com/zh-cn/library/cc775637

2、http://www.zzndns.com/faq/31.html

你可能感兴趣的:(DNS查询工作原理)