svn commit: r207225 - in head: etc/defaults etc/rc.d share/man/man5

Hajimu UMEMOTO ume at FreeBSD.org
Mon Apr 26 15:31:59 UTC 2010


Author: ume
Date: Mon Apr 26 15:31:58 2010
New Revision: 207225
URL: http://svn.freebsd.org/changeset/base/207225

Log:
  Better handling of ipv6_default_interface using
  net.inet6.ip6.use_defaultzone=1.  Now, it works IPv6 link-local
  unicast addresses as well as IPv6 link-local multicast addresses.
  
  MFC after:	1 week

Modified:
  head/etc/defaults/rc.conf
  head/etc/rc.d/routing
  head/share/man/man5/rc.conf.5

Modified: head/etc/defaults/rc.conf
==============================================================================
--- head/etc/defaults/rc.conf	Mon Apr 26 15:01:14 2010	(r207224)
+++ head/etc/defaults/rc.conf	Mon Apr 26 15:31:58 2010	(r207225)
@@ -470,8 +470,8 @@ route6d_flags=""		# Flags to IPv6 routin
 #ipv6_prefix_ed0="fec0:0000:0000:0001 fec0:0000:0000:0002"  # Examples for rtr.
 #ipv6_prefix_ep0="fec0:0000:0000:0003 fec0:0000:0000:0004"  # Examples for rtr.
 ipv6_default_interface="NO"	# Default output interface for scoped addrs.
-				# Now this works only for IPv6 link local
-				# multicast addrs.
+				# This works only with
+				# ipv6_gateway_enable="NO".
 rtsol_flags=""			# Flags to IPv6 router solicitation.
 rtsold_enable="NO"		# Set to YES to enable an IPv6 router
 				# solicitation daemon.

Modified: head/etc/rc.d/routing
==============================================================================
--- head/etc/rc.d/routing	Mon Apr 26 15:01:14 2010	(r207224)
+++ head/etc/rc.d/routing	Mon Apr 26 15:31:58 2010	(r207225)
@@ -210,34 +210,24 @@ static_inet6()
 		;;
 	esac
 
-	# Disallow unicast packets without outgoing scope identifiers,
-	# or route such packets to a "default" interface, if it is specified.
+	# Disallow link-local unicast packets without outgoing scope
+	# identifiers.  However, if you set "ipv6_default_interface",
+	# for the host case, you will allow to omit the identifiers.
+	# Under this configuration, the packets will go to the default
+	# interface.
 	route ${_action} -inet6 fe80:: -prefixlen 10 ::1 -reject
+	route ${_action} -inet6 ff02:: -prefixlen 16 ::1 -reject
 
 	case ${ipv6_default_interface} in
 	'')
-		route ${_action} -inet6 ff02:: -prefixlen 16 ::1 -reject
 		;;
 	*)
-		laddr=`network6_getladdr ${ipv6_default_interface}`
-		route ${_action} -inet6 ff02:: ${laddr} -prefixlen 16 -interface
-
-		# Disable installing the default interface with the
-		# case net.inet6.ip6.forwarding=0 and
-		# the interface with no ND6_IFF_ACCEPT_RTADV
-		# to avoid conflict between the default router list and
-		# the manual configured default route.
+		# Disable installing the default interface when we act
+		# as router to avoid conflict between the default
+		# router list and the manual configured default route.
 		if ! checkyesno ipv6_gateway_enable; then
-			ifconfig ${ipv6_default_interface} nd6 | \
-			while read proto options
-			do
-				case "${proto}:${options}" in
-				nd6:*ACCEPT_RTADV*)
-					ifconfig ${ipv6_default_interface} inet6 defaultif
-					break
-				;;
-				esac
-			done
+			ifconfig ${ipv6_default_interface} inet6 defaultif
+			sysctl net.inet6.ip6.use_defaultzone=1
 		fi
 		;;
 	esac

Modified: head/share/man/man5/rc.conf.5
==============================================================================
--- head/share/man/man5/rc.conf.5	Mon Apr 26 15:01:14 2010	(r207224)
+++ head/share/man/man5/rc.conf.5	Mon Apr 26 15:31:58 2010	(r207225)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 14, 2010
+.Dd April 27, 2010
 .Dt RC.CONF 5
 .Os
 .Sh NAME
@@ -1370,7 +1370,7 @@ configured on that interface.
 If not set to
 .Dq Li NO ,
 this is the default output interface for scoped addresses.
-Now this works only for IPv6 link local multicast addresses.
+This works only with ipv6_gateway_enable="NO".
 .It Va ip6addrctl_enable
 .Pq Vt bool
 If set to


More information about the svn-src-all mailing list