V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OLOrz1984
V2EX  ›  宽带症候群

求助关于 ros v7 获取不了 ipv6 前缀的问题

  •  
  •   OLOrz1984 · 2023-06-24 11:14:33 +08:00 · 3748 次点击
    这是一个创建于 500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    成都电信。光猫拨号 or ikuai 均正常。
    使用 ros 配置 dhcpv6 client 获取 v6 前缀时卡 searching ,不能 bound 。
    debug 日志显示,每个端口前两次可以获取到 prefix ,但是最后都会报错提示 “bad server DUID”。两次之后便提示“NOPREFIXAVAIL”。
    之前有在恩山看到类似的问题,但是似乎也没有解决。

    29 条回复    2024-06-07 21:46:01 +08:00
    patrickyoung
        1
    patrickyoung  
       2023-06-24 12:48:19 +08:00 via iPhone
    1. log 那里 topic: dhcp, dest: memory ,打一下 ros 的 dhcp 包看一下
    2. RFC3633: https://datatracker.ietf.org/doc/html/rfc3633

    > The requesting router subnets the delegated prefix and assigns the
    longer prefixes to links in the subscriber's network. In a typical
    scenario based on the network shown in Figure 1, the requesting
    router subnets a single delegated /48 prefix into /64 prefixes and
    assigns one /64 prefix to each of the links in the subscriber
    network.
    > An IA_PD is a construct through which a delegating router and a
    requesting router can identify, group and manage a set of related
    IPv6 prefixes.

    成都电信我没记错只给了 /64 ,我现在换了其他运营商了,印象中 PD 是不能继续再分了。

    供参考。
    OLOrz1984
        2
    OLOrz1984  
    OP
       2023-06-24 13:46:10 +08:00
    @patrickyoung https://gist.github.com/OLOrz996/a1ab135b6c92e87575d1ef10d1c6b4c6 ,这个上午就打出来了,有获取到 prefix ,但是最后还是报错了
    raysonx
        3
    raysonx  
       2023-06-25 02:00:14 +08:00   ❤️ 3
    先说结论,OP 所使用的当地运营商的 DHCPv6 服务器返回的消息格式存在 bug 。

    按照 DHCPv6 的规范,服务器和客户端的 DUID 的组成格式为:2 个字节的 type code ,外加 1-128 字节可变长度的 identifier
    (见 https://datatracker.ietf.org/doc/html/rfc8415#section-11 )。

    而 OP 给出的日志:
    10:28:29 dhcp,debug,packet -> clientid: 00030001 0050568c 5e2f
    10:28:29 dhcp,debug,packet -> serverid: 6660

    客户端( RouterOS )的 DUID 是 00030001 0050568c 5e2f ,服务端的 DUID 是 6660 。
    按照规范解读,客户端的 type code 是 0003 (DUID-LL),hardware type 是 0001 ,后面的 0050568c 5e2f 是 link-layer 地址。
    而服务端给的 DUID 是 6660 ,这只能解读为 type code 是 6660 ( RFC 中没有定义,应该是乱填的),然后没了。按照 RFC 的规定后面还要跟 1-128 字节的 identifier 。

    所以结论就是,你的运营商的 DHCPv6 服务器响应的消息里 Server DUID 是乱填的(不知道谁开发服务器连 RFC 都不遵守),连长度都不对。RouterOS 报错且忽视了服务器的回应。

    根本的解决方法是让运营商修服务器(可能性太低)或者换运营商。但我建议提出向 RouterOS 提一个 bug 吧,让 RouterOS 忽略这个错误就行了。
    neroxps
        4
    neroxps  
       2023-06-25 06:12:15 +08:00 via iPhone
    # 允许 DHCPv6 客户端尝试前缀代理
    /ipv6 firewall filter add action=accept chain=input \
    comment="Accept DHCPv6 client prefix delegation" \
    dst-port=546 protocol=udp src-address=fe80::/10

    先确认 ipv6 dhcp client 端口在防火墙那边 input 是允许先吧。
    OLOrz
        5
    OLOrz  
       2023-06-25 10:00:53 +08:00
    @raysonx 感谢,看来全国电信都是这样的问题……之前看见有人发上海电信的 duid 也是 6660

    @neroxps 和这个无关哈,我 v6 防火墙没有任何规则,是裸奔的
    KexyBiscuit
        6
    KexyBiscuit  
       2023-06-25 12:36:44 +08:00   ❤️ 1
    @OLOrz 并不是,我这上海电信是 serverid: 00010006 7355b278 (link-layer address redacted),符合规范
    OLOrz
        7
    OLOrz  
       2023-06-25 12:44:31 +08:00
    @KexyBiscuit 我是看到恩山这个帖子的,截图里也是 6660
    https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8278390
    KexyBiscuit
        8
    KexyBiscuit  
       2023-06-25 13:31:48 +08:00
    @OLOrz 看来不同 BRAS 情况还不一样,可能是新采购的设备有问题?
    OLOrz
        9
    OLOrz  
       2023-06-25 15:32:09 +08:00
    @KexyBiscuit 也有可能,不过我已经联系装维了,但是感觉找他们也没用。目前不知道该从什么渠道去问问
    letmefly
        10
    letmefly  
       2023-06-26 07:40:06 +08:00
    估计 op 是用软路由,既然如此,为什么不用 CHR6.48.7 Long-term 版本?免费的正版,bug 还少。
    Waffle
        11
    Waffle  
       2023-06-26 11:35:08 +08:00
    @letmefly CHR 免费授权是限速到 1Mbps 的吧,现在不一样了么?

    官网: https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR#CloudHostedRouter,CHR-Freelicenses
    letmefly
        12
    letmefly  
       2023-06-26 18:05:40 +08:00
    @Waffle 不会啊,一直能用。你不理它,它会每天给你续命的,或者你可以重新生成 ID ,再来 2 个月的免费授权。
    letmefly
        13
    letmefly  
       2023-06-26 18:08:29 +08:00
    哦,你说的免费限速到 1Mbps 只是在你激活之前,例如你用 p1 授权到期了,它不会回到重新限速 1Mbps 的。
    jcxq5200
        14
    jcxq5200  
       2023-06-26 22:39:54 +08:00 via iPhone
    我之前 7.2 获取 ipv6 没有问题,但是我把 IPv6 关了。近期成都电信升级新型城域网,我 ros 也升级到了 7.10 ,打算在 ros 里开启 ipv6 结果和楼主一样的情况。
    OLOrz1984
        15
    OLOrz1984  
    OP
       2023-06-27 22:09:51 +08:00
    @jcxq5200 要是有解决办法了麻烦给说一声哈
    raysonx
        16
    raysonx  
       2023-06-28 10:42:08 +08:00
    不知道 OP 所使用的 ROS 具体版本和硬件是什么,可以试试给 MikroTik 提一 bug 让其对 Server DUID
    的检查不要那么严格: https://help.mikrotik.com/servicedesk/servicedesk/customer/portal/1
    或者我来代为提交 bug 也可以,不过 MikroTik 对个人用户提的 bug 响应时间很慢就是了。
    dfly0603
        17
    dfly0603  
       2023-06-28 12:22:46 +08:00 via iPhone
    我觉得应该让运营商那边修复这个问题,ROS 这边改的话总觉得很奇怪……
    OLOrz1984
        18
    OLOrz1984  
    OP
       2023-06-30 01:30:12 +08:00
    @raysonx 感谢,如果有空的话就麻烦帮忙提个 bug 吧,随缘处理了。反正我也给装维反馈了,但是感觉用处不大。
    OLOrz1984
        19
    OLOrz1984  
    OP
       2023-07-08 11:47:29 +08:00
    最新情况:
    1. 给 mikrotik 反馈了,目前没有响应。https://help.mikrotik.com/servicedesk/servicedesk/customer/portal/1/SUP-120873
    2. 也给电信反馈了问题,但目前刚流转到分公司装维那里,说帮我反馈给后台。
    OLOrz1984
        20
    OLOrz1984  
    OP
       2023-07-08 17:33:14 +08:00
    再次更新情况
    我描述的问题:
    https://sm.ms/image/fOLrcimdnuaRENW
    电信的回复:
    https://sm.ms/image/YJ6VlxT1Edrp8jD
    响应很快,但是看起来电信并没有关注 server id 的问题,只是草草检查了一下……果然不能抱有太高的期望……
    neroanelli
        21
    neroanelli  
       2023-07-12 16:19:22 +08:00
    我有 3 台 mikrotik 设备,其中 1 台连接 1 根电信和 1 根联通宽带,其他 2 台各自连接 1 根电信宽带。
    现在的情况是:
    neroanelli
        22
    neroanelli  
       2023-07-12 16:27:56 +08:00
    @neroanelli
    1 、联通宽带可以获取到 ipv6
    2 、2 根电信宽带可以获取到 ipv6
    3 、1 根电信宽带 2-3 个月以前可以获取到 ipv6 ,但是现在获取不到了,故障信息和你的一致。
    4 、至于日志信息,无法获取 ipv6 的那台 mikrotik 的信息和你提供的差不多。其他能正常获取的 server id 则正常。
    5 、对比了 3 组电信宽带的光猫设置,internet 连接都是桥接。但是有一个区别是:无法获取 ipv6 的那台光猫,itv 的设置是获取 ipv4/ipv6 ,其他的 itv 都是获取 ipv4 。但是我现在还没找到方法去修改这台光猫的 itv 参数,也无法验证这个设置是否有影响。
    6 、区域位置和你一样,看到你的帖之后才发现有一台获取不到了 ipv6 。信息不一定准确和完整,可以作参考。
    neroanelli
        23
    neroanelli  
       2023-07-12 16:37:05 +08:00
    @neroanelli
    itv 和 internet 其实做了 vlan 隔离,不应该是这个问题。另外我的 3 台设备在不同的区域,估计和不同区域的电信终端设备配置有关了。
    OLOrz1984
        24
    OLOrz1984  
    OP
       2023-07-12 22:12:06 +08:00
    @neroanelli
    首先确认了下,我的 itv 是 ipv4 。
    然后根据之前电信工程师沟通的情况,华府大道这边 6 月有两次割接。我感觉可能是这个导致。
    但是他对 BAS 那边不清楚,也只能帮我反馈,等后台的人处理。
    neroanelli
        25
    neroanelli  
       2023-07-12 22:35:49 +08:00 via iPhone
    @OLOrz1984 #24 恩,我的三根电信分别在高新、双流、天府新区,就天府新区的获取不到了
    binmiui
        26
    binmiui  
       364 天前
    @OLOrz1984 挖个坟,解决没有呢
    jalena
        27
    jalena  
       314 天前
    @neroanelli 龙泉驿这边也获取不到,但宽带拨号能获取到 IPv6
    BI4NBN
        28
    BI4NBN  
       209 天前
    @OLOrz1984 这个问题要反馈给 华为 中兴 bras 运维那边才可以 也就是说起码是市级管理员
    ghdong
        29
    ghdong  
       150 天前 via iPhone
    浙江嘉兴电信也中招,vbras 应该是中兴 v6000 ,这几天老设备还能搜到,这几天消失了就剩 v6000 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:12 · PVG 12:12 · LAX 20:12 · JFK 23:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.