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

2023-06-24 11:14:33 +08:00
 OLOrz1984

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

3776 次点击
所在节点    宽带症候群
29 条回复
patrickyoung
2023-06-24 12:48:19 +08:00
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
2023-06-24 13:46:10 +08:00
@patrickyoung https://gist.github.com/OLOrz996/a1ab135b6c92e87575d1ef10d1c6b4c6 ,这个上午就打出来了,有获取到 prefix ,但是最后还是报错了
raysonx
2023-06-25 02:00:14 +08:00
先说结论,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
2023-06-25 06:12:15 +08:00
# 允许 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
2023-06-25 10:00:53 +08:00
@raysonx 感谢,看来全国电信都是这样的问题……之前看见有人发上海电信的 duid 也是 6660

@neroxps 和这个无关哈,我 v6 防火墙没有任何规则,是裸奔的
KexyBiscuit
2023-06-25 12:36:44 +08:00
@OLOrz 并不是,我这上海电信是 serverid: 00010006 7355b278 (link-layer address redacted),符合规范
OLOrz
2023-06-25 12:44:31 +08:00
@KexyBiscuit 我是看到恩山这个帖子的,截图里也是 6660
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8278390
KexyBiscuit
2023-06-25 13:31:48 +08:00
@OLOrz 看来不同 BRAS 情况还不一样,可能是新采购的设备有问题?
OLOrz
2023-06-25 15:32:09 +08:00
@KexyBiscuit 也有可能,不过我已经联系装维了,但是感觉找他们也没用。目前不知道该从什么渠道去问问
letmefly
2023-06-26 07:40:06 +08:00
估计 op 是用软路由,既然如此,为什么不用 CHR6.48.7 Long-term 版本?免费的正版,bug 还少。
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
2023-06-26 18:05:40 +08:00
@Waffle 不会啊,一直能用。你不理它,它会每天给你续命的,或者你可以重新生成 ID ,再来 2 个月的免费授权。
letmefly
2023-06-26 18:08:29 +08:00
哦,你说的免费限速到 1Mbps 只是在你激活之前,例如你用 p1 授权到期了,它不会回到重新限速 1Mbps 的。
jcxq5200
2023-06-26 22:39:54 +08:00
我之前 7.2 获取 ipv6 没有问题,但是我把 IPv6 关了。近期成都电信升级新型城域网,我 ros 也升级到了 7.10 ,打算在 ros 里开启 ipv6 结果和楼主一样的情况。
OLOrz1984
2023-06-27 22:09:51 +08:00
@jcxq5200 要是有解决办法了麻烦给说一声哈
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
2023-06-28 12:22:46 +08:00
我觉得应该让运营商那边修复这个问题,ROS 这边改的话总觉得很奇怪……
OLOrz1984
2023-06-30 01:30:12 +08:00
@raysonx 感谢,如果有空的话就麻烦帮忙提个 bug 吧,随缘处理了。反正我也给装维反馈了,但是感觉用处不大。
OLOrz1984
2023-07-08 11:47:29 +08:00
最新情况:
1. 给 mikrotik 反馈了,目前没有响应。https://help.mikrotik.com/servicedesk/servicedesk/customer/portal/1/SUP-120873
2. 也给电信反馈了问题,但目前刚流转到分公司装维那里,说帮我反馈给后台。
OLOrz1984
2023-07-08 17:33:14 +08:00
再次更新情况
我描述的问题:
https://sm.ms/image/fOLrcimdnuaRENW
电信的回复:
https://sm.ms/image/YJ6VlxT1Edrp8jD
响应很快,但是看起来电信并没有关注 server id 的问题,只是草草检查了一下……果然不能抱有太高的期望……

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

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

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

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

© 2021 V2EX