路由器丢弃指定域名 AAAA 记录

2018-09-27 16:40:44 +08:00
 Liqianyu

# IPv6 DNS Drop #
# Netflix DNS AAAA Drop #

iptables -t raw -A PREROUTING  -p udp --dport 53 -m string --hex-string "|03|www|07|netflix|03|com|00001c|" --algo bm -j LOG --log-prefix "drop netflix dns query "
iptables -t raw -A PREROUTING -p udp --dport 53 -m string --hex-string "|03|www|07|netflix|03|com|00001c|" --algo bm -j DROP
ip6tables -t raw -A PREROUTING  -p udp --dport 53 -m string --hex-string "|03|www|07|netflix|03|com|00001c|" --algo bm -j LOG --log-prefix "drop netflix dns query "
ip6tables -t raw -A PREROUTING -p udp --dport 53 -m string --hex-string "|03|www|07|netflix|03|com|00001c|" --algo bm -j DROP

添加到 /etc/firewall.user 然后重启防火墙

如此,即可防止 Netflix 通过 IPv6 直连导致代理失效。

被 TLS SNI RESET 的网站同理。

11373 次点击
所在节点    宽带症候群
44 条回复
wacke
2018-09-30 13:25:10 +08:00
@Liqianyu
几个月前还没有移动 IPv6,体验 IPv6 就只能 6in4 隧道了,但是 6in4 隧道被墙了,所以就用 Tinc 来实现转接了。现在有了移动 IPv6,情况就更复杂了,原生的 IPv6 基本无法实现策略路由。。。
Liqianyu
2018-09-30 14:00:42 +08:00
@wacke
我觉得你先要做下减法,既然有原生 IPv6 了。再用 Tinc 实现 6in4 有什么意义。6in4 只是过渡方案。目前在 IPv4 依旧主导的情况下我觉得没必要使用 IPv6 代理。
wacke
2018-09-30 14:19:14 +08:00
@Liqianyu 我的目标是实现跟 IPv4 一样的策略路由方案,被墙的及非常慢的走 tinc,其他剩下的走原生 IPv6。。。
Liqianyu
2018-09-30 15:05:30 +08:00
@wacke
被墙或非常慢的走 IPv6 代理。用 Tinc + 6in4 实现 IPv6 代理感觉有点偏。因为 6in4 毕竟是过渡技术。目前 IPv6 想要用 IPv4 一样的方案实现代理。应该必须要 NAT66,所以 IPv6 下具体怎么代理还需要再想一下...目前还是回退 IPv4 比较靠谱。
wacke
2018-09-30 15:30:25 +08:00
@Liqianyu 所以目前我用 NAT6 了,用下来感觉也还可以,以后如果有新的方案,干掉 NAT6 就可以了。。。
Liqianyu
2018-09-30 15:48:03 +08:00
@wacke
NAT66 也会引起性能损失和丧失 IPv6 特性。不优雅。
我目前是不代理 IPv6,被 SNI Reset 的站就丢弃掉 AAAA 记录强制 IPv4,目前上这个待遇并且支持 IPv6 的站不多,估计全球也就是百八十个以内。常用的也就十来个。
未来 ESNI 普及应该就不需要了。因为要屏蔽估计会和 IPv4 一样解决。那样就自动回退了。
等到 IPv6 Only 的时候怎么样还不好说呢。肯定会有新方案出来。
如果要代理 IPv6,先等大部分 VPS 都支持 IPv6 再说吧。目前就算支持,路由也不行。速度还不如 IPv4,那我何必要走 IPv6。
IPv6 的用处不是拿来翻墙和上 Web 的。解决 IPv4 地址短缺和物联网才是它真正发挥作用的地方。
wacke
2018-09-30 16:05:00 +08:00
@Liqianyu 现阶段我就不去计较这些了,目前多链路 IPv4&IPv6 能用上就先用着再说,后面碰到问题再决定要不要做减法就是了。。。
Maskeney
2018-10-04 14:15:58 +08:00
感谢楼主提供思路,我最近也被这问题困扰,一旦使用 ipv6 地址网关透明代理直接失效。
Maskeney
2018-10-04 14:26:22 +08:00
@Liqianyu 不如维护一份名单吧,让我等懒人直接无脑导入 ( x
jm92
2018-10-04 20:05:17 +08:00
@Liqianyu 大佬,你知道这个怎么解决吗?我的是 Openwrt cc 的 k2p
iptables v1.4.21: Couldn't load match `string':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
Liqianyu
2018-10-05 18:51:15 +08:00
@Maskeney
考虑中,不过意义不大。因为这应该只是暂时的。如果长期继续下去。
可能需要在维护一份 GFW SNI Reset List

@jm92
iptables -m string -h
如果提示 No such file or directory
尝试安装
iptables-mod-filter
kmod-ipt-filter
不行就需要升级固件了。
Maskeney
2018-10-05 22:47:58 +08:00
@Liqianyu 对 iptables 不是很了解,检索了半天也还是有点不太明白,请教一下示例中的|03|、|07|、|03|应该是分别对应随后的字符数,那么|00001c|是做什么的?另外这个整体为什么要加上|数字|这种格式?
Maskeney
2018-10-05 22:49:04 +08:00
另外 lz 似乎被降权了,收不到回复的通知
jm92
2018-10-06 10:45:38 +08:00
@Liqianyu 谢谢,我弄好了
如果我想丢弃谷歌整个域名段的 AAAA,hex-string 应该怎么设置?比如,单个规则丢弃 google.com 可以丢弃包括所有子域名在内吗
iwtbauh
2018-10-06 15:24:21 +08:00
sock5h 无所畏惧
直接在 vps 上解析域名才是正解
Liqianyu
2018-10-19 10:37:26 +08:00
@Maskeney
应该是被降权了。有办法恢复?
关于你的问题,|03|是代表长度,是十六进制。
Type Code
Any 00ff
A 0011
CNAME 0005
MX 000f
AAAA 001c
NS 0002
SOA 0006

@j
Liqianyu
2018-10-19 10:38:43 +08:00
@jm92
丢弃 google.com 的域名,会泛域名匹配的。
leeeboo
2018-11-29 16:25:56 +08:00
@Liqianyu 确实如果有一个 iptables 的脚本就好了,一键丢弃所有被 reset 的域名的 AAAA
huaxie1988
2018-12-20 13:23:01 +08:00
@leeeboo 用 iptables 丢弃会导致域名解析慢
huaxie1988
2018-12-20 13:24:30 +08:00
@leeeboo 安装 unbound 监听在非 53 端口,在 unbound 的配置文件中添加 private-address: ::/0 即可过滤 aaaa 解析且不影响解析速度,再在 dnsmasq 里面把需要只解析 v4 的丢给 unbound 解析。

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

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

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

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

© 2021 V2EX