我爱帮助网--QQ交流群号

Nas交流与矿渣群(unraid 群晖 猫盘 蜗牛等):372167400         物联网/智能家居群:518812757             帮助教程:手册大全

软件使用与建站群:1057308983      虚拟化交流群:13448651

域名解析TTL值如何设置

2020-02-06 10:06:00
dns.com
转贴
3517

域名解析TTL值设置为多少合适呢?


TTL(Time-To-Live)定义:

是一条域名解析记录在DNS服务器中的存留时间


先举个例子帮助你了解TTL是什么意思。

假如:有这样一个域名tmtony.com,对应IP地址为1.1.1.1,把它的TTL设为3600秒,这条记录存储在一台DNS服务器上。


现在有一个用户在访问tmtony.com时,网络服务商的DNS就会试图为用户解析tmtony.com,当然网络服务商这台DNS服务器并没有包含tmtony.com这条信息,因此无法立即解析,但是通过全球DNS的递归查询后,最终定位到tmtony.com这台DNS服务器对应的IP地址为1.1.1.1并将结果告诉网络服务商的DNS服务器,然后再由网络服务商告诉用户结果。

网络服务商为了以后加快对tmtony.com这条记录的解析,就将刚才的1.1.1.1结果保留一段时间,这段时间就是TTL值,在这段时间内如果用户又有对tmtony.com这条记录的解析请求,它就直接告诉用户IP地址为1.1.1.1,当TTL到期则又会重复上面的过程。

那么有人会问TTL值设置多少合适呢?TTL值是越大越好,还是小好?这个没有统一标准答案, 总结下几种情况参考:
 
所以TTL值大了,修改解析后等待生效的时间就会越长,TTL值小了,域名解析的稳定性和解析速度就会受到影响,TTL设置多少合适,就要根据具体的网站来定。


有两个建议,可以参考一下

1.增大TTL值,以节约域名解析时间,给网站访问加速。
一般情况下,域名的各种记录是极少更改的,完全可以增大域名记录的TTL值让记录在各地DNS服务器中缓存的时间加长,这样在更长的一段时间内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从缓存中返回域名解析记录


2.减小TTL值,减少更换空间时的不可访问时间。
更换空间肯定会有DNS记录更改的问题,因为TTL缓存的问题,新的域名记录在有的地方可能等上一两天甚至更久才生效。域名TTL值设置的小,各地的ISP域名缓存服务器服务器就会很快的访问你域名的权威DNS解析服务器,尽快把你域名的DNS解析IP返回给查询者


当然具体情况需要具体对待

1、网站搬家或更换IP地址时:减小域名TTL值可以减小网站不可访问的时间

(1)查看当前域名的TTL值,修改TTL值为可设定的最小值
(2)等待一段时间,当各地的DNS服务器缓存都过期并更新了记录即可
(3)解析域名到新的IP地址,此时各地的DNS就能以最快的速度更新
(4)当DNS已经更新完成后,将TTL值恢复成适当的大小

2、增大域名TTL值可减少域名解析时间并提高网站访问速度

增大TTL值可以使域名解析记录在各地DNS服务器中缓存的时间加长,这样当访客访问网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而是直接从缓存中返回域名解析记录,因此可以加速网站访问速度!

总结:对于IP地址不经常更换或者不经常搬家到网站,适当增大TTL值可以显著的提高域名的解析稳定性和速度;而对于近期需要变更IP地址的网站需要提前减小TTL值,以便使各地DNS服务器上的旧域名缓存记录迅速过期,IP地址变更后再把TTL值改大!


阿里云的相关文章

TTL 值设置方法

概述

TTL:TTL是Time-To-Live的缩写,指生存时间。而域名解析中提到的TTL值是指全国各地的localdns服务器中缓存解析结果的时间周期。
1 . 当各地的localdns服务器接接收到解析请求查询时,就会向权威DNS(例如云解析DNS)发起解析请求查询,获取到解析结果。
2 . localdns会将查询到的解析结果,保存到本地一段时间。保存的这个时间周期,就是根据TTL设置而来的。在保存的这个时间周期内,如果各地localdns再接收到此域名的解析请求查询,是不会再向权威DNS发起请求查询的,而是直接将本地保存的解析结果返回给用户。
3 . 当localdns本地缓存的时间到期后,就会清除该解析记录的缓存结果,清除后,如果各地localdns再接收到此域名的解析请求查询,则会重新向权威DNS(例如云解析DNS)发起解析请求查询,获取最新的解析结果。

