运营商使用中兴 v6000, Mikrotik RouterOS 无法获得 IPv6 前缀

2023-12-08 12:34:36 +08:00
 supermaxisme

提供一个无法获得 IPv6 前缀的可能原因,但是暂时无解。

宽带运营商最近割接,原来使用 HW 的接入,割接之后使用中兴的 v6000 (虚拟化的) 路由器:Mikrotik RB4011 ,Ros 7.11 ,光猫桥接。

割接之前一切正常,可以获得/56 前缀,割接之后无法获得前缀。

报障之后运维不懂(但是态度良好),一层一层向上反应,估计是到了中心机房,机房运维了解到之后表示“不可能”。 遂抓了账号的 log ,发现已经分配了两个/56 前缀和一个/64 地址(为啥这样后面说)。

本地依然看不到前缀,一直是 searching...状态。

配合机房运维抓包(机房抓 debug 信息,我在以太网口抓包): 机房运维依然能看到响应了 DHCPv6 ,我这边依然看不到前缀。 看了一下包,发现 ROS 发了 solicit ,机房回复了 reply (含 IA 和前缀),ROS 又发了一次 solicit ,机房再次回复 relay (含有不同的 IA 和前缀). ROS 再发 solicit 收到的回复就都是 no prefix available 了。

打开 ROS logging debug dhcp ,看到 ROS 收到 replay 之后报错“bad server DUID". 发现运营商 replay 包中的所有 server DUID 都是 6660 ,type unknown.

于是就破案了...ROS 因为上端设备回复的 server DUID ”不规范“ 没有处理包信息,丢弃了.......

于是乎解释了为什么机房运维看到其他用户都分了一个/56 前缀,而我分配了两个。 于是乎解释了为什么割接之后得不到前缀? 因为之前 HW 设备是硬件设备,使用 LLT 方式生成 server DUID ,这样保证了一定是有效的 DUID 。

看到了另一个网上的帖子,发现这不是个例。( https://www.77bx.com/358.html

但是 ROS 因为 server DUID 或者 server DUID type 触发 bad server DUID 未知,已经发邮件给 Mikrotik 要求澄清。

查阅 RFC 8415 ( https://datatracker.ietf.org/doc/html/rfc8415#section-11), 其中的表述是:

Clients and servers MUST NOT restrict DUIDs to the types defined in this document, as additional DUID types may be defined in the future.

目前不确定是 ROS 还是中兴在实施 IPV6 协议过程没有完全遵守 RFC8415.

帖子意在与给各位获取不到 prefix 的伙伴提供一个新的思路。 部分设备对于 server DUID 不校验,所以不受这个问题的影响(如 openWRT 和电信自己的光猫) 感谢之前提到的帖子的作者,我给他发了邮件通报了我目前的排故过程和进展。

peace.

3227 次点击
所在节点    宽带症候群
32 条回复
supermaxisme
2023-12-10 18:18:07 +08:00
@ranaanna /64 叫做地址哈哈
拿到了 所以路由器本身是通的
但是 LAN 上就没有全球单播地址了
supermaxisme
2023-12-10 18:20:08 +08:00
@jason96 运维一般都不是很了解 直接告诉他们联系机房
supermaxisme
2023-12-10 18:20:29 +08:00
@jason96 运维一般都不是很了解 直接告诉他们联系机房
机房的可以抓包看到
supermaxisme
2023-12-10 18:23:59 +08:00
@Kowloon 实际上没必要
/56 前缀过来,直接本地路由器就能算出来地址了。
这个前缀下面的所有链接都肯定是这个设备发出来的。
还是不懂/64 的存在有啥意义….

嗯山的帖子我找不到了 大意说的就是/64 给路由模式 /56 等的前缀给桥接模式
ranaanna
2023-12-10 23:42:08 +08:00
@supermaxisme #21 /64 是一个子网。如果 isp 只给一个/64 前缀,或者自己的局域网不想划分子网,完全可以用 relay mode 让局域网的所有设备都有 ipv6 的呀。/56 只是 isp 再多给你 256 个/64 子网而已
Kowloon
2023-12-11 09:49:48 +08:00
@supermaxisme
只给你一个 /56 你怎么跟上端设备互联?
supermaxisme
2023-12-11 11:30:47 +08:00
@Kowloon 自己算出来全球多播地址就通了啊……
这个前缀下面的所有流量肯定都是我这个账号的(满足了审计要求)
和上端设备互连,不是很懂你的意思,我的理解完全可以用本地链路地址实现与上端的互连,本地链路地址无法满足的(也就是需要路由的) 就用/56 前缀算出来的全球单播地址即可。
supermaxisme
2023-12-11 11:32:47 +08:00
@ranaanna 提供了一个新思路,我再试试看 relay (之前尝试了 没有调通)

工信部对运营商的要求(之前有正式公开发文) 要求用户侧允许再分配子网(也就是需要分配给用户前缀小于/64 )
junlong
363 天前
我上周日重新拨号,又能获取到了。。。也是/64 的。
SHF
350 天前
@geeglo @jason96 @nanofrog 杭州萧山电信,今天重新试了一下,已经可以了,native 模式可以正常获取到前缀,估计是电信那边改了点东西,太好了
supermaxisme
350 天前
@SHF 看了一下 openwrt 对 Native IPv6 的定义:
Automatic bootstrap from SLAAC, stateless DHCPv6, stateful DHCPv6, DHCPv6-PD and any combination
Handling of preferred and valid address and prefix lifetimes
Duplicate address (DAD) and Link-MTU detection
DHCPv6 Extensions: Reconfigure, Information-Refresh, SOL_MAX_RT=3600
DHCPv6 Extensions: RDNSS, DNS Search Domain, NTP, SIP, ds-lite, prefix exclusion (experimental)

看起来就是最大兼容性。

电信的小哥现在已经不回我微信了。

Mikrotik 官方到现在都没回我的 support case 。

暂时无解。
Spxg
316 天前
刚买的设备还没回家装上,看到这个帖子立马用 pppoe-discovery 扫了一下,还好,ac 只有一个 HW NE40E ,估计不受影响

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

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

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

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

© 2021 V2EX