- 论坛徽章:
- 0
|
# echo "200 DIANXIN" >;>; /etc/iproute2/rt_table
# ip route add default via $接电信网卡IP table DIANXIN
# ip route add default via $接网通网卡IP
# ip rule add fwmark 1 table DIANXIN
# ip route flush cache
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d $电信IP -j MARK --set-mark 1
#!/usr/bin/expect
set target [lindex $argv 0]
set timeout 1
spawn ping -c 1 -s 1 $target
expect {
" 0% packet loss" {
exit 0
}
timeout {
exit 1
}
}
比如网关1为192.168.1.1,网关2为192.168.2.1,那么要监测这两个网关的话,是否可以这样:
CODE:
#!/bin/sh
netwatch.exp 192.168.1.1
result1=$?
netwatch.exp 192.168.2.1
result2=$?
if [ "$result1" eq 0 ] && [ "$result2" eq 0 ] ; then
# 如果上次检测时连接丢失,而此次恢复正常
if [ -e /var/run/lost-connection ] ; then
do some recovery action here ...
rm /var/run/lost-connection
fi
# 如果网关1不可达
elif [ "$result1" ne 0 ] ; then
change default route to 192.168.2.1
do some action here, such as iptables NAT
# 创建连接丢失标识
touch /var/run/lost-connection
# 如果网关2不可达
elif [ "$result2" ne 0 ] ; then
change default route to 192.168.1.1
do some action here, such as iptables NAT
# 创建连接丢失标识
touch /var/run/lost-connection
fi
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
这个脚本能达到冗余功能吗 希望斑竹帮我修改修改,做一个比较完美的双线接入服务器 呵呵!! |
|