是否有可以丢弃特定前缀 AAAA 解析结果的 DNS 转发程序?

2019-01-27 10:41:00 +08:00
 updateing
我这边有电信原生 v6 和一条隧道 v6,局域网里除了 NAS 走原生 v6,其他都走隧道。

最近不少我常用的国内网站(目前发现 B 站和酷安)都开始提供 IPv6 支持,导致大部分设备的流量会走隧道绕一大圈,上网体验急剧下降。

想通过修改路由器 DNS 程序的方式把国内 v6 前缀的解析结果都过滤掉,以此避免问题。但谷歌上搜 dns server filter aaaa by prefix 之类的关键词并没有找到现成方案。BIND 可以设置 filter-aaaa,但是不知道怎么按前缀过滤。

请问一下各位是否有现成的解决方案呢?
5117 次点击
所在节点    宽带症候群
22 条回复
bearice
2019-01-27 10:57:52 +08:00
powerdns recursor 可以用 lua 脚本做,
或者改 dnsmasq 的代码也可以 参见 https://gist.github.com/bearice/7d3dc0e63e003d752622 (这个 patch 是过滤所有,不过可以改改参数让他只过滤某些域)
或者用这个方法起两个 unbound https://nlnetlabs.nl/pipermail/unbound-users/2018-January/010444.html
leido
2019-01-27 11:09:58 +08:00
楼主能报一下坐标吗?我们这里 B 站还没有 v6...
leido
2019-01-27 11:10:29 +08:00
ok,羡慕深圳
Love4Taylor
2019-01-27 11:35:22 +08:00
@leido #3 不用羡慕, 现在 B 站的 v6 很多人都连不通...
http://link.acg.tv/forum.php?mod=viewthread&tid=20616
updateing
2019-01-27 11:43:03 +08:00
@bearice 好的,看起来起一个 Unbound 用 private-address 就可以过滤范围了,应该是最简单的方法。谢谢!
happylty
2019-01-27 11:58:51 +08:00
好像某个强做得挺好的,就是过家机密
BOYPT
2019-01-27 12:05:13 +08:00
设置路由表让国内 ip 段走原生 v6 不就好了么...
updateing
2019-01-27 12:19:33 +08:00
@BOYPT 由于单从路由器上控制不了设备用哪个源 IP 发包,而两种接入渠道又要求必须是自己的前缀才能传得出去(当然)所以我只给每个设备分期望的那一种前缀,要么原生,要么隧道,这样没法用路由表。

就算是要用两种前缀全部下发、设备端配路由表选源 IP 这个方法,也还是有 iOS 这种硬骨头处理不了……
gaoyuzhe22
2019-01-27 12:45:12 +08:00
我自己试过的,unbound+dnsmasq
https://longqiugyz.blogspot.com/2019/01/dnsaaaa.html
vibbow
2019-01-27 12:50:10 +08:00
LGA1150
2019-01-27 12:53:54 +08:00
pcap-dnsproxy
BOYPT
2019-01-27 13:08:18 +08:00
@updateing #8
好像还可以下发 ULA 局域前缀, 然后让路由器 NAT66 选路...
wweir
2019-01-27 13:18:01 +08:00
前两天刚发布的 sower,虽然不是为这个场景开发的,但刚好可以满足这个需求。
里面的 http_ping 逻辑了解一下,智能检测的结果,远比传统的规则更有效
github.com/wweir/sower
yexm0
2019-01-27 16:38:15 +08:00
@Love4Taylor 你们好像只有视频 CDN 是上了 V6,而且好像是放在湖南那边的,延迟比 V4 大多了.
yexm0
2019-01-27 16:38:34 +08:00
Love4Taylor
2019-01-27 16:42:21 +08:00
@yexm0 主站在部分地区也解析到 v6 了 CNAME 是 bj-cmcc-v4v6.biliapi.com, 见我上面附的链接
xk0n
2019-01-27 16:48:59 +08:00
可以使用 iptables 过滤

iptables -A OUTPUT -o eth0 -p udp --dport 53 -m string --hex-string "|08|bilibili|03|com|00001c|" --algo bm -j DROP
5460
2019-01-27 18:28:26 +08:00
这个运行在路由器上的 SmartDNS 支持自定义黑名单,但我没试过 IPv6
https://github.com/pymumu/smartdns/
Cipool
2019-01-27 21:27:38 +08:00
@Love4Taylor 这路由也太诡异了,北京教育网的服务器,北京移动居然绕香港 hkix,再进教育网,明明 cmcc 和教育网有直连的 peer
updateing
2019-01-28 12:45:33 +08:00
@BOYPT 有些应用需要知道自己的真实地址,比如某些 PT tracker 依赖客户端主动上报 IPv6 地址,不会自动获取。所以能在客户端得到真实地址比较好……

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

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

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

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

© 2021 V2EX