Tuesday, February 26, 2013

"IPv6 duplicate address" in Linux

My Linux system (Ubuntu 12.10) was suddenly having problems with IPv6, and dmesg said:

IPv6: wlan0: IPv6 duplicate address 2a00:cd8:blabla:1af4:6aff:fe9c:ced4 detected!
IPv6: ipv6_create_tempaddr: regeneration time exceeded - disabled temporary address support

The workaround was to disable Duplicate Address Detection (DAD) for the IPv6 privacy extensions on my Wifi interface wlan0:

sudo sysctl net.ipv6.conf.wlan0.accept_dad=0

Please note: if you use wired ethernet eth0, you should do something like this:

sudo sysctl net.ipv6.conf.eth0.accept_dad=0

It is unclear to me where the problem is: in Linux itself , or in my modem, or in the interaction between Linux and my modem.
The problem also occurs in OpenSuSE 12.2 on the same LAN, so it's not a Ubuntu-only problem.

Bug report is here: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1120617

Update: it seems to be related to Wifi; it does not happen with wired ethernet.


4 comments:

JMM said...

Hello. I did not use the dad=0 setting as in your post. But the link to the launchpad bug then the workaround : net.ipv6.conf.eth0.use_tempaddr=-1 worked for me for a while but still I keep receiving the annoying ipv6 dupe from dmesg. Looking around more I was able to find an interesting topic about 802.11n data when being transmitted and received at my end Intel Centrino N 6250 disconnects wifi (iwlwifi) then the issue would resume. The zorin folks mentioned to disable N-data. More here. And it seems to work. You will still some messages but it would stop at some point completely.

JMM said...

It seems the link I was talking was not posted. I apologize :) : http://www.zoringroup.com/forum/viewtopic.php?f=5&t=4081&sid=70c860a79498c70a66025fbdf442ad73&start=10

Anonymous said...

Hi,

I got the same type of problem when replacing a 10 year old Netgear AP with an Asus EA-N66 AP.
- I found that the following config change relieved me of all troubles:
net.ipv6.conf.all.force_tllao=1

L

Anonymous said...

Today I realized that the net.ipv6.conf.all.force_tllao=1 setting only relieved me of DAD problems regarding the IPv6 LL address.

But I ran into problems related to DAD for my public address.

However I managed to fix this issue too by amending /etc/sysctl.conf with:
net.ipv6.conf.all.router_solicitation_delay=3

L