Here's a patch to fix it:
--- /etc/netstart.orig Tue Jun 19 11:12:42 2007
+++ /etc/netstart Tue Jun 19 11:49:36 2007
@@ -195,6 +195,23 @@
done < /etc/bridgename.$1
}
+ip6start() {
+ if [ "$ip6kernel" = "YES" -a "x$rtsolif" != "x" ]; then
+ fw=`sysctl -n net.inet6.ip6.forwarding`
+ ra=`sysctl -n net.inet6.ip6.accept_rtadv`
+ if [ "x$fw" = "x0" -a "x$ra" = "x1" ]; then
+ echo "IPv6 autoconf:$rtsolif"
+ rtsol $rtsolif
+ else
+ echo "WARNING: inconsistent config - check
/etc/sysctl.conf for IPv6 autoconf"
+ fi
+ fi
+ if [ "$ip6kernel" = "YES" ]; then
+ # this is to make sure DAD is completed before going
further.
+ sleep `sysctl -n net.inet6.ip6.dad_count`
+ fi
+}
+
# Re-read /etc/rc.conf
. /etc/rc.conf
@@ -204,6 +221,9 @@
shift
fi
if [ $# -gt 0 ]; then
+ if ifconfig lo0 | grep -q "::1 "; then
+ ip6kernel="YES"
+ fi
while [ $# -gt 0 ]; do
if [ -f /etc/bridgename.$1 ]; then
bridgestart $1
@@ -212,6 +232,7 @@
fi
shift
done
+ ip6start
return
fi
@@ -290,22 +311,7 @@
# do not start interfaces which must be delayed.
# Refer to hostname.if(5) and bridgename.if(5)
ifmstart "" "trunk vlan carp gif gre pfsync pppoe"
-
-if [ "$ip6kernel" = "YES" -a "x$rtsolif" != "x" ]; then
- fw=`sysctl -n net.inet6.ip6.forwarding`
- ra=`sysctl -n net.inet6.ip6.accept_rtadv`
- if [ "x$fw" = "x0" -a "x$ra" = "x1" ]; then
- echo "IPv6 autoconf:$rtsolif"
- rtsol $rtsolif
- else
- echo "WARNING: inconsistent config -
check /etc/sysctl.conf for IPv6 autoconf"
- fi
-fi
-if [ "$ip6kernel" = "YES" ]; then
- # this is to make sure DAD is completed before going further.
- sleep `sysctl -n net.inet6.ip6.dad_count`
-fi
-
+ip6start
# The trunk interfaces need to come up first in this list.
# The vlan interfaces need to come up after trunk.
# The pfsync interfaces need to come up before carp.