先说结论,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 忽略这个错误就行了。