应用场景

1 . 通过增大TTL值,减少DNS递归查询过程,实现提升域名解析速度。

一般情况,解析记录发生变更的频率是很低的,所以可以通过增大TTL值,让解析结果在全国各地 localdns 中的缓存时间变长,这样当用户访问网站时,就无需经过DNS的递归过程,而是最直接从客户本地DNS服务器将解析结果返回给用户,可以在一定程度上优化解析速度。
2 . 通过缩小 TTL 值,以减少更换空间IP地址时造成的不可访问时间。

当修改解析记录指向的IP地址时,因为缓存的原因,可能有些地方已经生效,但有些地方因为localdns 的缓存时间还没到期所以还未生效,造成的直接结果就是有的用户已经访问到了新的服务器地址,但有的用户还是访问的是旧服务器地址。建议方法如下:

  • 先查看域名当前设置的 TTL 值,假设为1天。

  • 修改 TTL 值为可设定的最小值,假设您购买的是云解析DNS旗舰版,那么可以将TTL值修改为1秒(云解析DNS版本不同,提供可设定的TTL最小值也不同,您可以参阅 版本对比 文档)。

  • 等待1天,主要是等待全球各地的 localdns 缓存过期,缓存过期后会向权威DNS查询最新的解析结果(这里是TTL值从1天修改为1秒,所以需要等待上一次的缓存到期才会缓存此次修改的最新解析结果)

  • 然后修改解析IP地址,因为上一步TTL值已修改为1秒,所以全国各地的localdns就能以最快的速度更新到最新的解析结果。

  • 等全球各地的localdns都同步到最新的解析结果后(您可以通过 17测 测试全国各地localdns的解析生效情况),且测试没问题的情况下,最后对TTL值再进行修改。因为TTL设置1秒,相当于在全球各地的localdns上基本没有缓存效果,每次都需要经过DNS递归查询过程,会给解析速度造成影响。
    注意: 有少部分localdns可能不遵循权威DNS的TTL设置规则,所以当您使用17测测试时,也许会发现部分地区的localdns的解析结果和设置不符,如果遇到此情况建议您再等待一段时间,然后再进行测试即可。

版本差异对比

阿里云解析DNS不同版本提供的最低TTL值能力不同 

版本 免费版 个人版 企业标准 企业旗舰班
最低TTL值 600秒 600秒 60秒 1秒


设置方法

1 . 登录 云解析DNS控制台
2 . 在域名解析页面,全部域名页签下,单击 域名,进入解析设置页面。


经常说DNS劫持,也常常说域名解析不正确。那么DNS解析的过程究竟如何?在阅读《HTTP权威指南》缓存一章时,提到缓存文档过期采用“生存时间技术”与DNS类似。所以抽空学习了解了一下DNS的解析过程,以及DNS TTL值的概念!

DNS相关知识

  • 根域名服务器(root-servers.org)是互联网域名解析系统(DNS)中最高级别的域名服务器,全球仅有13台根服务器。

  • 部分根域名服务器在全球设有多个镜像服务器

  • 任何域名解析都要经过这13台根服务器获得顶级索引,并不是说您访问 .com 会经过这些服务器,访问 .cn 就不经过这些服务器

  • 每一个顶级域,不管是gTLD(通用顶级域),还是ccTLD(国别顶级域),它们都有自己的域名服务器(即该顶级域的NS记录)

   根域名服务器全球分布图——Google Maps

域名解析的步骤

   在输入网址后,域名解析通常所需步骤如下:

  • 第一步:客户机提出域名解析请求,查找本地HOST文件后将该请求发送给本地的域名服务器。

  • 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

  • 第三步:如果本地DNS缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址(例如请求域名为.com域,则返回负责.com域解析的主域名服务器——辅助服务器)。

  • 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

  • 第五步:重复第四步,直到找到正确的纪录。

  • 第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

   文字可能很难理解,网民们是伟大的,看到这张图应该很形象的演示了上述过程:

    dns_resolving_2409

   本地DNS向其他DNS服务器发送的查询请求可能有:递归查询和迭代查询两种,示例如下:

   递归查询

    dns_resolving_2409

   迭代查询

    dns_resolving_2409

