IPv6 Patch

dormando dormando at rydia.net
Sat Feb 2 09:58:35 UTC 2008


> I'm actually a bit puzzled.  I'm one of those users, yet I don't know
> what a "local hostname" thing is.  Some setups may have distinct
> internal and external host names.  When there's only a single name,
> then by specifying it for different servers the use takes the full
> responsibility.  I doubt you will find any server out there that tries
> to fight this internally, so memcached shouldn't be any smarter ;).

When someone thinks "box" means "box.internal" instead of "box.external"
- my complete lack of actually using ipv6 means I don't understand which
ipv6 will bind to.

> The difference arise on client side: "you have to use them all" means
> "don't give up after the first one".  You try to connect to one after
> another, and stop once connected successfully.  This is where ordering
> comes to play: more promising addresses are tried first.
> 
> For server side, either the sorting is done anyways, or perhaps the
> addresses are returned in a completely random order.  In both cases,
> trying only the first is meaningless.  Here you have truly try them
> all, because you can't predict what address the client will use.
> Recall, single physical interface may have several addresses.

I figured it'd be fun to have ipv6 support before waiting for the
listening socket business to stop sucking. Thing is both of you folks
are insisting that it doesn't work at all, so what's the point? :\

> This will break IPv4 connectivity on systems that require to bind IPv6
> and IPv4 separately.

Do those work now?

>> - See if we can change the unix domain socket bit to not exclude tcp and 
>> udp (I can see _someone_ wanting to use all three. This whole 
>> discussion's about not restricting it). I'm loathe to change a "default" 
>> tho, so maybe folks have good ideas.
> 
> I think this step should be done first, i.e. to allow arbitrary number
> of listening sockets of different types.

That'd be ideal. I'm not sure how realistic it is. I've written my own
mysql proxy this way (limitless arbitrary socket binding), so maybe I
can give a whack at it...

>> - By "default" the ipv6 code will bind to the first address it finds.
> 
> This would be completely unjustified.  Make it the other way around,
> special all-secure mode, that will bind to one first (read _random_)
> address ;).

I'm less concerned about security than I am about portability. Will this
break things? Will the other approach break things? I'm not even sure.

-Dormando


More information about the memcached mailing list