最近对最新的 GFW DNS 污染的测试结果。
当域名被污染后随机指向国外被封 IP 或无效 IP 地址,如 255.x.x.x 这样的。
这个随机 IP 地址范围非常大,可能有好几千个。
当域名解析在向根服务器查询 NS 记录的时候就被拦截。无法返回正常的 NS 记录。 当域名存在 MX 记录时向根服务器查询 NS 记录,可以正常返回 NS 记录与 MX 记录。
域名不管使用国内还是国外的服务商,在查询 NS 这一步必须出国,因为中国没有根服务器。
疑惑的是:
当一个域名被污染后,如果使用国内 DNS 服务商并设置 MX 记录。可以正常返回 NS 记录。但仍然无法返回正确的 A 记录。
按理当查询 MX 记录时,返回了正确的 NS 记录。此时当地运营商的递归 DNS 应该会缓存 NS 记录,在下一次请求解析这个域名的过程中不再向根域查找 NS 记录,而使用上一次缓存的 NS 记录,向该 NS 请求 A 记录。
但实际测试看起来递归 DNS,好像不会缓存 NS 记录,这个非常奇怪。这样就造成了域名被彻底封杀。
1
Toools 2017-08-08 12:09:16 +08:00
同求 解决方法
|
3
matsuz 2017-08-08 13:09:22 +08:00 via Android
大陆是有根服务器的啊。
你这个问题是能正确解析 MX 而不能解析 A 记录? 那你直接向你的权威服务器请求能返回正确的 A 记录数据吗? |
4
matsuz 2017-08-08 13:28:09 +08:00
要看递归服务器有没有缓存 NS 用 dig 执行一次迭代解析就行了
dig youdomain.com @114.114.114.114 +norecurse 上面 @ 后面的 IP 换成递归服务器的 IP 就好了。 |
5
Devmingwang 2017-08-08 13:35:54 +08:00
对,我也在想为什么所有的污染的域名全都不会返回 NS 记录。
如果可以返回 NS 记录的话,那么可以采取 NS 国内一台国外一台,NS 所用 DOMAIN 分区解析的方式躲过 DNS 污染。 关键就是不向 NS 查啊。 |
6
matsuz 2017-08-08 13:41:10 +08:00
@Devmingwang 要污染整个域最快的方式当然就是屏蔽 NS 啊
不过我刚刚查了一下,是可以正常查询到 google.com 的域 NS 的,说明你们的域名的污染方式和污染 Google 的方式还是有些不同的啊 ( ̄▽ ̄)" |
7
mytsing520 2017-08-08 13:46:19 +08:00
@matsuz Google 没被完全污染,不然这事情后果严重
|
8
matsuz 2017-08-08 13:50:30 +08:00
@mytsing520 嗯,对 Google 的处理方式可能主要还是 IP 黑名单吧。
我刚才试了一下,Google 权威服务器还可以直接查询呢,而且好像也没被劫持 |
9
matsuz 2017-08-08 13:54:19 +08:00
。。我错了,DNS 报文进入大陆的网络的时候应该确实是被劫持了,不过 google\.com 域里面不是每个域名都会被劫持的
|
10
eben 2017-08-08 16:48:25 +08:00
楼主的 cdn 系统啥时候上线开卖
|
12
holinhot OP |
14
holinhot OP |
16
matsuz 2017-08-09 13:10:44 +08:00
@holinhot
#12 我在 http://www.root-servers.org 上看到的是中国大陆有 5 台根,这个应该并不是指 CN 顶级域的权威服务器 #11 #14 那你这个可能是只针对了 A 记录进行了污染,可能是通过劫持 DNS 响应包实现的。如果是这样的话,这个估计不好解决了 |
18
txydhr 2017-08-11 07:12:57 +08:00 via iPhone
向海外任何一个 IP 请求(或者从海外向境内 ip 请求)都会被 gfw 抢答,不管是请求的是 a 记录,ns 记录,还是 mx 记录。。防火墙没有污染 google.com ,污染的是 www.google.com 这个子域名。。正常向根服务器查询 www.google.com 的 a 记录,根服务器会返回 google.com 的 ns 记录。。然而防火墙直接伪装抢答了一个错误的 a 记录,isp 的 dns 直接将这个错误的 a 记录缓存下来返回给用户。。。我测试请求 www.google.com 的 mx 记录也会被污染的。。。
|
20
txydhr 2017-08-11 14:10:17 +08:00 via iPhone
@matsuz 是的 估计为了提高性能,防火墙不区分源 IP 是境外还是境内(入境还是出境),也不管目标 ip 是否有效。。只要发往 53 端口的 udp 包通过 gfw 时。。匹配上特定域名直接抢答。。毕竟抢答你得速度快。。比如你在境外向国内任何一个 ip 地址查询那些域名,都可以收到被污染的解析结果。。
|
22
KCheshireCat 2017-08-14 19:50:39 +08:00
|
23
holinhot OP @KCheshireCat 反正我路由过去是到日本
|
24
holinhot OP |
25
geekzu 2017-08-16 00:14:10 +08:00
|
27
holinhot OP |
28
mytsing520 2017-08-18 08:10:40 +08:00
@holinhot 国内的根是镜像服务器
对 192.5.5.241 的 MTR 结果: |------------------------------------------------------------------------------------------| | WinMTR statistics | | Host - % | Sent | Recv | Best | Avrg | Wrst | Last | |------------------------------------------------|------|------|------|------|------|------| | 192.168.16.1 - 0 | 6 | 6 | 0 | 0 | 1 | 1 | | 183.157.x.x - 0 | 6 | 6 | 1 | 1 | 2 | 1 | | 61.164.12.30 - 0 | 6 | 6 | 2 | 2 | 2 | 2 | | No response from host - 100 | 1 | 0 | 0 | 0 | 0 | 0 | | 202.97.68.161 - 0 | 4 | 4 | 24 | 275 | 1031 | 24 | | No response from host - 100 | 1 | 0 | 0 | 0 | 0 | 0 | | 18.254.120.106.static.bjtelecom.net - 0 | 1 | 1 | 31 | 31 | 31 | 31 | | 18.254.120.106.static.bjtelecom.net - 0 | 1 | 1 | 31 | 31 | 31 | 31 | | 218.241.107.94 - 0 | 6 | 6 | 24 | 24 | 24 | 24 | | 218.241.107.94 - 0 | 6 | 6 | 24 | 24 | 25 | 24 | | f.root-servers.net - 0 | 6 | 6 | 29 | 29 | 30 | 29 | |________________________________________________|______|______|______|______|______|______| 测试环境:杭州电信 |