Doug Barton dougb at FreeBSD.org
Sat Apr 3 09:45:05 UTC 2010

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

Next, I have a patch that implements the defaults suggested above that I
want to offer for testing and review:

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

1. Clean up and optimize the following functions:
ifconfig_up (the ipv6 elements)
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

5. Document all of this in rc.conf.5.



- -- 

	... 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/

Version: GnuPG v2.0.14 (FreeBSD)


More information about the freebsd-current mailing list