Wednesday, December 29, 2010

关于域名DNS解析中TTL的设置时间

网上关于域名dns解析中ttl值设置时间的文章不多,我今天遇到了这个问题,就把这个问题整理一下,希望可以给需要的朋友有所帮助。
什么是域名的TTL值?
TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的 NS服务器(权威域名服务器)发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器(各地的缓存服务器,也叫递归域名服务器)中保存 一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上 保留的时间,就是TTL值。
      域名DNS分两种,一种是权威域名服务器,域名注册商的服务器都为权威域名服务器,TTL值只能在权威服务器修改,还有一种域名解析服务器就是缓存DNS 服务器,比如各地ISP上网设置的DNS服务器,它的作用主要是把域名解析结果缓存到本地,方便你查询。域名DNS的TTL值实际上就是各地的DNS缓存 服务器多久去你的权威域名解析服务器(NS)获取一次你域名的解析IP。
那么域名解析的TTL只应该设置为多少合适呢,下面有两个建议,你可以结合自己参考一下:
一.增大TTL值,以节约域名解析时间,给网站访问加速。

一般情况下,域名的各种记录是极少更改的,很可能几个月、几年内都不会有什么变化。我们完全可以增大域名记录的TTL值让记录在各地DNS服务器中缓存的 时间加长,这样在更长的一段时间内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从缓存中返回域名解析 记录。

国内和国际上很多平台的TTL值都是以秒为单位的,很多的默认值都是3600,也就是默认缓存1小时,这个值实在有点小了,难道会有人一个小时就改一次域 名记录吗?你可以根据自己的需要把这个值适当的扩大,例如要缓存一天就设置成86400。Godaddy的TTL设置比较直观,但总共只有5个值可以选 定,即时切换到高级设置模式也是如此,有点死板了。


二.减小TTL值,减少更换空间时的不可访问时间。

     更换空间99.9%会有DNS记录更改的问题,因为TTL缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效。结 果就是有的人可能访问到了新服务器,有的人访问到了旧服务器。如果原来的域名TTL值设置的小,各地的ISP域名缓存服务器服务器就会很快的访问你域名的 权威DNS解析服务器,尽快把你域名的DNS解析IP返回给查询者
     这就是说你如果想要解析速度,各地ISP的DNS服务器缓存你的域名,你就需要把TTL值设置大一些,如果你想域名更换空间或者IP后能尽快解析到新的 IP上,就需要把TTL值设置小一些。(我今天因为一个域名过期忘记续费被停掉了解析,结果域名被美国的根库修改了DNS,并把域名转到一个域名停放页 面,后来联系注册商才发现这个问题,由此引起了我对域名的思考,考虑到了域名DNS 解析中TTL值的问题。小插曲,和本文的技术无关)
     总结:对于IP地址相对固定,或短期内不会变更IP地址的用户来说TTL值设置的大些如几个小时或更大些为宜。调大TTL值可以显著的提 高域名的解析稳定性和速度。而对于近期有计划变更IP地址的用户需要提前把TTL值改小,以便使缓存在世界各地DNS服务器上的旧域名记录迅速过期,等 IP地址固定下来后再把TTL值改大。
    经验:百度和google的域名TTL值我看了一下,都是86400秒,也就是一天。我的一些域名我也修改成了86400秒了,你的具体多大,你自己根据需要修改吧。


source: http://www.dabaoku.com/jiaocheng/fabu/yuming/201009207014.shtml

No comments: