Hadyai Internet R&D LAB
แหล่งความรู้ => Server => Linux Server System => ข้อความที่เริ่มโดย: admin ที่ 31 สิงหาคม 2008, 21:24:56
-
ไฟล์ /etc/ppp/ip-up.d/0route (ppp101 = Games , ppp102 + ppp103 = WEB)
#!/bin/bash
WAN1=0
WAN2=0
WAN3=0
ppp101=`/sbin/ifconfig -a | grep "ppp101"`
if [ -n "$ppp101" ]; then
# echo "ppp101 is up"
WAN1=1
ip route add default table 101 dev ppp101
ip route add default table 201 dev ppp101
IPWAN=`ip addr show ppp101 |grep inet |cut -d " " -f 6`
ip rule del prio 201
ip rule add from $IPWAN lookup 201 prio 201
fi
ppp102=`/sbin/ifconfig -a | grep "ppp102"`
if [ -n "$ppp102" ]; then
# echo "ppp102 is up"
WAN2=1
ip route add default table 102 dev ppp102
ip route add default table 202 dev ppp102
IPWAN=`ip addr show ppp102 |grep inet |cut -d " " -f 6`
ip rule del prio 202
ip rule add from $IPWAN lookup 202 prio 202
fi
ppp103=`/sbin/ifconfig -a | grep "ppp103"`
if [ -n "$ppp103" ]; then
# echo "ppp103 is up"
WAN3=1
ip route add default table 103 dev ppp103
ip route add default table 203 dev ppp103
IPWAN=`ip addr show ppp103 |grep inet |cut -d " " -f 6`
ip rule del prio 203
ip rule add from $IPWAN lookup 203 prio 203
fi
LinkStatus=$WAN1$WAN2$WAN3
if [ $LinkStatus -eq 111 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
ip route add default equalize nexthop dev ppp102 weight 4 nexthop dev ppp103 weight 4
ip route add table 101 default dev ppp101
ip route add table 102 default dev ppp102
ip route add table 103 default dev ppp103
ip route add table 250 default equalize nexthop dev ppp102 weight 4 nexthop dev ppp103 weight 4
fi
if [ $LinkStatus -eq 011 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
ip route add default dev ppp103
ip route add table 101 default dev ppp102
ip route add table 102 default dev ppp103
ip route add table 103 default dev ppp103
ip route add table 250 default dev ppp103
fi
if [ $LinkStatus -eq 101 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
ip route add default dev ppp103
ip route add table 101 default dev ppp101
ip route add table 102 default dev ppp103
ip route add table 103 default dev ppp103
ip route add table 250 default dev ppp103
fi
if [ $LinkStatus -eq 110 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
ip route add default dev ppp 102
ip route add table 101 default dev ppp101
ip route add table 102 default dev ppp102
ip route add table 103 default dev ppp102
ip route add table 250 default dev ppp102
fi
if [ $LinkStatus -eq 100 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
ip route add default dev ppp101
ip route add table 101 default dev ppp101
ip route add table 102 default dev ppp101
ip route add table 103 default dev ppp101
ip route add table 250 default dev ppp101
fi
if [ $LinkStatus -eq 010 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
ip route add default dev ppp 102
ip route add table 101 default dev ppp102
ip route add table 102 default dev ppp102
ip route add table 103 default dev ppp102
ip route add table 250 default dev ppp102
fi
if [ $LinkStatus -eq 001 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
ip route add default dev ppp 103
ip route add table 101 default dev ppp103
ip route add table 102 default dev ppp103
ip route add table 103 default dev ppp103
ip route add table 250 default dev ppp103
fi
if [ $LinkStatus -eq 000 ]; then
ip route del default
ip route del table 101 default
ip route del table 102 default
ip route del table 103 default
ip route del table 250 default
fi
ip route flush cache
-
ตัวอย่าง Script 5WAN (Wan ละ 4M) โหลดบาลานซ์ทั้ง 5 เส้น ไม่แยกเกมส์
ไฟล์ /etc/ppp/ip-up.d/0route
#!/bin/sh
droute=""
ppp101=`/sbin/ifconfig -a | grep "ppp101"`
if [ -n "$ppp101" ]; then
# echo "ppp101 is up"
status=`expr $status + 1`
ip route add default table 101 dev ppp101
ip route add default table 201 dev ppp101
IPWAN=`ip addr show ppp101 |grep inet |cut -d " " -f 6`
ip rule del prio 201
ip rule add from $IPWAN lookup 201 prio 201
droute="$droute nexthop dev ppp101 weight 4"
fi
ppp102=`/sbin/ifconfig -a | grep "ppp102"`
if [ -n "$ppp102" ]; then
# echo "ppp102 is up"
status=`expr $status + 2`
ip route add default table 102 dev ppp102
ip route add default table 202 dev ppp102
IPWAN=`ip addr show ppp102 |grep inet |cut -d " " -f 6`
ip rule del prio 202
ip rule add from $IPWAN lookup 202 prio 202
droute="$droute nexthop dev ppp102 weight 4"
fi
ppp103=`/sbin/ifconfig -a | grep "ppp103"`
if [ -n "$ppp103" ]; then
# echo "ppp103 is up"
status=`expr $status + 4`
ip route add default table 103 dev ppp103
ip route add default table 203 dev ppp103
IPWAN=`ip addr show ppp103 |grep inet |cut -d " " -f 6`
ip rule del prio 203
ip rule add from $IPWAN lookup 203 prio 203
droute="$droute nexthop dev ppp103 weight 4"
fi
ppp104=`/sbin/ifconfig -a | grep "ppp104"`
if [ -n "$ppp104" ]; then
# echo "ppp104 is up"
status=`expr $status + 8`
ip route add default table 104 dev ppp104
ip route add default table 204 dev ppp104
IPWAN=`ip addr show ppp104 |grep inet |cut -d " " -f 6`
ip rule del prio 204
ip rule add from $IPWAN lookup 204 prio 204
droute="$droute nexthop dev ppp104 weight 4"
fi
ppp105=`/sbin/ifconfig -a | grep "ppp105"`
if [ -n "$ppp105" ]; then
# echo "ppp105 is up"
status=`expr $status + 16`
ip route add default table 105 dev ppp105
ip route add default table 205 dev ppp105
IPWAN=`ip addr show ppp105 |grep inet |cut -d " " -f 6`
ip rule del prio 205
ip rule add from $IPWAN lookup 205 prio 205
droute="$droute nexthop dev ppp105 weight 4"
fi
if [ -n "$droute" ]; then
ip route del default
ip route del table 250 default
defroute="ip route add default equalize $droute"
defroute2="ip route add table 250 default equalize $droute"
`$defroute`
`$defroute2`
fi
ip route flush cache