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

153 天前
 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.

1931 次点击
所在节点    宽带症候群
32 条回复
geeglo
152 天前
哇靠,我家联通+ros ,也是一直无法获取 ipv6 ,卡在 searching ,有时候重启路由器首次连接会获取到,重新获取就失败,可能也是这个原因。
supermaxisme
152 天前
另外提供一个额外的信息
一般的运营商配置(不知道他们为什么这么弄)
有两个地址池,对应两个 server instance
PPPOE 拨号之后,PPPOE 对端设备会直接分配一个/64 地址(等同于 IPv4 直接给 PPPOE 接口分配 IP 无论是公网还是私网还是假公网)
然后用户终端申请前缀,会再分配/56 或者/60 前缀。
两个地址池不同......
keyfunc
152 天前
尝试通过 PPPoe Scan 扫描下,看看是不是原来的 AC 还存在,拨号时可以指定 AC Name ,看看有没有用。
supermaxisme
152 天前
@keyfunc 运维确认了,所有用户已经都割接到 vBRAS 了。
Puteulanus
152 天前
之前刷到过人说这个 /t/972312#r_13621786
keyfunc
152 天前
@supermaxisme 我们这默认拨号都是到 vBRAS ,但如果你指定原来 bras 的 ac name 的话,还是可以用的。

Kowloon
152 天前
@supermaxisme
现在的 IPv6 都是这么干的,在 BRAS 上一般有一个 /48 的子网负责给每个客户端先分配一个 /64 用来互联,再下发一个 /56 或其他长度的前缀给客户端做地址池。
Kowloon
152 天前
我之前的业务在 M6000-8 上的时候也时不时丢 IPv6 不知道是不是因为中兴有 bug……
junlong
152 天前
前两天还发了个帖子来这里问,破案了。。。买点服务还要客户各个都是网络工程师,真是醉了。
Damn
152 天前
Clients and servers MUST NOT restrict ,这不就是 ros 自作多情的锅么。在 client 这边限制了只能那几种。。
supermaxisme
152 天前
@keyfunc 我已经扫不到了,运维说可以手动放回去,但是将来还是要下线 HW 设备的。
supermaxisme
152 天前
@Damn 目前不确定是 DUID type 还是 DUID 本身触发了错误,Mikrotik 还没有回复 support ticket
supermaxisme
152 天前
@Kowloon 不理解这么设计是出于什么原因。
我的理解是分配/64 是为了给路由模式的光猫的,光猫自己做 NAT6
光猫是桥接的时候应当分配/56 ,这样路由器自己就分配下联设备的地址了。
但是运维说所有客户端都会提供这两个(/64 和/56 ),我觉得他说的不对,看到恩山上面的其他地区是分开处理的(路由模式和桥接模式)
只要有全球单播地址都可以互联互通,不需要先分配一个/64 啊。。。。
ranaanna
152 天前
@supermaxisme 运维说的是对的。/64 给你的是一个单独的 LAN ,并不是只给了一个地址让你做 NAT6 用的。但/64 满足不了家宽划分子网的需求(相当于 ipv4 时代把内网分为 192.168.1.0/24 和 192.168.2.0/24 的之类需求),所以为了满足这个需求,通常 isp 会再给你/60 /56 甚至/48 。并不是 isp 慷慨,实在是 ipv6 地址多到不值什么。ipv6 的世界 NAT6 应该是不存在的
ranaanna
152 天前
@supermaxisme 意思就是如果 OP 没有划分子网的需求,完全可以用/64 前缀组网,并不需要 NAT6 。但是 OP 的意思是/64 前缀也得不到吗?
Kowloon
152 天前
@supermaxisme
换个方式理解,因为 IPv6 本质可以解放你在接入 IPv4 私网时的公网需求的,所以现在相当于 BRAS 需要先连到你客户端,把地址分别给客户端和客户端下面的设备,如果你缺少其中一个 /64 或者 /56 前缀,那么这个链路就是不完整的,所以也就没有 IPv6 用。

你视光猫就是一个透明的设备,无论是桥接模式还是路由模式,只在乎谁做 PPPoE Client 就可以,光猫路由模式接路由器本来就是一个不严谨的用法,就是不考虑以后的一个懒办法。光猫桥接,那就是路由器负责拨号,一个完整的链路是需要 BRAS 从自身的地址池里提供地址给路由器,路由器再分配从 BRAS 下发的前缀里面的地址给下面设备,所以我认为运维给你的解释没什么问题。

严格意义上说 IPv6 不是用来支撑 NAT 的,至于 NAT6 我认为只是一个玩法。

我的光猫就是桥接的,连接甚至没有使能 IPv6 只是 IPv4 单栈通道,照样有 IPv6 用,你说的恩山的路由桥接分开处理我没明白,可以具体说说吗?
SHF
152 天前
杭州萧山电信,小米路由器 7000 最近也挂了,一直获取不到 IPv6 前缀,我猜可能也是这个问题,一个月之前可以的,不知道最近改了什么,宽带师傅也不懂,问就是配置没问题,而且用电信的光猫拨号确实是好的,但是我不想用光猫拨号。
youx
152 天前
楼主 真是 专业 啊
jason96
151 天前
我家的移动也发现了同样问题,上报上去说我 IPV6 前缀没了,不一样的是装维包括上级坚持说 IPV4 公网需要收费........辛苦解释了一大波
nanofrog
150 天前
杭州电信 erx 也已阵亡,我还重新配置了一遍。只有 pppoe 能拿到/64 的地址,内网其它设备都拿不到

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

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

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

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

© 2021 V2EX