vps交流

DNS清洗原理简单剖析


本帖最后由 nnt 于 2022-8-3 03:01 编辑

刚刷论坛看到一个帖子:https://hostloc.com/thread-1055204-1-5.html

看了半天也没见有人说清洗到底是咋搞的
正巧之前有了解过,就尝试来解答一下,纯手打

我们都知道,DNS的查询过程是个递归的流程
比如说,当你要访问www.example.com,需要先知道example.com的NS,而这又需要.com的NS
整个过程需要几方配合:LDNS、ADNS
LDNS通常是运营商部署的默认DNS

当你访问www.example.com时,会向LDNS查询www.example.com对应的IP地址,而LDNS又会像根DNS服务器查询.com对应的NS,再通过查询.com对应的NS服务器查询example.com的NS服务器,最后向example.com的NS查询www.example.com的IP地址。在这个过程中,由于GFW会抢答最后两步的结果。

而在 查询 example.com 的NS服务器 过程中,很神奇的是GFW直接返回的是一个A记录的DNS响应包,并不是NS记录的响应包,如此一来,LDNS便并不会将其缓存起来,如此,每一次发送请求,即使每次都被GFW拦截,LDNS还是回去查询 example.com 的NS服务器。与此同时,由于GFW的抢答方式的特点,虽然GFW通常离LDNS更近,处理逻辑也更简单,但有时抢答包可能会比 LDNS向.com的NS服务器响应的包慢,虽然概率很小很小(<1%),但是通过不断的发NS记录的查询包,仍然有概率能够触发,这样一来,我们通过设置较长的ttl,来让example.com正确的NS记录能够在LDNS中缓存一段时间。

解决了 example.com 的NS抢答问题,还需要解决www.example.com的抢答问题。首先需要搞清楚,墙部署的位置:出境流量处。因为我们需要向.com的NS服务器查询example.com的NS,而.com的NS服务器在国外,所以会过墙。但通过上一个法子,我们已经将example.com正确的NS记录缓存到LDNS中,如果example.com的NS 服务器在国内的话,那么此查询过程将不会过墙,LDNS向example.com查询其子域www的DNS包便不会被抢答。

总的来说,此种DNS清洗方法的难度特别巨大:由于全国各地的LDNS非常多,而且都是不公开的,且有时仅允许同一个运营商的某一篇地区使用,这使得如果你想让全国大部分LDNS均能缓存住你的NS记录,就只能搜集非常多的ip,不断地向LDNS进行NS查询来实现。且缓存是有时间限制的,过期了就会被删除,并不能一劳永逸,想要用多久就要洗多久…

以上就是我对DNS清洗原理的理解。如果不对之处,欢迎指正,以上内容均来源于互联网相关资料搜集整理,非常感谢前人的探索工作。DNS清洗原理简单剖析

干活绑定
设置一个比较小的ttl,然后临时把ns搬回国,好象就能实现同样效果吧? 所以,这就是为什么国内禁止设立自己的dns的原因?DNS清洗原理简单剖析
还有清洗啊!我也有一个域
这么多我看不懂,有mjj能用一句简单的话解释清楚吗

sdqu 发表于 2022-8-3 01:02
设置一个比较小的ttl,然后临时把ns搬回国,好象就能实现同样效果吧? 所以,这就是为什么国内禁止设立自己 …

ttl大小跟 example.com的NS查询包被拦截没啥关系,毕竟LDNS需要过境去向.com的NS服务器查询,这样就一定会过墙的,而过墙的污染域名的DNS包直接会被GFW抢答,把ns搬回国只能保证 LDNS 仍然存有你正确的NS情况下,在不过墙的情况下能够成功查询 A、CNAME等其他记录DNS清洗原理简单剖析

本帖最后由 1121744186 于 2022-8-3 01:13 编辑

应该还有个省级墙,一般高墙黑名单后 会同步给这些地域墙,抢答dns 就是域名用国内dns 服务商,然后响应速度比墙快,每个地域都要部署,勤洗应该是 国内集群dns 和 支持 0 ttl 的 ,这也是为啥封自建那么严格,勤洗服务的一般都是有渠道

nnt 发表于 2022-8-3 01:05
ttl大小跟 example.com的NS查询包被拦截没啥关系,毕竟LDNS需要过境去向.com的NS服务器查询,这样就一定 …

嗯,我理解错了,是污染NS,我以为是污染ADNS清洗原理简单剖析

Mark,技术贴
太困了   明天再来看