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

IPv6 导致 xbox 无法正常走旁路由,导致只能关闭 IPv6,有无其他解法

  •  
  •   goodryb · 307 天前 · 4158 次点击
    这是一个创建于 307 天前的主题,其中的信息可能已经有所发展或是发生改变。
    家里使用的是联通宽带,有公网 IP, 用的是光猫直接拨号,旁路由是其它路由器刷的 openwrt,XBOX 的网关和 DNS 都指向了旁路由,可以正常 youtube 和 Netflix 。

    昨晚回家发现 youtube 打不开,看了下 xbox 的网络设置,发现居然有 ipv6,查看了下光猫的配置,确实是 ipv4+ipv6,局域网的 window 、手机等都能获取到 ipv6 。


    回到问题上,xbox 里面是可以手动配置 ipv4 地址、网关以及 DNS,但是无法手动配置 ipv6 或者关闭 ipv6 。 而且好像 ipv6 的权重比 ipv4 高,流量都直接走 ipv6 到不了旁路由。

    没办法只能在光猫里面把 ipv6 分配和路由宣告都关闭了,整体恢复到 ipv4 状态。所以想问下大家
    1 、有没有办法可以在 xbox 里面关闭 ipv6
    2 、如果 1 无法关闭,有没有办法让其 ipv6 也能走旁路由

    由于还在玩 PT,所有 ipv6 能开还是想开一下
    第 1 条附言  ·  307 天前
    查看了相关回复以及资料,xbox 的 ipv6 是无法关闭的。

    测试了一个可能的解决办法,在光猫的 ipv6 配置中把默认的 ipv6 dns 改为静态,并设置一个不可达的地址,从而阻断 ipv6 地址的解析,使得网络访问回落到 ipv4 上。


    这种情况下 pt 客户端是正常分配 ipv6 地址,也可以连接到其它 ipv6 的 peer 。不过由于不清楚光猫的防火墙是怎么设置的,这些 pt 客户端的 ipv6 地址从外网都是无法连接,所以只能单向出站。

    总体来看,除非有强烈的 ipv6 需求,比如无公网 ipv4 想直连内网的终端,否则还是关闭 ipv6 最省事。
    42 条回复    2021-11-30 11:27:16 +08:00
    EPr2hh6LADQWqRVH
        1
    EPr2hh6LADQWqRVH  
       307 天前
    一是所有路由不宣告公网地址,让翻墙路由宣告私网 v6 地址,这样优先级比 v4 低。
    二是翻墙路由做 nat6 把 v6 流量也翻一翻,让那些纯 v6 流量不撞墙。
    jinhan13789991
        3
    jinhan13789991  
       307 天前
    那就买个能指定网关的路由器拨号,或者把胖路由做主路由。
    szdosar
        4
    szdosar  
       307 天前
    另外, [重定向 53 端口到 AdGuardHome ( ipv6 需要开启 ipv6 nat redirect 否则如果客户端使用 ipv6 过滤无效,不以 dnsmasq 为上游 ssr-plus 失效)] 。参阅: https://github.com/rufengsuixing/luci-app-adguardhome
    cwbsw
        5
    cwbsw  
       307 天前
    主路由上 REJECT 所有 443 、80 端口的 IPv6 出站流量,简单粗暴,还不影响 BT 。
    goodryb
        6
    goodryb  
    OP
       307 天前
    @avastms #1 好的,不过第二点问题是现在 xbox 里面自动获取 ipv6 网关是光猫的,ipv6 流量根本不走旁路由
    @szdosar #2 大概意思我明白了,就是通过丢弃 ipv6 的 dns 查询让 ipv6 不可用,这样就继续走 ipv4 了, 而 pt 之类的是直接点对点 ip 地址连接,不影响 ipv6 的流量。不过这样就要把 ipv6 的流量都劫持到旁路由或者 adguard 上。
    goodryb
        7
    goodryb  
    OP
       307 天前
    @cwbsw #5 主路由是光猫,我看看能不能配置这样的防火墙策略
    @szdosar #4 恩,我在研究研究
    tankren
        8
    tankren  
       307 天前
    openwrt 的 ipv6 开了?
    txydhr
        9
    txydhr  
       307 天前 via iPhone
    我是 gfwlist 列表里的网址 drop 掉所有 aaaa 记录
    Maskeney
        10
    Maskeney  
       307 天前 via Android
    无解,除非你在 DNS 层面丢掉所有 AAAA 记录,但是这样跟直接关闭 IPV6 没什么两样
    NSAgold
        11
    NSAgold  
       307 天前 via Android   ❤️ 1
    smartdns 做双栈优选
    raysonx
        12
    raysonx  
       306 天前
    是有解决办法,但是因为你是用的“旁路由”这种歪门邪道,我还是建议你关闭 xbox 所连接的网络的 IPv6 比较容易。
    goodryb
        13
    goodryb  
    OP
       306 天前
    @raysonx #12 旁路由咋就成歪门邪道了 😅 。 不过 ipv6 确实关掉了,没啥用
    raysonx
        14
    raysonx  
       306 天前
    在你现有的网络拓扑下,你没法让你的“旁路由”去宣告公网 IPv6 前缀和默认路由,因为你的公网 IPv6 前缀是由光猫下发的。
    比较完美的做法的是改变你的网络拓扑,用 OpenWrt 拨号,用策略路由去控制不同的设备走不同的路由表。其中 IPv6 这一块可以用 prefix translation 把你的本地公网 IPv6 前缀转换成境外的公网 IPv6 前缀。
    raysonx
        15
    raysonx  
       306 天前   ❤️ 1
    > 测试了一个可能的解决办法,在光猫的 ipv6 配置中把默认的 ipv6 dns 改为静态,并设置一个不可达的地址,从而阻断 ipv6 地址的解析,使得网络访问回落到 ipv4 上。

    这种方法肯定是不行的,因为 IPv4 的 DNS 也可以解析 AAAA 记录。
    Liqianyu
        16
    Liqianyu  
       306 天前   ❤️ 1
    # Disable Xbox IPv6
    ip6tables -I INPUT -p udp -m mac --mac-source XBOX_MAC --dport 547 -j DROP
    ip6tables -I INPUT -p icmpv6 -m mac --mac-source XBOX_MAC -j DROP
    whitegerry
        17
    whitegerry  
       306 天前 via iPhone
    这需求 mosdns 很简单吧,ipv6 黑洞完事。
    Jays
        18
    Jays  
       306 天前
    @Liqianyu 这个是正解,但是不知 xbox 是不是动态 mac 。 我的安卓手机不想走 ipv6,就是这么设置的。
    ihipop
        19
    ihipop  
       306 天前 via Android
    @Jays 如果想要保留 ipv6,楼上每一个人都不是正解,我就在旁路模式下即保留了 ipv6 又不影响功能
    说 2 个要点:
    radvd 支持单播模式
    radvd 支持推送默认路由的优先级
    即可使用旁路由把指定设备的默认路由夺过来了,夺过来以后要怎么弄还是不是 iptables 说了算
    guanyin8cnq12
        20
    guanyin8cnq12  
       306 天前   ❤️ 2
    梯子加 ipv6 支持。

    你这种情况,我也遇到过,之前 v6+v4, yt 可以打开,nf 死活不行。主要是梯子不支持 ipv6 。
    guanyin8cnq12
        21
    guanyin8cnq12  
       306 天前
    @Liqianyu 你这是 disable 指定客户端的 ipv6 自动获取 ip 。貌似行的通。
    wgq2633
        22
    wgq2633  
       306 天前 via Android
    我的 openwrt 路由上 dns 解析走的 dnsmasq,
    参考 https://discourse.pi-hole.net/t/solved-disable-aaaa-response-for-a-given-domain/13143 这篇帖子([SOLVED] disable AAAA response for a given domain )
    通过 "address=/example.com/::", dnsmasq 发现已经指定解析 aaaa/ipv6 到 ::,就不会再找上游解析 aaaa 记录了
    guanyin8cnq12
        23
    guanyin8cnq12  
       306 天前
    梯子加 v6,ss 设置 v6 prefer 。
    op 里 用 ipset 做 v6 分流。
    类似于这样
    ipset create gfw hash:ip hashsize 4096
    ipset create gfw_v6 hash:ip hashsize 4096 family inet6
    guanyin8cnq12
        24
    guanyin8cnq12  
       306 天前
    @wgq2633 v6 的 :: 类似于 v4 的 0.0.0.0
    whitegerry
        25
    whitegerry  
       306 天前
    用 mosdns,可以对来自 xbox 的所有 ipv6 查询响应黑洞,它只能拿到 ip4 的解析记录。
    wgq2633
        26
    wgq2633  
       306 天前 via Android
    @guanyin8cnq12
    是的,设备测 nslookup example.com 拿到有效的 v4, v6 是::
    设备测软件发现 v6 地址无效,就去连 v4 了,亲测可用
    guanyin8cnq12
        27
    guanyin8cnq12  
       306 天前
    @wgq2633 实测有效。
    Kiriya
        28
    Kiriya  
       306 天前
    XBOX 上单独接个路由并且把这个路由器的 IPV6 关掉🐶
    guanyin8cnq12
        29
    guanyin8cnq12  
       306 天前
    @Liqianyu 使能路由通告模式下,kill 掉 dhcp6s,依旧能获取 v6 地址。此方法不适于路由通告模式。
    lslqtz
        30
    lslqtz  
       306 天前
    没必要那么麻烦,将 v6 dns 指定到路由器即可
    lslqtz
        31
    lslqtz  
       306 天前
    我是 OpenWRT 的路由,光猫桥接,默认情况下 OpenWRT 应该是下发了 v4 和 v6 的路由器 DNS 给设备,而不支持 v6 的梯子对列表内的域名不会解析 v6,因此梯子也是没有影响的。
    而光猫是直接下发 IPv4 和 IPv6 的运营商 DNS,手动指定旁路由的 v4 DNS,但是因为下发了 IPv6 的运营商 DNS,优先级比 v4 高,自然导致只支持 v4 的旁路由无法正常使用
    所以只需加旁路由的 v6 DNS 进去即可
    lslqtz
        32
    lslqtz  
       306 天前
    总之光猫路由模式下如果你不在光猫接其它设备 (不包括 IPTV),那么可以直接在光猫指定旁路由 DNS,没有必要每个设备都手动设置
    光猫桥接模式下路由拨号就会接管所有流量,都是配置的问题。
    目前我自己的网络上除了梯子本身不支持 v6 外,其它网站、服务和 BT 客户端都没有影响,理论上 PT 也不会受影响
    lslqtz
        33
    lslqtz  
       306 天前
    @raysonx 不可达虽然是是流量走了 v6 造成的,但这是因为楼主的 v6 DNS 是运营商 DNS,所以会提供 AAAA 记录;而不支持 v6 的梯子基本会屏蔽 AAAA 记录,所以不会导致流量走 v6 。
    楼主手动指定了 IPv4 的 DNS,但是没有改变 v6 DNS 的设置,所以会导致大部分时候通过 v6 DNS 解析,从而流量没有经过旁路由
    lslqtz
        34
    lslqtz  
       306 天前
    @wgq2633 我觉得这个做法并不够好,所以我后面在 DNSMasq 的上游加了 SmartDNS,可以真正的返回 SOA 而不是一个无效的 IPv6 来阻止使用。
    个人觉得梯子不支持 v6 的情况会解析 v6,应该解决的为什么 DNS 会在这些特定地址给出 v6 的结果,更好的方案是一步到位支持 v6,而不是将全部 IPv6 地址给返回 AAAA,虽然目前来说影响很小
    lslqtz
        35
    lslqtz  
       306 天前
    @ihipop 如果梯子支持 v6 的话,旁路由可能确实可以也需要用这种方法。
    虽然我不是旁路由,但是能来些资料么
    Liqianyu
        36
    Liqianyu  
       306 天前
    @Jays Xbox 不是动态 MAC,也可以手动设置。
    ihipop
        37
    ihipop  
       306 天前 via Android   ❤️ 1
    @lslqtz https://linux.die.net/man/5/radvd.conf

    单播模式即 clients 配置段落,指定期望被单播的本地局域网 on link 地址,也就是 fe80 那个地址

    defaultpreference 即指定默认路由优先级,如果你不是旁路,只需要 clients 开启单播即可给指定设备分配 v6,其他非指定设备关闭 v6,也能解决楼主问题无需动任何防火墙配置或者 dns 过滤。
    DopaminePlz
        38
    DopaminePlz  
       305 天前
    @Liqianyu 我的是小米盒子,直接是把盒子 MAC 地址的所有 IPv6 访问都 DROP 了。547 是 DHCPv6 端口吧?可以 DROP SLAAC 吗?
    Chingim
        39
    Chingim  
       194 天前
    楼主你好, 问个网络问题.
    我是在路由器设置了 v2ray 的透明代理(做了分流, 对 tcp/udp 都做了支持), 家里的终端可以访问并播放 youtube.
    但是 xbox 不能访问游戏商店, youtube 能播放视频, 但是登录不了(访问 youtube.com/activate 输入码后, 网页显示登录成功, 但是 xbox 上的 youtube 应用显示登录出现了问题, 请重试). 不知道这些坑你有没有遇到呢:

    1. 翻墙后无法访问游戏商店, 是不是有些地址需要直连, 但是 v2ray 规则匹配到了代理上
    2. youtube 能播放但是登录失败. 是不是有些地址需要代理, 但是 v2ray 的规则走了直连


    我在路由器上看了日志, 没看到特别有用的信息.
    goodryb
        40
    goodryb  
    OP
       191 天前
    @Chingim #39 我没有遇到你这样的问题,我使用的是 openwrt 做旁路哟,插件是 SSR+,代理方式是 gfw 列表, 关闭 ipv6 , xbox 网关和 dns 都设置为旁路由的 IP
    sherlock1122
        41
    sherlock1122  
       178 天前
    @goodryb 最后怎么弄得?我也想保留 ipv6 , 同时让 ipv6 穿墙。当前开了 ipv6 ,youtube 视频就播放不了了。
    Shintaku
        42
    Shintaku  
       177 天前
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4012 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:45 · PVG 16:45 · LAX 01:45 · JFK 04:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.