#!/bin/sh
#create in 20090821 by
CONF=/my/klb/conf
VIP=$(sed -n '/vip/p' $CONF/lb_other.conf | awk '{print $4}')
BROAD=$(echo "$VIP" | awk -F. '{print $1"." $2"."$3".255"}')
NETMASK=255.255.255.255
netup()
{
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p > /dev/null 2>&1
}
netdown()
{
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p > /dev/null 2>&1
}
case "$1" in
startmain)
IPL=$(/sbin/ifconfig | grep "lo:100" | awk '{print $1}' | awk -F: '{print $2 }')
if [ $IPL -eq 100 ]; then
/sbin/ifconfig lo:100 down > /dev/null 2>&1
netup
fi
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/ifconfig lan1:100 $VIP netmask $NETMASK broadcast $BROAD up
netup
arping -i lan1 -S $VIP -B -c 5 > /dev/null 2>&1
touch /var/lock/ipvsadm > /dev/null 2>&1
exit 0
;;
#stopmain)
# /sbin/ifconfig lan1:100 down
# rm -rf /var/lock/subsys/ipvsadm > /dev/null 2>&1
# exit 0
# ;;
startback)
IPN=$(/sbin/ifconfig | grep "lan1:100" | awk '{print $1}' | awk -F: '{print $2 }')
if [ $IPN -eq 100 ]; then
/sbin/ifconfig lan1:100 down > /dev/null 2>&1
netdown
fi
/sbin/ifconfig lo:100 $VIP netmask $NETMASK broadcast $BROAD up
echo "0" > /proc/sys/net/ipv4/ip_forward
netdown
exit 0
;;
stop)
/sbin/ifconfig lo:100 down > /dev/null 2>&1
/sbin/ifconfig lan1:100 down > /dev/null 2>&1
echo "1" > /proc/sys/net/ipv4/ip_forward
netup
/sbin/ifconfig lan1 up
exit 0
;;
status)
if [ ! -f /var/lock/ipvsadm ];then
echo "ipvsadm server stop"
exit 1
else
echo "ipvsadm server start"
fi
;;
*)
echo "Usage: $0 {startmain|startback|stop|status}"
exit 1
esac
exit 0