#!/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: " # Setup source IP routing rules for DSL 1 # anda perlu masukkan table ke iproute2 sebelun run script ini # echo "1 T1" >> /etc/iproute2/rt_tables # echo "2 T2" >> /etc/iproute2/rt_tables $IP route add $SUB1 dev $DEV1 src $NET1 table T1 $IP route add default via $GATEWAY1 table T1 $IP route add $SUB2 dev $DEV2 src $NET2 table T2 $IP route add default via $GATEWAY2 table T2 $IP route add $SUB1 dev $DEV1 src $NET1 $IP route add $SUB2 dev $DEV2 src $NET2 $IP route add default via $GATEWAY1 $IP rule add from $NET1 table T1 $IP rule add from $NET2 table T2 $IP route add $SUB3 dev $DEV3 table T1 $IP route add $SUB2 dev $DEV2 table T1 $IP route add 127.0.0.0/8 dev lo table T1 $IP route add $SUB4 dev $DEV4 table T2 $IP route add $SUB1 dev $DEV1 table T2 $IP route add 127.0.0.0/8 dev lo table T2 $IP route flush cache $IP route replace default equalize \ nexthop via $GATEWAY1 dev $DEV1 \ nexthop via $GATEWAY2 dev $DEV2 #$IP route add default nexthop via $GATEWAY1 dev $DEV1 #untuk load balancing #$IP route add nexthop via $GATEWAY2 dev $DEV2 #untuk load balancing #$IPTABLES -t nat -A POSTROUTING -s $LAN1 -o $DEV1 -j SNAT --to $GATEWAY1 #$IPTABLES -t nat -A POSTROUTING -s $LAN2 -o $DEV2 -j SNAT --to $GATEWAY2 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