I face the same problem and I would like to understand why introducing bindv6only=1 to Debian, and how it effects current applications.
>From what I read in the discussion, I think there are 4 types if applications here: A: a server creates two sockets, one binds to IPv4 address, and the other binds to IPv6; B: a server creates one socket, binds to IPv4 address, and accepts only IPv4 connection; C: a server creates one socket, binds to IPv6 address, and accepts only IPv6 connection; D: a server creates one sockets, binds to ::, accepts both IPv4 and IPv6 connections; And sysctl parameter net.ipv6.bindv6only has no effect on type A and type B servers, however it will effect type C and D servers. When net.ipv6.bindv6only was set to 0, applications in type C must use IPV6_V6ONLY to explicitly specify it only wants IPv6 connections. And "many already do this". So, this is not OK? But, after net.ipv6.bindv6only was set to 1, applications in type D must use IPV6_V6ONLY to explicitly specify it want both IPv4 and IPv6 connections. None of them need to do this before. So this is OK? Since in many other OSes, the applications in type C would not need to do setsockopt IPV6_V6ONLY, we have to release many of them from "already do so"? Or since applications in type D are so ill designed, we have to modified them to use setsockopt explicitly in order to let type C application use default net.ipv6.bindv6only value implicitly, even when many of them already do setsockopt explicitly? I just don't understand, what's the intention of this feature? All application should use setsocketopt IPV6_V6ONLY explicitly? Or type C applications should not exist, it should be modified to type A, no matter what cost. Or "make the system behavior match the one of all other operating systems"? If the intention is the last one, how can it be achieved when some OSes does not even support binding to both v4 and v6. No matter what default value we choose to set net.ipv6.bindv6only, all 4 types of applications can exists on Linux, but type C application cannot run on OSes which do not support it. Isn't this a different behavior? Linux is a major player in OS market, why should Linux or Debian Linux change the default behavior to match others, not the other way around? Which way creates more problem? By stating "many applications already do so (setsockopt IPV6_V6ONLY)" in Linux, I think the answer is clear. -- Vi veri veniversum vivus vici -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org