summaryrefslogtreecommitdiffstats
path: root/etc/rc.d/routing
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2012-12-04 04:37:42 +0000
committerneel <neel@FreeBSD.org>2012-12-04 04:37:42 +0000
commitd8091074f2295a4be6817c9fe8802b9b0db9346d (patch)
tree6ef29583fd1f17922e7c5b7d49d2d96d8ff38ebb /etc/rc.d/routing
parentd45d8a8d668a9ee12073939bf775c404be8cf175 (diff)
parent6b76c5a1b878e8001537fb323cb0c88fca9dc2df (diff)
downloadFreeBSD-src-d8091074f2295a4be6817c9fe8802b9b0db9346d.zip
FreeBSD-src-d8091074f2295a4be6817c9fe8802b9b0db9346d.tar.gz
IFC @r243836
Diffstat (limited to 'etc/rc.d/routing')
-rwxr-xr-xetc/rc.d/routing44
1 files changed, 11 insertions, 33 deletions
diff --git a/etc/rc.d/routing b/etc/rc.d/routing
index 7e4a8ff..0fe86c7 100755
--- a/etc/rc.d/routing
+++ b/etc/rc.d/routing
@@ -139,29 +139,20 @@ static_inet()
static_inet6()
{
- local _action i fibs
+ local _action fibmod fibs
_action=$1
# get the number of FIBs supported.
- fibs=`sysctl -n net.fibs`
- : ${fibs:=1}
+ fibs=$((`${SYSCTL_N} net.fibs` - 1))
+ if [ "$fibs" -gt 0 ]; then
+ fibmod="-fib 0-$fibs"
+ else
+ fibmod=
+ fi
# disallow "internal" addresses to appear on the wire
- route ${_action} -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject
- route ${_action} -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject
- i=1
- if test ${i} -lt ${fibs}; then
- printf "Also installing reject routes for FIBs"
- while test ${i} -lt ${fibs}; do
- setfib -F ${i} route -q ${_action} \
- -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject
- setfib -F ${i} route -q ${_action} \
- -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject
- printf " %d" ${i}
- i=$((i + 1))
- done
- printf "\n"
- fi
+ route ${_action} -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject ${fibmod}
+ route ${_action} -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject ${fibmod}
case ${ipv6_defaultrouter} in
[Nn][Oo] | '')
@@ -233,21 +224,8 @@ static_inet6()
# 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
- i=1
- if test ${i} -lt ${fibs}; then
- printf "Also installing reject routes for FIBs"
- while test ${i} -lt ${fibs}; do
- setfib -F ${i} route -q ${_action} \
- -inet6 fe80:: -prefixlen 10 ::1 -reject
- setfib -F ${i} route -q ${_action} \
- -inet6 ff02:: -prefixlen 16 ::1 -reject
- printf " %d" ${i}
- i=$((i + 1))
- done
- printf "\n"
- fi
+ route ${_action} -inet6 fe80:: -prefixlen 10 ::1 -reject ${fibmod}
+ route ${_action} -inet6 ff02:: -prefixlen 16 ::1 -reject ${fibmod}
case ${ipv6_default_interface} in
'')
OpenPOWER on IntegriCloud