38 lines
729 B
Bash
Executable File
38 lines
729 B
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Split default route into 8 smaller routes to avoid
|
|
# lock contention during route lookup
|
|
#
|
|
# If a default router is not specified, it will be
|
|
# taken from rc.conf.
|
|
#
|
|
|
|
ROUTECMD="/sbin/route -q "
|
|
ROUTES="0.0.0.0/3 32.0.0.0/3 64.0.0.0/3 96.0.0.0/3 128.0.0.0/3 160.0.0.0/3 192.0.0.0/3 224.0.0.0/3"
|
|
|
|
if [ $# -lt 1 ]; then
|
|
echo "syntax: $0 [start|stop]"
|
|
exit 1
|
|
fi
|
|
|
|
case $1 in
|
|
start)
|
|
GW=`sysrc -n defaultrouter`
|
|
echo "splitgateway: Assuming ${GW} from rc.conf..."
|
|
|
|
for R in ${ROUTES}; do
|
|
${ROUTECMD} add -net ${R} ${GW}
|
|
done
|
|
;;
|
|
stop)
|
|
for R in ${ROUTES}; do
|
|
${ROUTECMD} delete -net ${R}
|
|
done
|
|
;;
|
|
esac
|
|
|
|
|
|
# no need to remove default route since it will never be matched
|
|
#${ROUTECMD} delete default
|
|
|