Windows 通过 DHCPv6 获取 IPv6 地址时遇到错误“没有群集资源”

2021-10-04 17:31:27 +08:00
 wqy
一台运行 Windows Server 2019 的服务器,配备有一张 Intel 的双口千兆网卡,系统中分别命名为“Slot0B x8 端口 1”和“Slot0B x8 端口 2”,通过同一台接入交换机连接局域网。

局域网(校园网)通过 DHCPv6 分配 IPv6 地址。

两个接口在开机后能够分别自动获取 IPv4 地址,但仅有一个接口能够获取 IPv6 地址,一般是“Slot0B x8 端口 2”。

此时,若执行 ipconfig /renew6 "Slot0B x8 端口 1"的命令,也无法获取到 IPv6 地址,且返回一个错误:“在续订接口 Slot0B x8 端口 1 时出错: 没有群集资源。”

此时只能将“Slot0B x8 端口 2”上的 IPv6 地址 release 掉,才能够在“Slot0B x8 端口 1”上通过 renew 获取到新的 IPv6 地址。
2363 次点击
所在节点    宽带症候群
5 条回复
volks
2021-10-05 09:33:26 +08:00
巧了,我最近也刚好遇到这问题,竟搜不到一点相关信息。我的 nuc 通过 WiFi 连可以拿到 dhcpv6 IP,通过有线就只有 slaac ip 。微软社区上有个 13 年的贴描述了类似的情况,怀疑是 dhcp 超时的问题,但对我的情况就说不通了
ArimaKousei
2021-10-05 14:33:58 +08:00
检查下服务器有没有开启端口聚合 /NIC
raysonx
2021-10-05 23:33:11 +08:00
建议联系微软技术支持
wqy
2021-10-06 13:14:16 +08:00
目前,问题的原因已经查明,现在问题暂时得到了解决。

首先,通过 Wireshark 抓包发现,导致这个错误的原因是:在执行 renew6 命令后,Windows 的 DHCPv6 客户端会向 IPv6 的组播地址( ff02::1:2 )发送 Message type 为 Solicit (类似于 DHCPv4 下的 DHCP DISCOVER )的报文,之后网关并未回复可用的 IPv6 地址,而是回复 DHCPV6 STATUS CODE 2 ( NoAddrAvail ),Windows 会进行 6 次重试,在第 7 次尝试失败后,报错“没有群集资源”并结束尝试。

NoAddrAvail 是这个问题的关键,通过“ipconfig /all”命令查看两个接口的“DHCPv6 客户端 DUID”值,发现 Windows 将这两个接口的 DUID 设置为一致的值,由于 DHCPv6 服务器使用 DUID 来识别不同的客户端,因此网关认为是同一个接口发出了重复的 DHCPv6 请求,故回复 NoAddrAvail,而 Windows 似乎并未正确处理这个错误,以“没有群集资源”作为提示。

通过修改注册表的方式将 DUID 值设置为不冲突的另一个值(但注册表似乎并不支持针对单个接口设置 DUID 值,只能直接修改 Tcpip6 下的键值),禁用再启用网络适配器后,能够正确获取 IPv6 地址了。

但此时该接口仅有 IPv6 地址,并无默认 IPv6 网关配置,无法连接网络,通过接口的 IPv6 协议高级选项,手动将另一个正常接口的网关应用到该接口,便能够正常工作了。

遗留问题:
1 、不明确 Windows 通过 MAC 生成 DUID 的操作是否存在问题,即不同的 MAC 使用了同一个 DUID 。

2 、不明确该修改是否能够在重启之后保留(有可能两个接口都变更为新的 DUID 导致继续冲突)。

3 、不明确 Windows 无法自动配置 IPv6 的网关地址的原因。

这个问题类似于 DHCPv4 下使用了相同的 MAC 地址,但是 Windows 能够比较容易的修改 MAC,却不能方便地修改 DUID...
fastcache
2021-10-19 16:47:03 +08:00
msft 是全球最大的 ipv6 vendor, 估计这个是 ta 认为的标准实现

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

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

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

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

© 2021 V2EX