#!/bin/sh
# dual gateway using 3 nic and 4 ips with one alias
# isp1 on eth0
# isp2 on eth1
# eth2 = for LAN group1
# eth2:1= for LAN group2
#
# Created by mambang 2007
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
IFCONFIG=/sbin/ifconfig
NETWORK=/etc/init.d/networking
IP=/sbin/ip
IPTABLES=/sbin/iptables
NAME="MULTI-GATEWAY"
DESC1="ROUTING TABLE"
GATEWAY1=192.168.1.1
GATEWAY2=192.168.2.1
NET1=192.168.1.11 #ip eth0
NET2=192.168.2.22 #ip eth1
LAN1=10.0.0.1 #ip LAN1 = eth2
LAN2=176.16.0.1 #ip LAN2 = eth2:1
SUB1=192.168.1.0/24 #sub local
SUB2=192.168.2.0/24 #sub local
SUB3=10.0.0.0/24 #subnet client LAN1
SUB4=176.16.0.0/24 #subnet client LAN2
DEV1=eth0
DEV2=eth1
DEV3=eth2
DEV4=eth2 #walaupun kita guna eth2:1 tetapi in real world eth2 yg dibaca
case "$1" in
start)
echo -n "Memulakan $DESC1: "
echo "0" >/proc/sys/net/ipv4/conf/$DEV1/rp_filter
echo "0" >/proc/sys/net/ipv4/conf/$DEV2/rp_filter
ip rule add from $NET1 lookup 1
ip route replace default via $GATEWAY1 dev $DEV1 table 1
ip route replace $SUB3 via $LAN1 table 1
ip rule add from $NET2 lookup 2
ip route replace default via $GATEWAY2 dev $DEV2 table 2
ip route replace $SUB4 via $LAN2 table 2
ip route replace default equalize \
nexthop via $GATEWAY1 dev $DEV1 \
nexthop via $GATEWAY22 dev $DEV2
ip route flush cache
echo "$NAME"
;;
stop)
echo "Menghentikan $DESC1 $NAME ... "
$IP route flush all
$IFCONFIG $NET1 down
$IFCONFIG $NET2 down
$IFCONFIG $LAN1 down
$IFCONFIG $LAN2 down
$NETWORK restart
echo "Default routing table restored"
;;
*)
N=/etc/init.d/splitgateway
echo "Cara Guna: $N {start|stop}" >&2
exit 1
;;
esac
exit 0