首页 > 小运营商的DNS缓存问题?

小运营商的DNS缓存问题?

现在很多ISP并不会完全根据我们设置的ttl时间来缓存dns解析。有些小运营商甚至设置了很长的缓存时间,这时如果origin server做了调整,那么这部分小运营商的用户就会受到影响。

现在我们很多时候都是接到用户报障,才能定位到故障所在,并作出相应的解决方案。这种明显有点迟疑。

我们想利用第三方的监控平台来监控dns劫持或者这种长缓存的现象。针对这种长缓存的现象,不知道有什么好的方式进行判断或者方法么?


没有比较好的办法。
简单的思路,可行性不高:
1、在公网部署一个动态变更的域名A,TTL短一些,定时或不定时进行变更,
2、在公网上同时用另一个服务X(可以是http等),记录上面域名与真实IP的正确对应关系B
3、在【被劫持】环境下(必须)部署一个服务Y,让其长期定时解析域名A,同时让他去读取X中的记录B,比较A与B,如果不同就开始计时,如果严重超过TTL长度的话那就证明被劫持。

这个方法并不可靠,因为某些ISP会根据请求进行定向污染,有可能会规避你服务Y的定时解析。
我已经遇到过类似问题了,同一个出口同一个DNS,使用win7就会被劫持,使用android和其他linux系统则不会,后来发现win系统会先校验一次dns服务器的权威性,isp就根据这个动作去污染你的dns请求。不知道isp还有什么黑科技。

DNS在很久以前,其生效时间都是论天而计的,现在在网上也能查到很多教程说变更DNS记录需要等1~2天的。这主要是因为DNS是一个层级网状关系。每个DNS服务器都是向上游服务器去请求,其上游可能还有更多上游,这会导致最惨情况下TTL直接翻倍。现在虽然DNS的TTL都已经很短了,一般都是300~600,但很多ISP仍然使用古董配置,所以的确有这种问题。运营商可能也会因为各种理由劫持并延长TTL。

目前除非能摆脱53 UDP端口作为DNS请求,否则没有方法能解决此问题。而想让用户不使用系统自带的DNS请求方式,这种想法还是算了吧。


ipconfig /flushdns
【热门文章】
【热门文章】