Доброго времени суток!
имеем 2 интернет канала adsl настроенный в режиме роутера и 3g модем воткнутый в 3g шлюз тоесть забераем уже готовый канал
сделал по мануалу 2 способом
https://help.ubuntu.ru/wiki/ip_balancingeth0 смотрит в adsl модем
eth1 смотрит в 3g шлюз
eth3 локалка
/etc/balance/var
#!/bin/bash
# LAN interface
IF0="eth3"
# WAN interface 1
IF1="eth0"
# WAN interface 2
IF2="eth1"
IP1="192.168.1.2"
IP2="192.168.1.10"
# gateway 1
P1="192.168.1.1"
# gateway 2
P2="192.168.1.9"
# LAN netmask
P0_NET="192.168.0.0/24"
# WAN1 netmask
P1_NET="192.168.1.0/30"
# WAN2 netmask
P2_NET="192.168.1.8/29"
TBL1="cts"
TBL2="beeline"
# Realtive weight of channels bandwidth
W1="2"
W2="1"
/etc/balance/routing.sh
#!/bin/bash
# LAN interface
IF0="eth3"
# WAN interface 1
IF1="eth0"
# WAN interface 2
IF2="eth1"
IP1="192.168.1.2"
IP2="192.168.1.10"
# gateway 1
P1="192.168.1.1"
# gateway 2
P2="192.168.1.9"
# LAN netmask
P0_NET="192.168.0.0/24"
# WAN1 netmask
P1_NET="192.168.1.0/30"
# WAN2 netmask
P2_NET="192.168.1.8/29"
TBL1="cts"
TBL2="beeline"
# Realtive weight of channels bandwidth
W1="2"
W2="1"root@internetsrv:~# cat /etc/balance/routing.sh
#!/bin/bash
. /etc/balance/var
echo "1" > /proc/sys/net/ipv4/ip_forward
ip route add $P1_NET dev $IF1 src $IP1 table $TBL1 > /dev/null 2>&1
ip route add 0.0.0.0/0 via $P1 table $TBL1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2 table $TBL2 > /dev/null 2>&1
ip route add 0.0.0.0/0 via $P2 table $TBL2 > /dev/null 2>&1
ip route add $P1_NET dev $IF1 src $IP1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 src $IP2 > /dev/null 2>&1
ip route add 0.0.0.0/0 via $P1 > /dev/null 2>&1
ip rule add from $IP1 table $TBL1 > /dev/null 2>&1
ip rule add from $IP2 table $TBL2 > /dev/null 2>&1
ip route add $P0_NET dev $IF0 table $TBL1 > /dev/null 2>&1
ip route add $P2_NET dev $IF2 table $TBL1 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo table $TBL1 > /dev/null 2>&1
ip route add $P0_NET dev $IF0 table $TBL2 > /dev/null 2>&1
ip route add $P1_NET dev $IF1 table $TBL2 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo table $TBL2 > /dev/null 2>&1
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j MASQUERADE
/etc/balance/check.sh
#!/bin/bash
. /etc/balance/var
OLDIF1=0
OLDIF2=0
. /etc/balance/routing.sh
while true; do
ping -c 3 -s 100 $P1 -I $IF1 > /dev/null
if [ $? -ne 0 ]; then
echo "Failed IF1!"
NEWIF1=0
else
NEWIF1=1
fi
ping -c 3 -s 100 $P2 -I $IF2 > /dev/null
if [ $? -ne 0 ]; then
echo "Failed IF2!"
NEWIF2=0
else
NEWIF2=1
fi
if (( ($NEWIF1!=$OLDIF1) || ($NEWIF2!=$OLDIF2) )); then
echo "Changing routes"
if (( ($NEWIF1==1) && ($NEWIF2==1) )); then
echo "Both channels"
ip route delete default
ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 \
nexthop via $P2 dev $IF2 weight $W2
elif (( ($NEWIF1==1) && ($NEWIF2==0) )); then
echo "First channel"
ip route delete default
ip route add default via $P1 dev $IF1
elif (( ($NEWIF1==0) && ($NEWIF2==1) )); then
echo "Second channel"
ip route delete default
ip route add default via $P2 dev $IF2
fi
else
echo "Not changed"
fi
OLDIF1=$NEWIF1
OLDIF2=$NEWIF2
sleep 3
done
запускаем check.sh
и получаем вот такую картину
/etc/balance/check.sh: 28: /etc/balance/check.sh: 1!=0: not found
/etc/balance/check.sh: 28: /etc/balance/check.sh: 1!=0: not found
Not changed
28 строка начинается
if (( ($NEWIF1!=$OLDIF1) || ($NEWIF2!=$OLDIF2) )); then
подскажите плиз в чем трабла
заранее спасибо!