Cannot assign requested address

Leo Baltus Leo.Baltus at omroep.nl
Fri May 1 22:30:56 CEST 2009


Bernhard,

Op 01/05/2009 om 17:43:36 +0200, schreef Bernhard Schmidt:
>> We are trying to set up services using home-brewed scripts to set-up
>> ipv6 adresses and bind services to them, just as we do this for ipv4.
>>
>> Using a fairly recent linux kernel (2.6.27.21), or any other linux
>> kernel I can get my hands on, the following scripts fails:
>>
>> ip -f inet6 a add ::2/128 dev eth0 && nc -l ::2 1234
>> nc: Cannot assign requested address
>>
>> An EADDRNOTAVAIL is issued.
>>
>> Basically, we set up an ipv6 address and let nc listen on it.
>>
>> Introducing a 2 sec. sleep between setting up the interface and
>> bind()'ing to it, seems to be the only workaround I have found.
>
> You are most probably hit by Duplicate Address Detection as defined in  
> RFC2462 Section 5.4. You will probably see the address being "tentative"  
> in ip -6 addr while the DAD is run.
>
> You can disable DAD on the interface setting the sysctl variable  
> net.ipv6.conf.et0.dad_transmits to 0, or enable the optimistic DAD  
> support (RFC4429) in recent Linux kernels.

You were right, it was Duplicate Address Detection. However setting 
net.ipv6.conf.eth0.accept_dad=0 solved it.

Thanks a lot.

-- 
Leo Baltus, internetbeheerder                         /\
NPO ICT Internet Services                            /NPO/\
Sumatralaan 45, 1217 GP Hilversum, Filmcentrum, west \  /\/
beheer at omroep.nl, 035-6773555                         \/


More information about the ipv6-ops mailing list