什么是DNS缓存?
当我们第一次访问某个网站时,DNS在返回对应的IP地址后,系统会将这个记录临时存储下来,并为其设定一个有效期限(TTL),在有效期限内再次访问该网站,系统会直接将该结果返回,而无需求助DNS系统进行全球查询。这个临时储存下来的记录就是DNS缓存。如果超过DNS缓存的有效期限再次对该网站,系统会自动再次询问DNS服务器以获得最新的结果。
DNS缓存有什么作用?
DNS域名解析采用的是UDP协议通讯,受外部网络环境的影响较大,尤其是在有丢包的情况下会产生较高的时延,严重影响用户上网体验,而DNS缓存机制就是在这种背景下产生的。
DNS缓存可以在用户发起请求时,直接将记录结果返回,不需要委托递归服务器进行全球查询,这样就极大提升了DNS域名解析效率,减小了多次查询所带来的时延问题。此外,由于不必每次都请求权威解析服务器进行查询,所以缓存机制还能大幅节省权威服务器的性能消耗,减轻权威服务器的请求压力。
DNS缓存的缺点
DNS缓存虽然能够在一定程度上提升域名解析的速度,但同样也存在一些弊端,如DNS缓存需要消耗一定的系统资源,增加了域名系统的复杂性。此外TTL值的设置对于平衡DNS解析速度和精度产生了较大影响。如果TTL值较短,能够在较短时间内刷新最新解析记录,但会对解析服务器造成较大压力;如果TTL过大,则可能导致地址变更时,用户无法及时获得最新记录,从而导致站点不可达或者访问到错误网站,影响正常业务开展,并增加DNS被劫持的风险。
DNS缓存使用中的问题
由于DNS缓存机制存在以上弊端,所以如果DNS缓存设置使用不当,反而会适得其反出现以下几个方面的问题给用户正常访问带来负面影响。
(1)缓存刷新不受控
当域名发生变更时,无法刷新全球递归服务器缓存和客户端上DNS缓存中的记录,在缓存TTL值是小钱,客户发起请求仍会按照缓存记录的原有映射关系发起请求,只有当递归服务器和客户端上的缓存失效后,才会重新发起请求。在此过程中,因为域名解析到错误IP会产生很大的安全风险。
(2)解析权和缓存值被修改
一些小运营商出于成本考虑,经常会将域名转发到其他运营商进行解析,并将收到的域名缓存值修改为较大值,这样就会带来两个方面问题:
一是,权威DNS接收到的请求 IP 地址不是客户所在运营商 IP 地址,客户的请求可能会被引导至错误的线路,导致客户访问慢;
二是,企业域名发生改变后将等待更长的超时时间才能正常访问业务,同样会给客户带来较差的体验。
因此,为了消除DNS缓存带来的种种问题,企业在设置域名解析时应做好解析速度和安全性之间的平衡,设置好合适的TTL值,而对于客户端来说,经常性地清理DNS缓存,保证实时获取最新解析记录,则可以有效避免上述问题。 【点击链接,免费试用国科云智能云解析】
相关推荐:
一文读懂DNS缓存原理及清理方法浅谈DNS缓存的作用和影响
什么是DNS缓存投毒?有哪些危害?
DNS解析常见问题:如何清理DNS缓存?
DNS解析常见问题:什么是主DNS服务器和辅助DNS服务器?