|

- 帖子
- 19
- 精华
- 0
- 积分
- 43
- 威望
- 0
- 贡献
- 0
- 番茄
- 22 个
- 注册时间
- 2010-2-8
|
[求助] 3WAN(多WAN)带宽叠加脚本怎么用?
本帖最后由 skycity999 于 2010-3-7 11:01 编辑
请问下面的3WAN脚本放在路由后台那里运行?谢谢老师!- #!/bin/ash
- # load-balance Script VER 0.5 by rightzd 20081124
- LOGGER=logger
- LOCK_FILE=/var/policyroute-set.lock
- NETLIST=/var/policyroute-netlist
- if [ ! -f $WAN1_NETLIST ]; then
- $LOGGER "$NETLIST does not exist!"
- exit 2
- fi
- $LOGGER "Start PolicyRouting ..."
- WAN1_GATEWAY=$(nvram get wan_gateway)
- WAN2_GATEWAY=$(nvram get wan_gateway)
- WAN3_GATEWAY=$(nvram get wan_gateway)
- WAN1_IFACE=ppp0
- WAN2_IFACE=ppp1
- WAN3_IFACE=ppp2
- LAN_IFACE=$(nvram get lan_ifname)
- LAN_IP=$(nvram get lan_ipaddr)
- LAN_NET=${LAN_IP%.*}.0/24
- WAN1_WAN_IP=$(ifconfig $WAN1_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
- WAN2_WAN_IP=$(ifconfig $WAN2_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
- WAN3_WAN_IP=$(ifconfig $WAN3_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
- LAN_IP=$(ifconfig $LAN_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
- if [ "$WAN1_IFACE" = "$WAN2_IFACE" ]; then
- $LOGGER "Start PolicyRouting fail, WAN1_IFACE = WAN2_IFACE"
- exit
- fi
- if [ "$WAN1_IFACE" = "$WAN3_IFACE" ]; then
- $LOGGER "Start PolicyRouting fail, WAN1_IFACE = WAN3_IFACE"
- exit
- fi
- if [ "$WAN2_IFACE" = "$WAN3_IFACE" ]; then
- $LOGGER "Start PolicyRouting fail, WAN2_IFACE = WAN3_IFACE"
- exit
- fi
- if [ "$WAN1_IFACE" = "" ]; then
- $LOGGER "Start PolicyRouting fail, WAN1_IFACE is NULL"
- exit
- fi
- if [ "$WAN2_IFACE" = "" ]; then
- $LOGGER "Start PolicyRouting fail, WAN2_IFACE is NULL"
- exit
- fi
- if [ "$WAN3_IFACE" = "" ]; then
- $LOGGER "Start PolicyRouting fail, WAN3_IFACE is NULL"
- exit
- fi
- if [ -f $LOCK_FILE ]; then
- $LOGGER "Start PolicyRouting exit, other process starting."
- exit
- fi
- echo "SETTING" > $LOCK_FILE
- $LOGGER "WAN1_IFACE: $WAN1_IFACE, WAN1_WAN_IP: $WAN1_WAN_IP, WAN1_GATEWAY: $WAN1_GATEWAY"
- $LOGGER "WAN2_IFACE: $WAN2_IFACE, WAN2_WAN_IP: $WAN2_WAN_IP, WAN2_GATEWAY: $WAN2_GATEWAY"
- $LOGGER "WAN3_IFACE: $WAN3_IFACE, WAN3_WAN_IP: $WAN3_WAN_IP, WAN3_GATEWAY: $WAN3_GATEWAY"
- $LOGGER "LAN_IP: $LAN_IP LAN_NET: $LAN_NET"
- $LOGGER "disable rp_filter "
- echo 0 >/proc/sys/net/ipv4/conf/all/rp_filter
- $LOGGER "set default router via $WAN1_IFACE, $WAN2_IFACE, $WAN3_IFACE"
- ip route del default
- ip route del default
- ip route del default
- ip route add default nexthop via $WAN1_GATEWAY dev $WAN1_IFACE weight 1 nexthop via $WAN2_GATEWAY dev $WAN2_IFACE weight 1 nexthop via $WAN3_GATEWAY dev $WAN3_IFACE weight 1
- ip rule flush
- ip rule del table main
- ip rule del table default
- ip rule add lookup main prio 32766
- ip rule add lookup default prio 32767
- WAN1_GET_DNS=$(nvram get wan_get_dns)
- for WAN1_DNS in $WAN1_GET_DNS
- do
- $LOGGER "set route($WAN1_GATEWAY) for DNS: $WAN1_DNS"
- ip rule add to $WAN1_DNS table 100 prio 150
- done
- $LOGGER "set route table 100..."
- ip route flush table 100
- ip route del table 100
- ip route add to $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP proto kernel scope link table 100
- ip route add to $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP proto kernel scope link table 100
- ip route add to $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP proto kernel scope link table 100
- ip route add to $LAN_NET dev $LAN_IFACE src $LAN_IP proto kernel scope link table 100
- ip route add to 127.0.0.0/8 dev lo scope link table 100
- ip route add default via $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP table 100
- ip route append default via $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP table 100
- ip route append default via $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP table 100
- ip rule add from $WAN1_WAN_IP table 100 prio 100
- $LOGGER "set route table 200..."
- ip route flush table 200
- ip route del table 200
- ip route add to $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP proto kernel scope link table 200
- ip route add to $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP proto kernel scope link table 200
- ip route add to $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP proto kernel scope link table 200
- ip route add to $LAN_NET dev $LAN_IFACE src $LAN_IP proto kernel scope link table 200
- ip route add to 127.0.0.0/8 dev lo scope link table 200
- ip route add default via $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP table 200
- ip route append default via $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP table 200
- ip route append default via $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP table 200
- ip rule add from $WAN2_WAN_IP table 200 prio 100
- $LOGGER "set route table 203..."
- ip route flush table 203
- ip route del table 203
- ip route add to $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP proto kernel scope link table 203
- ip route add to $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP proto kernel scope link table 203
- ip route add to $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP proto kernel scope link table 203
- ip route add to $LAN_NET dev $LAN_IFACE src $LAN_IP proto kernel scope link table 203
- ip route add to 127.0.0.0/8 dev lo scope link table 203
- ip route add default via $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP table 203
- ip route append default via $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP table 203
- ip route append default via $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP table 203
- ip rule add from $WAN3_WAN_IP table 203 prio 100
- #防止QQ掉线加的IP,默认走wan1线
- ip rule add to 219.133.60.0/24 table 100 prio 100
- ip rule add to 219.133.48.0/24 table 100 prio 100
- ip rule add to 219.133.40.0/24 table 100 prio 100
- ip rule add to 219.133.38.0/24 table 100 prio 100
- ip rule add to 119.147.11.0/24 table 100 prio 100
- ip rule add to 119.147.12.0/24 table 100 prio 100
- ip rule add to 119.147.14.0/24 table 100 prio 100
- ip rule add to 121.14.77.0/24 table 100 prio 100
- ip rule add to 121.14.101.0/24 table 100 prio 100
- ip rule add to 121.14.100.0/24 table 100 prio 100
- ip rule add to 121.14.73.0/24 table 100 prio 100
- ip rule add to 61.152.88.0/24 table 100 prio 100
- ip rule add to 61.152.100.0/24 table 100 prio 100
- ip rule add to 58.59.1.0/24 table 100 prio 100
- ip rule add to 58.60.10.0/24 table 100 prio 100
- ip rule add to 58.61.166.0/24 table 100 prio 100
- ip rule add to 58.61.32.0/24 table 100 prio 100
- ip rule add to 58.61.33.0/24 table 100 prio 100
- ip rule add to 124.115.5.0/24 table 100 prio 100
- ip rule add to 61.177.95.103 table 100 prio 100
- $LOGGER "clear route cache..."
- ip route flush cache
- $LOGGER "Start PolicyRouting success."
- rm $LOCK_FILE
复制代码 |
|