80后的细娃儿

IPv6之地址冲突排查过程

前段时间在用户那里部署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、故障处理的过程就是学习的过程,是经验积累的过程。

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

点赞

发表评论