一文读懂DNS缓存原理及清理方法

CDN测评 0 62


DNS缓存有哪些作用?

DNS 域名系统给应用访问带来了额外的时延,另外由于 DNS 域名解析采用不可靠的 UDP 协议通讯,受内外部网络环境的影响较大,特别是在有丢包的情况下,导致的时延可能达到数秒。为缓解此问题,DNS 解析采用了缓存机制。

在客户第一次访问之后,递归服务器和客户端都会缓存到该域名的解析记录,并设置相应的缓存生存时间(TTL),在TTL有效期内,客户再次对同域名发起访问时,直接通过客户端缓存和本地DNS服务器高速缓存解析,不再需要经过迭代查询过程。DNS缓存可极大提升DNS域名解析的效率,一定程度上减少了服务器到用户之间环境对DNS域名解析的影响。

DNS缓存使用中的问题

DNS缓存省去了冗长的全球递归查询阶段,极大提升了解析和访问速度,可以让用户获得更快更好的访问体验。但如果DNS缓存设置使用不当,也会给用用户访问体验带来负面影响,甚至影响到正常业务的使用。

1.缓存刷新不受控

当企业的域名发生变更时,并没有办法刷新全球各地的递归服务器缓存以及客户端上的DNS缓存,因此在每个缓存TTL值超时之前,客户发起请求仍然会按照缓存记录的原有映射关系发起请求,这就可能会出现站点不可达或者访问到错误的网站。只有等递归服务器和客户端上的DNS缓存失效后,才能重新发起请求,得到最新的映射关系。

2.解析权和缓存值被修改

一些小运营商出于规模、节约成本的考虑,将域名转发到较大运营商进行解析,并把收到的域名缓存值更改为较长的值,这会带来两个方面的问题:

一是,权威DNS接收到的请求IP地址不是客户所在运营商IP地址,客户的请求可能会被引导至错误的线路,导致客户访问慢;

二是,企业域名发生改变后将等待更长的超时时间才能正常访问业务,同样会给客户带来较差的体验。

基于以上这两个问题,为了保证DNS解析安全性和准确性,我们需要定期对DNS缓存进行清理。

如何清理DNS缓存?

(1)通过“开始—运行—CMD”进入命令行模式。客服对接 点我

(2)输入ipconfig/?,可看到有一个名为/flushdns的命令,通过执行该命令可以清除DNS缓存信息。

(3)执行ipconfig/flushdns命令,当出现“已成功刷新DNS缓存”的提示时说明当前计算机的缓存信息已经被成功清除。


 

(4)接下来我们再访问域名时,就会请求DNS服务器获取最新的解析地址,从而避免解析错误情况的发生。

DNS缓存清理完毕后,再次访问域名,就会委托递归解析服务器发起全球递归查询,从而获得最新的解析记录。

从DNS缓存的原理和作用中我们可以看出,DNS缓存虽然可以在一定程度省去了全球递归查询的时间,提高了解析和访问速度,但是也存在DNS劫持、解析不生效等安全隐患,所以我们需要定期对DNS缓存进行清理,才能保证解析的准确性和安全性。

7acb0a46f21fbe091a5b5670d165763f8744ad5b.webp

也许您对下面的内容还感兴趣:

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。