Hello all,
Current code does not seem to allow binding to "0.0.0.0" and "::"
("INADDR_ANY") on the same port for both IPv4 and IPv6 simultaneously.
This can be a bad thing for people who want to test out IPv4 and IPv6 on
the same system, because you can't easily provide services for both.
Perhaps the old restrictions are based on the old design where you were
supposed to use IPv4 MAPPED addresses to get "dual-stack" behaviour?
These have since been deprecated.
This behaviour has been tested with sendmail, bind9 and ftpd-bsd.
If you use a limited address to bind to, e.g. with the following Bind9
config:
listen-on {
1.2.3.4;
};
listen-on-v6 {
any;
};
This will work. But it this is not a global solution for a problem, and
this kind of facility is not available for too many network daemons.
After applying USAGI patch and enabling CONFIG_IPV6_DOUBLE_BIND, this
appears to work fine (ie: how it works with KAME IPv6 stack on BSD).
Are there reasons why this has not been changed? Are there workarounds
for the problem on stock kernels?
--
Pekka Savola "Tell me of difficulties surmounted,
Netcore Oy not those you stumble over and fall"
Systems. Networks. Security. -- Robert Jordan: A Crown of Swords
|