networking layer2 ai_generated true

IPv6: fe80::1/64在eth0上的重复地址检测(DAD)失败,地址已被00:1a:2b:3c:4d:5e使用

IPv6: Duplicate Address Detection (DAD) failed for fe80::1/64 on eth0, address in use by 00:1a:2b:3c:4d:5e

ID: networking/ipv6-ndp-dad-failed

其他格式: JSON · Markdown 中文 · English
85%修复率
87%置信度
1证据数
2023-09-05首次发现

版本兼容性

版本状态引入弃用备注
Linux kernel 6.1.0-17-amd64 active
Windows Server 2022 active
Cisco IOS XE 17.9.1 active

根因分析

同一链路本地网段上的另一主机已在使用IPv6地址fe80::1,导致重复地址检测(DAD)机制(RFC 4862)拒绝地址分配,使接口处于暂定状态。

English

Another host on the same link-local network segment is already using the IPv6 address fe80::1, causing the Duplicate Address Detection (DAD) mechanism (RFC 4862) to reject the address assignment and leave the interface in a tentative state.

generic

官方文档

https://www.rfc-editor.org/rfc/rfc4862#section-5.4

解决方案

  1. Identify and reconfigure the conflicting host by checking the neighbor cache: ip -6 neigh show; then change the duplicate address on one host to a unique link-local address (e.g., fe80::2/64).
  2. Temporarily disable DAD on the interface to force address assignment: sysctl -w net.ipv6.conf.eth0.accept_dad=0; then manually add the address with ip addr add fe80::1/64 dev eth0. Re-enable DAD after resolving the conflict.
  3. Use a privacy extension address (RFC 4941) for the interface to avoid link-local conflicts: sysctl -w net.ipv6.conf.eth0.use_tempaddr=2

无效尝试

常见但无效的做法:

  1. 90% 失败

    The kernel will still perform DAD and reject the assignment if the address is already in use, even with manual configuration.

  2. 75% 失败

    This breaks all IPv6 connectivity and is an overreaction if only one address is duplicated.

  3. 60% 失败

    The link-local address is derived from the MAC address by default, but the conflict is with a specific address, not the MAC; changing MAC may not resolve the duplication if the address is manually configured on the other host.