1
awanabe 2014-06-22 09:43:22 +08:00
LZ
首先, 这个是"防止DNS污染的小工具" 的源码. |
2
JTR 2014-06-22 09:55:26 +08:00
我还以为有人找到GFW本体 看到代码了。。
|
3
EPr2hh6LADQWqRVH 2014-06-22 10:51:40 +08:00
哈哈哈
|
4
ovear 2014-06-22 10:58:38 +08:00 5
我跟lz说一下我的原理吧。
lz这个有点复杂,首先检测ip是不靠谱的gfw经常返回一些奇怪的ip 我的方式是向一个境外的fake dns查询某个域名,这个fake_dns本来是不会返回ip的,如果 返回的,则认为这个域名是被污染的,然后才忽略第一个包。 源码的话。。我回家找一找=。= |
5
jings 2014-06-22 12:18:44 +08:00
查找根域名服务器时就开始污染了
|
6
shoumu 2014-06-22 12:38:01 +08:00
解析出来的ip还是不能够访问啊
|
7
clowwindy 2014-06-22 13:29:47 +08:00 4
把楼主的原型实用化了,做了一个 DNS 转发器,启动后把 DNS 改为 127.0.0.1 即可避免 DNS 污染:
https://github.com/clowwindy/ChinaDNS @ovear 光忽略第一个包不够,测试表明 GFW 可能会返回两个假包: 2014-06-22 12:43:51 INFO request www.facebook.com 2014-06-22 12:43:51 INFO response www.facebook.com: [('37.61.54.158', 1, 1)] 2014-06-22 12:43:51 INFO response www.facebook.com: [('59.24.3.173', 1, 1)] 2014-06-22 12:43:51 INFO response www.facebook.com: [('star.c10r.facebook.com', 5, 1), ('31.13.79.81', 1, 1)] |
10
churchmice 2014-06-22 16:41:42 +08:00
@shoumu DNS污染只是GFW的一种策略,还有诸如封IP,关键字过滤
|
11
ovear 2014-06-22 17:50:02 +08:00 1
@clowwindy 我是通过tcp查询的,同时查tcp和udp两种,如果fake dns返回了结果,就直接忽略udp的结果。或者设定一个很小的ttl。
一种机器学习策略吧~ |
13
kfll 2014-06-22 19:23:03 +08:00
|
14
cj1324 2014-06-22 19:35:23 +08:00
@ovear 这个方法不行, 因为dns 污染同时存在保护性的操作。
比如百度的域名被国外XX组织DNS劫持了。 DNS污染会让你得到正确的IP。 从而正常使用百度。 |
15
ovear 2014-06-22 19:38:34 +08:00 1
|
19
ovear 2014-06-22 20:58:38 +08:00 1
@clowwindy 浪费倒是不会浪费,我是实现的一个标准的dns服务器。有ttl的,本地缓存啥的-0-,而且有机器学习规则,基本上是越多人用,就越快。而且越智能。。(EDNS坑还没坑上。。因为要申请合作,不然就只能盗用其他edns的key。。赶脚不太好)
另外=。=,这个方法别传太远了。。不然升级就不好使了。。 其实我还打算做一个公共维护的clean dns cache zone,还可以随时导出hosts啥的 多方便。。重新封装下dns协议也不难,还可以防污染。。算是云起来吧23333 确定gfw的方法其实可以通过bgp来确定的~可以确定广播域,我记得有一个软件可以看到的~(省市之间都有类似gfw的设备。。总之绝对不是只在出口有) @cj1324 嘛。。那就到时候再说。人工调整也不是不可以 |
21
scarecrow OP |
22
jsq2627 2014-06-22 21:39:35 +08:00
@ovear
ovear 你好,ovear 再见 - - 我一直以为此 ovear 非彼 ovear。。ping了一下你的博客才发现原来就是你 = = 今天突然发现我的blog放YunTF首页了,受宠若惊。。我都有好几个月没去维护它啦 |
23
topkings 2014-11-22 21:38:53 +08:00
受教
|
24
scarecrow OP 很久远的一个帖子了,看到消息提醒有来到这里,发现我分享文章的链接已经被GFW干掉了。
http://examplecode.github.io/tools/2014/06/20/the-tools-prevent-dns-cache-pollution/ |