Spurious ipv6 duplicate address detection

When I (re-)start the networking service on my fedora machine, my dmesg gets flooded with

[ 1692.181952] IPv6: enp3s0: IPv6 duplicate address 1234:1204:4106:2700:7285:c2ff:feb0:1234 used by bc:5c:4c:fb:dd:6d detected!

The device with the bc:5c:4c:fb:dd:6d mac address is my openwrt router. However, when I log into the router and run ip a, then there is no interface showing the 1234:1204:4106:2700:7285:c2ff:feb0:1234 address. So, how to get ipv6 working again on my fedora machine?

What is the reason for needing to manually start or restart the networking?
I never have had reason to do that manually.

If it works properly then when booting it should connect properly. If manually doing so the problem may be a timing issue with failing to properly disconnect then reconnecting too soon before the buffers are cleared and receiving the same address from the router thus ending up with duplicate entries.

I tried it manually because it would not pick up the ipv6 address at boot. So I thought restarting might help. And it did a bit, ip a briefly shows the ipv6 address before it disappears again. Everything used to work 2 days ago.

May be an icmp6 tcpdump on the router to see what’s going on and whether the router really sends some nonsense info to the system. As soon an address is added on Fedora, an icmp neighbor solicitation packet is sent from :: to an address starting with ff02::1. There should be no response from the router because it has nothing to do with the included address.


IP6 :: > ff02::1:ff00:201: ICMP6, neighbor solicitation, who has 1234:5678:9abc:def0::201, length 32
1 Like

Thanks, I will try when my new router image has tcpdump available. It seems to be an intermittent problem: Restarting the router fixed the issue, but after some hours it appeared again. Maybe building a new router image will fix it alltogether. At least I hope so :slight_smile:

It might be possible to use tcpdump or even better Wireshark on the Fedora side, I only do not know whether their binding to the ethernet interface survives a network restart.

So the router seems to be involved. I’ve no idea how it can happen. How do you get your addresses: SLAAC autoconfiguration or DHCPv6? From the router I assume?

Assuming the MAC addresses of router and Fedora are different, and they should otherwise your network will not work, I cannot image a way to get duplicate addresses if you use autoconfiguration with a /64 prefix.

1 Like

The issue only occurs every once in a while. Important factor seems to be the router restarting (no clue why, used to run weeks at a time before). But not every time the router reboots that the collision happens. The next spontaneous reboot 9 hours later fixed the issue…
The server gets the address via DHCPv6 and has a well distinct address from the router. They also have ipv4 via DHCP, but that only works internally.

Anyways, the issue is currently a bit tricky to debug, as I cannot reliably reproduce the problem :frowning:
Will report back if I get any further. Thanks a lot for the suggestions already.