全球主机交流论坛

标题: DNS清洗原理简单剖析 [打印本页]

作者: nnt    时间: 2022-8-3 00:57
标题: DNS清洗原理简单剖析
本帖最后由 nnt 于 2022-8-3 03:01 编辑

刚刷论坛看到一个帖子:https://443502.xyz/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清洗原理的理解。如果不对之处,欢迎指正,以上内容均来源于互联网相关资料搜集整理,非常感谢前人的探索工作。
作者: lspro    时间: 2022-8-3 00:59
干活绑定
作者: sdqu    时间: 2022-8-3 01:02
设置一个比较小的ttl,然后临时把ns搬回国,好象就能实现同样效果吧? 所以,这就是为什么国内禁止设立自己的dns的原因?
作者: 怪人    时间: 2022-8-3 01:02
还有清洗啊!我也有一个域
作者: 糟糕的鲍勃    时间: 2022-8-3 01:03
这么多我看不懂,有mjj能用一句简单的话解释清楚吗
作者: nnt    时间: 2022-8-3 01:05
sdqu 发表于 2022-8-3 01:02
设置一个比较小的ttl,然后临时把ns搬回国,好象就能实现同样效果吧? 所以,这就是为什么国内禁止设立自己 ...

ttl大小跟 example.com的NS查询包被拦截没啥关系,毕竟LDNS需要过境去向.com的NS服务器查询,这样就一定会过墙的,而过墙的污染域名的DNS包直接会被GFW抢答,把ns搬回国只能保证 LDNS 仍然存有你正确的NS情况下,在不过墙的情况下能够成功查询 A、CNAME等其他记录
作者: 1121744186    时间: 2022-8-3 01:11
本帖最后由 1121744186 于 2022-8-3 01:13 编辑

应该还有个省级墙,一般高墙黑名单后 会同步给这些地域墙,抢答dns 就是域名用国内dns 服务商,然后响应速度比墙快,每个地域都要部署,勤洗应该是 国内集群dns 和 支持 0 ttl 的 ,这也是为啥封自建那么严格,勤洗服务的一般都是有渠道
作者: sdqu    时间: 2022-8-3 01:12
nnt 发表于 2022-8-3 01:05
ttl大小跟 example.com的NS查询包被拦截没啥关系,毕竟LDNS需要过境去向.com的NS服务器查询,这样就一定 ...

嗯,我理解错了,是污染NS,我以为是污染A
作者: winday    时间: 2022-8-3 01:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: kmbeer    时间: 2022-8-3 01:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: Salta    时间: 2022-8-3 01:31
确实是技术贴,理解了!
作者: 树枝    时间: 2022-8-3 01:43
纯技术帖,得赞
作者: 全军冲鸡    时间: 2022-8-3 01:43
再通过查询.com对应的NS服务器查询example.com的NS服务器,最后向example.com的NS查询www.example.com的IP地址。在这个过程中,由于高墙会抢答最后两步的结果。

污染一:向.com对应的NS服务器查询example.com的NS服务器
污染二:向example.com的NS查询www.example.com的IP地址
污染一解决:通过设置较长的ttl,来让example.com正确的NS记录能够在LDNS中缓存一段时间。
(依赖于高墙的抢答特点:高墙直接返回的是一个A记录的DNS响应包,并不是NS记录的响应包,LDNS便并不会将其缓存起来)
污染二解决:搜集非常多的ip,不断地向LDNS进行NS查询来实现。
(前提:如果example.com的NS 服务器在国内的话,
并且,缓存是有时间限制的,过期了就会被删除,并不能一劳永逸,想要用多久就要洗多久... )
---
不确定以上总结的是不是楼主的意思
---
污染一的解决看起来像是高墙的缺陷,如果高墙抢答结果就是一个错误的NS服务器,LDNS接收并不再去请求正确的NS服务器,污染一解决办法是不是无效了;
污染二解决方法需要NS 服务器在国内,是否是说DNS清洗实际是用DNS污染同样的抢答手段,作为一个“错误的NS服务器”去返回正确的结果
---
---
作为mjj就想问:
我有一个被污染的域名,DNS清理具体步骤怎么做

@nnt
作者: dole    时间: 2022-8-3 02:30
make
作者: lsin    时间: 2022-8-3 02:45
有意思,mark一下
作者: nnt    时间: 2022-8-3 03:03
全军冲鸡 发表于 2022-8-3 01:43
污染一:向.com对应的NS服务器查询example.com的NS服务器
污染二:向example.com的NS查询www.example.com ...


污染二不需要大量的IP,污染一才需要,因为当LDNS缓存结果为国内的NS服务器时,查询A记录会直接去询问国内的NS,不需要过墙,所以墙也不会抢答。
作者: nnt    时间: 2022-8-3 03:04
全军冲鸡 发表于 2022-8-3 01:43
污染一:向.com对应的NS服务器查询example.com的NS服务器
污染二:向example.com的NS查询www.example.com ...

自建花销爆炸,作为mjj最具性价比的当然是直接买别人的DNS清洗服务啊
作者: 叼爆小朋友    时间: 2022-8-3 07:30
本帖最后由 叼爆小朋友 于 2022-8-3 07:32 编辑

现在不怎么管用了,省骨干网上面也有墙,响应才到达省骨干网就被省骨干网墙抢答了。这就是为什么国内实名注册的域名用国内ns服务器域名都能被污染的原因。除非你能在省骨干网墙抢答之前就返回查询结果。而且国内注册的域名墙可以完全控制你域名的解析,从源头上增加无效的A记录,导致国内国外都被DNS污染。
作者: youhei    时间: 2022-8-3 08:26
make
作者: nnt    时间: 2022-8-3 20:50
叼爆小朋友 发表于 2022-8-3 07:30
现在不怎么管用了,省骨干网上面也有墙,响应才到达省骨干网就被省骨干网墙抢答了。这就是为什么国内实名注 ...

确实如此,只能说:寄!




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4