首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
拉勾
V2EX  ›  宽带症候群

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

  •  
  •   updateing · 54 天前用 Android 发布 · 1684 次点击
    这是一个创建于 54 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我这边有电信原生 v6 和一条隧道 v6,局域网里除了 NAS 走原生 v6,其他都走隧道。

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

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

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

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

    iptables -A OUTPUT -o eth0 -p udp --dport 53 -m string --hex-string "|08|bilibili|03|com|00001c|" --algo bm -j DROP
        18
    5460   54 天前
    这个运行在路由器上的 SmartDNS 支持自定义黑名单,但我没试过 IPv6
    https://github.com/pymumu/smartdns/
        19
    Cipool   54 天前 via Android
    @Love4Taylor 这路由也太诡异了,北京教育网的服务器,北京移动居然绕香港 hkix,再进教育网,明明 cmcc 和教育网有直连的 peer
        20
    updateing   53 天前 via Android
    @BOYPT 有些应用需要知道自己的真实地址,比如某些 PT tracker 依赖客户端主动上报 IPv6 地址,不会自动获取。所以能在客户端得到真实地址比较好……
        21
    cwbsw   53 天前
    @updateing 你这个需求其实不用去过滤 DNS,分配默认路由的网段地址,另一个出口走 NAT 出去。另外如果只有 NAS 需要 Native IPV6,还有一个办法就是在 NAS 上单独拨号,当然要 ISP 支持双拨才可以。
        22
    laucenmi   53 天前
    跟 ipv4 上一样使用 dnsmasq+ipset
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   987 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1