[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: IPv6, tentative addresses, bind(), wheezy

 ❦  3 novembre 2012 15:15 CET, Ben Hutchings <ben@decadent.org.uk> :

>> I can now disable DAD, or insert "sleep 10" at the top of
>> /etc/init.d/unbound, but neither is an acceptable solution.
>> IPv6 has been a release goal for years and we are about to release
>> another Debian version that does not properly cater for IPv6.
>> What can be done?
> 	int one = 1;
> 	setsockopt(sock, IPPROTO_IP, IP_FREEBIND, &one, sizeof(one));
> 	bind(sock, ...);
> Or we set the net.ipv4.ip_nonlocal_bind sysctl globally, but this is
> probably not a good idea.  (Note that 'v4' there is not a typo; this
> would actually affect both v4 and v6.)

Are you sure?

In [13]: import socket

In [14]: s=socket.socket(socket.AF_INET6)

In [15]: s.bind(("2001:db8::1", 8000))
error                                     Traceback (most recent call last)
<ipython-input-15-2f2d75ed2558> in <module>()
----> 1 s.bind(("2001:db8::1", 8000))

/usr/lib/python2.7/socket.pyc in meth(name, self, *args)
    223 def meth(name,self,*args):
--> 224     return getattr(self._sock,name)(*args)
    226 for _m in _socketmethods:

error: [Errno 99] Cannot assign requested address

I have proposed a patch to make this works but it has been refused by
David Miller since he thought that such a thing was a mistake in IPv4.

panic("CPU too expensive - making holiday in the ANDES!");
	2.2.16 /usr/src/linux/arch/mips/kernel/traps.c

Attachment: pgpcCUnKq5U2g.pgp
Description: PGP signature

Reply to: