iptables 规则会对 IPV6 数据起作用吗?

2014-07-24 21:05:36 +08:00
 leavic
背景: http://www.lifetyper.com/2014/07/the-bogus-empty-response-from-dns-hijack-of-gfw.html

简单的说,就是我发现GFW会对114的DNS也做劫持,返回一个Response Code为0(表示没有错误),但RRs为空(没有有效解析数据)的劫持数据包,最终导致域名解析失败.

然后我写了条iptables规则,在路由器上过滤这种ResponseCode显示没错误,但RRs为空的响应数据包.在IPV4下工作正常.

问题:一旦我启用Windows中网卡的IPV6,所有通过IPV6发出的DNS请求好像都没有响应了.

抓包看到是不停的在发出解析请求到路由器,但一个返回都没有.可就是在一个返回都没有的情况下,等了比较长的时间(大概10来秒),好像Ping和Firefox又获得了域名的IP(可是抓包没看到).

我基本确定是那条iptables的规则影响了IPV6下的DNS解析,可是我的规则里甚至还专门去检测了是IPV4协议,标准20字节长度的IP头才继续匹配,为什么会对IPV6产生影响呢?
IPV6的防火墙不是应该由IP6tables来管理吗?iptables我记得只对IPV4起作用啊,实在想不出原因了,特来请教.
1880 次点击
所在节点    问与答
10 条回复
AstroProfundis
2014-07-24 21:06:26 +08:00
ip6tables
izoabr
2014-07-24 21:12:06 +08:00
用同样的规则,Insert一条到你那条规则前面,做一下ulog,看看包有什么不一样的。
leavic
2014-07-24 21:16:39 +08:00
@izoabr 我是在windows下用wireshark抓包的,Openwrt没有ulog.这条规则已经是最后insert进去的了,再insert一条抓包看了一下,结果没区别.
leavic
2014-07-24 21:17:36 +08:00
@izoabr 我还专门用ip6tables看了一下PREROUTING表,确实是空的,实在不明白为什么会影响到IPV6.
izoabr
2014-07-24 21:26:10 +08:00
@leavic 哦,看来条件有限,另外GFW也能干扰IPV6吧?
izoabr
2014-07-24 21:27:05 +08:00
leavic
2014-07-24 21:30:47 +08:00
@izoabr 这个只是让我意外发现了几个以前没发现的GFW污染IP,对付的方法和IPV4下一样,还是用iptables的string模块匹配过滤.
这次要对付的是伪造正常ResponseCode但没有RRs的空响应包,其实这本来没啥难度的,IPV4下规则都生效了,就是不知道怎么惹到IPV6了.OpenWRT有IPV6支持,Windows又很蛋疼,一旦发现IPV6支持的路由就默认只使用IPV6,结果就完了.
恐怕还得想办法改改规则.
izoabr
2014-07-24 21:34:41 +08:00
@leavic 你看看是不是本地有DNS Cache

#ipconfig /flushdns
leavic
2014-07-24 21:35:33 +08:00
@izoabr 和这个完全无关....
izoabr
2014-07-24 21:38:34 +08:00
@leavic 哦,那就不懂了,只能精神上支持你了!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124355

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX