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

- **ID:** `networking/ipv6-ndp-dad-failed`
- **领域:** networking
- **类别:** layer2
- **验证级别:** ai_generated
- **修复率:** 85%

## 根因

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

## 版本兼容性

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

## 解决方案

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
   ```

## 无效尝试

- **** — The kernel will still perform DAD and reject the assignment if the address is already in use, even with manual configuration. (90% 失败率)
- **** — This breaks all IPv6 connectivity and is an overreaction if only one address is duplicated. (75% 失败率)
- **** — 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. (60% 失败率)