DNS TTL值

   通过前文的说明,DNS会将最终域名解析的结果缓存至本地。那么当域名对应的解析IP变化时,如何保证用户的缓存快速过期?

   这就涉及到一个问题,域名在解析时设置的DNS缓存过期时间是多少——TTL(Time-To-Live)。

   TTL(Time-To-Live),简单的说它表示一条域名解析记录在DNS服务器上缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

   所以一般更新域名解析的步骤如下:

  • 先查看域名当前的TTL值。

  • 修改TTL值为可设定的最小值,建议为60秒。

  • 等待一天,保证各地的DNS服务器缓存都过期并更新了记录。

  • 设置修改DNS解析到新的记录,这个时候各地的DNS就能以最快的速度更新到新的记录。

  • 确认各地的DNS已经更新完成后,再TTL值设置成常用的值(如: TTL=86400)。

   


w3cschools相关文章:

如何为域名选择DNS生存时间(TTL),TTL非常重要,因为它们间接控制解析器缓存记录的时间,直接影响用户体验 
在东方联盟DNS实验室和USC / ISI进行了一项测量研究,以了解不同的TTL值选择如何影响运营网络,目的是帮助运营商针对他们的情况在TTL值上做出明智的选择。
 
关键点:
DNS TTL间接控制缓存,从而影响用户体验。
已通知8个ccTLD其NS记录的TTL值太低;三个增加他们作为回应。
通过将其NS TTL从5分钟更改为1天,中值延迟时间从28ms减少到8ms,将第75个百分点的延迟时间从183ms减少到21ms,从而获得了显着的性能提升。


选择长或短TTL的原因,网络运营商选择长或短TTL的原因很多:
更长的缓存会导致更快的响应:更长的TTL可以缓存更长的时间,并且缓存命中的速度远远超过了从权威服务器获取答案的速度,结果表明,与具有大型任播网络相比,更长的缓存甚至可以改善结果。较长的缓存会导致DNS流量降低:权威的运营商可能会对设置更高的TTL感兴趣,因为缓存会减少收到的查询数量。如果对DNS服务进行计量,那尤其重要。
 
网络安全专家郭盛华分析:“更长的缓存对于权威DNS服务器上的DDoS攻击更健壮,DNS服务提供商上的DDoS攻击已损害了几个著名的网站。最近的工作表明,DNS 缓存可以大大降低DDoS对DNS的影响,前提是缓存的持续时间比攻击要长。”
 
较短的缓存有助于进行操作更改:从旧服务器过渡到新服务器的一种简便方法是更改??DNS记录。由于无法删除缓存的DNS记录,因此TTL持续时间表示完全迁移到新服务器所需的转换延迟。因此,低TTL允许更快速的过渡。但是,如果比TTL的长度提前计划部署,则可以在进行重大操作更改之前降低TTL,并在更改生效后再次升高TTL。较短的缓存可以帮助基于DNS的DDoS攻击响应:某些DDoS清理服务在攻击过程中使用DNS重定向流量。由于DDoS攻击是未经通知的,因此基于DNS的流量重定向要求始终将TTL保持在较低水平,以准备响应潜在的攻击。

较短的缓存有助于基于DNS的负载平衡:许多大型服务都使用基于DNS的负载平衡。每个传入的DNS请求都提供了一个调整负载的机会,因此可能需要短的TTL来快速响应流量动态变化(尽管许多递归解析器的最小缓存时间为几十秒,从而限制了敏捷性。)尽管我们的分析没有建议一个理想的TTL值,但它确实阐明了权衡因素,使我们能够针对不同情况提出以下建议:

TTL持续时间: TTL值的选择部分取决于外部因素,因此没有一个建议适用于所有网络或网络类型。对于一般的区域所有者:我们建议使用更长的TTL,至少1小时,最好是4、8或24小时。假设可以提前安排计划的维护,则长TTL的成本很小。

对于TLD和其他注册机构运营商:允许对域(例如大多数ccTLD,.com,.net,.org和许多SLD)进行公共注册的DNS运营商允许客户端复制其区域文件中的TTL,以获取客户端NS记录和粘合)。基于DNS的负载平衡或DDoS防护的用户可能需要较短的TTL:TTL可能短至5分钟,尽管15分钟可以为许多运营商提供足够的敏捷性。较短的TTL有助于敏捷性。它们是我们对较长TTL的第一个建议的例外。
 

0
发表评论
评论通过审核后显示。
文章分类
联系我们
联系人: 王先生