IPv6之地址冲突排查过程

2,380次阅读
没有评论

前段时间在用户那里部署 IPv6,群里有好多人反映,一开机就提示 IP 地址冲突,查看系统日志,发现提示 IPv6 地址冲突。不应该啊!所有的 IP 地址都是通过 DHCP 服务器下发的,怎么会冲突呢?于是决定抓包分析原因,在抓包过程中发现故障不是每次都能复现,所以一直没有抓到什么有价值的包,抓包一事就此告吹了。

好几个人盯着用户反馈上来的图片,不停地对比着,包括 IPv6 地址、物理网卡的 MAC 地址……等等,终于有所发现,这些 IP 地址冲突的用户,相互冲突的两台设备,他们的 DUID 是相同的。这一发现让所有人感觉,事情的真相已经浮出水面。

DUID 是什么?在哪里查看?下面先以一张图看一下 DUID:

QQ 截图 20180719162515.jpg

那么 DUID 究竟是什么?

DUID 是 DHCP 唯一标识符(DHCP Unique Identifier),每个服务器或客户端有且只有一个唯一标识符,服务器使用 DUID 来识别不同的客户端,客户端则使用 DUID 来识别服务器。

后来查看资料发现:

This characteristic of DHCPv6 DUIDs has caused some interesting challenges given the popularity of cloned and/or virtual OSes. OS clones are likely to have identical DUIDs. One would have to manually change it before bringing the host online in a DHCPv6 environment or the DHCPv6 server will assume that DHCPv6 packets from different hosts with the same DUID are in fact all the same host.

上面最主要的部分我已经用红色标红了,大体意思主要就是说系统克隆会导致主机具有相同的 DUID,而具有相同 DUID 的主机会被认为是同一台主机。

那么针对这种情况该如何处理呢?

其实,微软已经给出了解决方案,在注册表中找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters 删除 Dhcpv6DUID 这个键值,重启系统后电脑会重新计算出一个 DUID,这样就不会出现 DUID 相同的情况了。

后来用户写了一个批处理用于删除 Dhcpv6DUID 这个键值,文件下发下去执行后,再没有用户反馈 IP 地址冲突的情况了。至此问题解决!

*********************************************************************************

总结:

1、在故障面前一定要擦亮眼睛,不要放过一丝一毫可能出现问题的点。

2、故障处理的过程就是学习的过程,是经验积累的过程。

*********************************************************************************

正文完
 0
评论(没有评论)
验证码