|
Message-ID: <20131130174258.GT24286@brightrain.aerifal.cx> Date: Sat, 30 Nov 2013 12:42:58 -0500 From: Rich Felker <dalias@...ifal.cx> To: musl@...ts.openwall.com Subject: Re: IPv4 and IPv6 addresses in resolv.conf On Sat, Nov 30, 2013 at 05:33:35PM +0000, Rob wrote: > Rich Felker, Sat, 30 Nov 2013: > >> > >>It is EAFNOSUPPORT if no kernel support at all. > >> > >>Actually I don't think there can be any cases where sending to the > >>v4-mapped address (ie ::ffff:1.2.3.4) can fail where an ipv4 socket > >>will succeed because those are basically ipv4 sockets with just ipv6 > >>notation, those addresses can't be routed by the ipv6 stack. So it > > > >One thing I'm confused about is the addresses on the actual packets. > >If we've already called bind for address :: and gotten assigned port > >N, does this also reserve port N on 0.0.0.0, which will be needed when > >sending from (and receiving back) IPv4 packets? Also, is there some > >kernel option we might need to worry about that prevents :: from > >receiving packets sent to IPv4 addresses, or does that only apply to > >TCP, not UDP? > > I've been seeing this output consistently from mpd at startup: > > listen: bind to '0.0.0.0:6600' failed: Address already in use > (continuing anyway, because binding to '[::]:6600' succeeded) > > mpd is the only program on my machine that binds to 6600 so it would > appear that :: port bindings reserve the ipv4 port too. Could be a > kernel configuration option though... It looks like this depends on the value of the socket option IPV6_V6ONLY, which on Linux gets its default from /proc/sys/net/ipv6/bindv6only, which in turn is 0 (off) by default. So on systems with non-default configuration, the proposed musl strategy could badly break use of v4 nameservers (in a mixed environment). I think manually setting IPV6_V6ONLY to 0 with setsockopt before the bind should make it possible to reliably get the behavior you described (and which we want). Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.