97 lines
2.5 KiB
Plaintext
97 lines
2.5 KiB
Plaintext
|
#!/bin/sh
|
|||
|
#
|
|||
|
#Dieses script nutzt in verbindung mit dem iproute packet die
|
|||
|
#advanced routing funktionalitaeten des Linux Kernels
|
|||
|
#Entsprechende funktionalitaet muss in den kernel einkompiliert sein.
|
|||
|
#
|
|||
|
#(c) Rainmaker MultiMedia OHG
|
|||
|
#
|
|||
|
#$Author$
|
|||
|
#$Date$
|
|||
|
#$Revision$
|
|||
|
#
|
|||
|
#$Log$
|
|||
|
#Revision 1.2 2003/04/19 07:47:37 kueller
|
|||
|
#Restart funktion und defaultverhalten (usage ausgabe) eingebaut
|
|||
|
#
|
|||
|
#Revision 1.1.1.1 2002/06/20 15:05:07 hkueller
|
|||
|
#Start Scripten f<>r advanced kernel routing
|
|||
|
#
|
|||
|
#
|
|||
|
|
|||
|
source /etc/init.d/functions
|
|||
|
|
|||
|
#DEBUG=echo
|
|||
|
|
|||
|
case "$1" in
|
|||
|
start)
|
|||
|
if [ -f /etc/sysconfig/net/routetable ]; then
|
|||
|
sed -e "/^#/d" /etc/sysconfig/net/routetable | \
|
|||
|
sed -e "/^ *$/d" >/tmp/routetable
|
|||
|
exec 3</tmp/routetable
|
|||
|
read <&3 NETWORK DEVICE TABLE
|
|||
|
while [ "$NETWORK" ]; do
|
|||
|
echo -n "Adding routing for net $NETWORK over device $DEVICE to table $TABLE"
|
|||
|
$DEBUG ip route add $NETWORK dev $DEVICE table $TABLE
|
|||
|
evaluate_retval
|
|||
|
read <&3 NETWORK DEVICE TABLE
|
|||
|
done
|
|||
|
exec 3>&-
|
|||
|
rm /tmp/routetable
|
|||
|
fi
|
|||
|
if [ -f /etc/sysconfig/net/routerule ]; then
|
|||
|
sed -e "/^#/d" /etc/sysconfig/net/routerule | \
|
|||
|
sed -e "/^ *$/d" >/tmp/routerule
|
|||
|
exec 3</tmp/routerule
|
|||
|
read <&3 RULTYPE RULOPT RULDEST
|
|||
|
while [ "$RULTYPE" ]; do
|
|||
|
echo -n "Adding routing rule $ROUTETYPE $ROUTOPT with destination $RULDEST"
|
|||
|
$DEBUG ip rule add $RULTYPE $RULOPT table $RULDEST
|
|||
|
evaluate_retval
|
|||
|
read <&3 RULTYPE RULOPT RULDEST
|
|||
|
done
|
|||
|
exec 3>&-
|
|||
|
rm /tmp/routerule
|
|||
|
fi
|
|||
|
;;
|
|||
|
stop)
|
|||
|
if [ -f /etc/sysconfig/net/routerule ]; then
|
|||
|
sed -e "/^#/d" /etc/sysconfig/net/routerule | \
|
|||
|
sed -e "/^ *$/d" >/tmp/routerule
|
|||
|
exec 3</tmp/routerule
|
|||
|
read <&3 RULTYPE RULOPT RULDEST
|
|||
|
while [ "$RULTYPE" ]; do
|
|||
|
echo -n "deleting rule $RULTYPE $RULOPT from table $RULDEST"
|
|||
|
$DEBUG ip rule del $RULTYPE $RULOPT table $RULDEST
|
|||
|
evaluate_retval
|
|||
|
read <&3 RULTYPE RULOPT RULDEST
|
|||
|
done
|
|||
|
exec 3>&-
|
|||
|
rm /tmp/routerule
|
|||
|
fi
|
|||
|
if [ -f /etc/sysconfig/net/routetable ]; then
|
|||
|
sed -e "/^#/d" /etc/sysconfig/net/routetable | \
|
|||
|
sed -e "/^ *$/d" >/tmp/routetable
|
|||
|
exec 3</tmp/routetable
|
|||
|
read <&3 NETWORK DEVICE TABLE
|
|||
|
while [ "$NETWORK" ]; do
|
|||
|
echo -n "deleting routeentry for $NETWORK from table $TABLE"
|
|||
|
$DEBUG ip route del $NETWORK dev $DEVICE table $TABLE
|
|||
|
evaluate_retval
|
|||
|
read <&3 NETWORK DEVICE TABLE
|
|||
|
done
|
|||
|
exec 3>&-
|
|||
|
rm /tmp/routetable
|
|||
|
fi
|
|||
|
;;
|
|||
|
restart)
|
|||
|
$0 stop
|
|||
|
sleep 1
|
|||
|
$0 start
|
|||
|
;;
|
|||
|
*)
|
|||
|
echo "usage: $0 {start|stop|restart}"
|
|||
|
;;
|
|||
|
esac
|
|||
|
#end /etc/inet.d/network
|