Date: Sat, 03 Apr 2010 02:45:02 -0700 From: Doug Barton <dougb@FreeBSD.org> To: freebsd-current@FreeBSD.org Subject: ipv6_enable Message-ID: <4BB70E1E.3090102@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 hrs@ has been doing some great work on bringing IPv6 support up to par with IPv4, and deserves a lot of credit for that work. Included in those changes were changes to the traditional semantics of how ipv6_enable works. That variable was previously overloaded to allow general IPv6 configuration support, rtsol autoconfiguration, and preference of IPv6 vs. IPv4. The ipv6_prefer variable was introduced to handle the first and third functions, and ipv6_enable was deprecated. In previous discussions on various lists (including this one) there seems to have been general consensus on the following ideas: 1. There should be an ipv6_enable knob to easily turn IPv6 configuration on and off when INET6 is in the kernel. I think the value of this kind of knob is obvious, but I'd be happy to elaborate if that is necessary. 2. ipv6_network_interfaces should be set to AUTO, the same way that it is for IPv4. 3. Each IPv6 interface (other than lo0) should be configured with rtsol by default, but manual configuration should still be possible. The first question is, are the defaults listed above reasonable? I'd like to see some sort of consensus on this before we proceed with any changes. Next, I have a patch that implements the defaults suggested above that I want to offer for testing and review: http://people.freebsd.org/~dougb/v6-enable.diff The patch has several features in addition to changing the defaults. The network.subr changes in particular are difficult to visualize via the diff, it's probably easier to apply it in a test tree and review it that way. 1. Clean up and optimize the following functions: ifconfig_up (the ipv6 elements) noafif ipv6if ipv6_autoconfif The general concepts of the cleanups were to move the "easy" tests earlier in the functions, consolidate duplicate code, and of course to make things work with the above-listed defaults. 2. Convert noafif() to use is_wired_interface() instead of listing wireless interfaces explicitly. 3. In rc.d/netoptions, add code for an ipv6_privacy option to use RFC 4193 style privacy addresses (this is what windows does by default, FYI). 4. In /etc/defaults/rc.conf: Add ipv6_enable back, default to off. If a user has INET6 in the kernel (which it does by default) no external interfaces will be configured unless the user enables it. The lo0 interface is always configured if INET6 is in the kernel. Set ipv6_network_interfaces to AUTO. Switch ipv6_prefer to YES. If ipv6_enable is not set this will have no effect. 5. Document all of this in rc.conf.5. Enjoy, Doug - -- ... and that's just a little bit of history repeating. -- Propellerheads Improve the effectiveness of your Internet presence with a domain name makeover! http://SupersetSolutions.com/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEAREDAAYFAku3Dh4ACgkQyIakK9Wy8Pur8ACg9du7VjeEy5nxfeP1/Ij6RDQc nqgAoLfOdoOGY48MzW7OOZMWRsBKMe+g =S8zx -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BB70E1E.3090102>