
в /etc/iproute2/rt_tables добавляем
101 provider1
102 provider2
103 provider3
104 provider4
создаём /etc/netbalance/vars
#!/bin/bash
# Сетевая на клиентов
IF0="eth2"
# Сетевая на шлюз 1
IF1="eth0"
# Сетевая на шлюз 2
IF2="eth1"
# Сетевая на шлюз 3
IF3="eth1"
# Сетевая на шлюз 4
IF4="eth1"
# шлюз 1
GW1="192.168.1.2"
# шлюз 2
GW2="192.189.1.2"
# шлюз 3
GW3="192.189.1.3"
# шлюз 4
GW4="192.189.1.4"
# check ip meta.ua
IP="194.0.131.18"
IPLAN="10.0.0.3 10.0.0.4 10.0.0.5 10.0.0.6 10.0.0.7 10.0.0.8 10.0.0.9 10.0.0.10 10.0.0.11 10.0.0.12 10.0.0.13 10.0.0.14 10.0.0.15 10.0.0.16 10.0.0.17 10.0.0.18 10.0.0.19 10.0.0.20 10.0.0.21 10.0.0.22 10.0.0.23 10.0.0.24 10.0.0.25 10.0.0.26 10.0.0.27 10.0.0.28 10.0.0.29 10.0.0.30 10.0.0.31 10.0.0.32 10.0.0.33 10.0.0.34 10.0.0.35 10.0.0.36 10.0.0.37 10.0.0.38 10.0.0.39 10.0.0.40 10.0.0.41 10.0.0.42 10.0.0.43 10.0.0.44 10.0.0.45 10.0.0.46 10.0.0.47 10.0.0.48 10.0.0.49 10.0.0.50 10.0.0.51 10.0.0.52 10.0.0.53 10.0.0.54 10.0.0.55 10.0.0.56 10.0.0.57 10.0.0.58 10.0.0.59 10.0.0.60 10.0.0.61 10.0.0.62 10.0.0.63 10.0.0.64 10.0.0.65 10.0.0.66 10.0.0.67 10.0.0.68 10.0.0.69 10.0.0.70 10.0.0.71 10.0.0.72 10.0.0.73 10.0.0.74 10.0.0.75 10.0.0.76 10.0.0.77 10.0.0.78 10.0.0.79 10.0.0.80 10.0.0.81 10.0.0.82 10.0.0.83 10.0.0.84 10.0.0.85 10.0.0.86 10.0.0.87 10.0.0.88 10.0.0.89 10.0.0.90 10.0.0.91 10.0.0.92 10.0.0.93 10.0.0.94 10.0.0.95 10.0.0.96 10.0.0.97 10.0.0.98 10.0.0.99 10.0.0.100 10.0.0.101 10.0.0.102 10.0.0.103 10.0.0.104 10.0.0.105 10.0.0.106 10.0.0.107 10.0.0.108 10.0.0.109 10.0.0.110 10.0.0.111 10.0.0.112 10.0.0.113 10.0.0.114 10.0.0.115 10.0.0.116 10.0.0.117 10.0.0.118 10.0.0.119 10.0.0.120 10.0.0.121 10.0.0.122 10.0.0.123 10.0.0.124 10.0.0.125 10.0.0.126 10.0.0.127 10.0.0.128 10.0.0.129 10.0.0.130 10.0.0.131 10.0.0.132 10.0.0.133 10.0.0.134 10.0.0.135 10.0.0.136 10.0.0.137 10.0.0.138 10.0.0.139 10.0.0.140 10.0.0.141 10.0.0.142 10.0.0.143 10.0.0.144 10.0.0.145 10.0.0.146 10.0.0.147 10.0.0.148 10.0.0.149 10.0.0.150 10.0.0.151 10.0.0.152 10.0.0.153 10.0.0.154 10.0.0.155 10.0.0.156 10.0.0.157 10.0.0.158 10.0.0.159 10.0.0.160 10.0.0.161 10.0.0.162 10.0.0.163 10.0.0.164 10.0.0.165 10.0.0.166 10.0.0.167 10.0.0.168 10.0.0.169 10.0.0.170 10.0.0.171 10.0.0.172 10.0.0.173 10.0.0.174 10.0.0.175 10.0.0.176 10.0.0.177 10.0.0.178 10.0.0.179 10.0.0.180 10.0.0.181 10.0.0.182 10.0.0.183 10.0.0.184 10.0.0.185 10.0.0.186 10.0.0.187 10.0.0.188 10.0.0.189 10.0.0.190 10.0.0.191 10.0.0.192 10.0.0.193 10.0.0.194 10.0.0.195 10.0.0.196 10.0.0.197 10.0.0.198 10.0.0.199 10.0.0.200 10.0.0.201 10.0.0.202 10.0.0.203 10.0.0.204 10.0.0.205 10.0.0.206 10.0.0.207 10.0.0.208 10.0.0.209 10.0.0.210 10.0.0.211 10.0.0.212 10.0.0.213 10.0.0.214 10.0.0.215 10.0.0.216 10.0.0.217 10.0.0.218 10.0.0.219 10.0.0.220 10.0.0.221 10.0.0.222 10.0.0.223 10.0.0.224 10.0.0.225 10.0.0.226 10.0.0.227 10.0.0.228 10.0.0.229 10.0.0.230 10.0.0.231 10.0.0.232 10.0.0.233 10.0.0.234 10.0.0.235 10.0.0.236 10.0.0.237 10.0.0.238 10.0.0.239 10.0.0.240 10.0.0.241 10.0.0.242 10.0.0.243 10.0.0.244 10.0.0.245 10.0.0.246 10.0.0.247 10.0.0.248 10.0.0.249 10.0.0.250 10.0.0.251 10.0.0.252 10.0.0.253 10.0.0.254"
TBL1="provider1"
TBL2="provider2"
TBL3="provider3"
TBL4="provider4"
IPLAN= ip-адреса клиентов
IP = ip на meta.ua для проверки модемов/шлюзов
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
создаём /etc/netbalance/netbalance.sh
#!/bin/bash
. /etc/netbalance/vars
OLDIF1=0
OLDIF2=0
OLDIF3=0
OLDIF4=0
NEWIF1=0
NEWIF2=0
NEWIF3=0
NEWIF4=0
TBL=1
while true; do
route add $IP gw $GW1
ping -c 3 -s 100 $IP -I $IF1 > /dev/null
if [ $? -ne 0 ]; then
if [ $NEWIF1 -eq 1 ] ; then
echo "'$(date)' -- Шлюз $GW1 не доступен!" >> /var/log/check.log
fi
NEWIF1=0
else
NEWIF1=1
fi
route delete $IP gw $GW1
route add $IP gw $GW2
ping -c 3 -s 100 $IP -I $IF2 > /dev/null
if [ $? -ne 0 ]; then
if [ $NEWIF2 -eq 1 ] ; then
echo "'$(date)' -- Шлюз $GW2 не доступен!" >> /var/log/check.log
fi
NEWIF2=0
else
NEWIF2=1
fi
route delete $IP gw $GW2
route add $IP gw $GW3
ping -c 3 -s 100 $IP -I $IF3 > /dev/null
if [ $? -ne 0 ]; then
if [ $NEWIF3 -eq 1 ] ; then
echo "'$(date)' -- Шлюз $GW3 не доступен!" >> /var/log/check.log
fi
NEWIF3=0
else
NEWIF3=1
fi
route delete $IP gw $GW3
route add $IP gw $GW4
ping -c 3 -s 100 $IP -I $IF4 > /dev/null
if [ $? -ne 0 ]; then
if [ $NEWIF4 -eq 1 ] ; then
echo "'$(date)' -- Шлюз $GW4 не доступен!" >> /var/log/check.log
fi
NEWIF4=0
else
NEWIF4=1
fi
route delete $IP gw $GW4
if (( ($NEWIF1!=$OLDIF1) || ($NEWIF2!=$OLDIF2) || ($NEWIF3!=$OLDIF3) || ($NEWIF4!=$OLDIF4) )); then
echo "'$(date)' -- Изменены маршруты" >> /var/log/check.log
if (( ($NEWIF1==1) && ($NEWIF2==1) && ($NEWIF3==1) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активны Шлюз $GW1 Шлюз $GW2 Шлюз $GW3 Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW1 table $TBL1
ip route add default via $GW2 table $TBL2
ip route add default via $GW3 table $TBL3
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==5) )); then
TBL=1
fi
if (( ($TBL==1) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
elif (( ($TBL==2) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
elif (( ($TBL==3) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
elif (( ($TBL==4) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==1) && ($NEWIF2==1) && ($NEWIF3==1) && ($NEWIF4==0) )); then
echo "'$(date)' -- Активны Шлюз $GW1 Шлюз $GW2 Шлюз $GW3" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW1 table $TBL1
ip route add default via $GW2 table $TBL2
ip route add default via $GW3 table $TBL3
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==4) )); then
TBL=1
fi
if (( ($TBL==1) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
elif (( ($TBL==2) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
elif (( ($TBL==3) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==1) && ($NEWIF2==1) && ($NEWIF3==0) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активны Шлюз $GW1 Шлюз $GW2 Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW1 table $TBL1
ip route add default via $GW2 table $TBL2
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==5) )); then
TBL=1
fi
if (( ($TBL==3) )); then
TBL=4
fi
if (( ($TBL==1) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
elif (( ($TBL==2) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
elif (( ($TBL==4) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==1) && ($NEWIF2==0) && ($NEWIF3==1) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активны Шлюз $GW1 Шлюз $GW3 Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW1 table $TBL1
ip route add default via $GW3 table $TBL3
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==5) )); then
TBL=1
fi
if (( ($TBL==2) )); then
TBL=3
fi
if (( ($TBL==1) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
elif (( ($TBL==3) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
elif (( ($TBL==4) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==0) && ($NEWIF2==1) && ($NEWIF3==1) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активны Шлюз $GW2 Шлюз $GW3 Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW2 table $TBL2
ip route add default via $GW3 table $TBL3
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==5) )); then
TBL=2
fi
if (( ($TBL==1) )); then
TBL=2
fi
if (( ($TBL==2) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
elif (( ($TBL==3) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
elif (( ($TBL==4) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==1) && ($NEWIF2==1) && ($NEWIF3==0) && ($NEWIF4==0) )); then
echo "'$(date)' -- Активны Шлюз $GW1 Шлюз $GW2" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW1 table $TBL1
ip route add default via $GW2 table $TBL2
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==3) )); then
TBL=1
fi
if (( ($TBL==1) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
elif (( ($TBL==2) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==1) && ($NEWIF2==0) && ($NEWIF3==0) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активны Шлюз $GW1 Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW1 table $TBL1
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==5) )); then
TBL=1
fi
if (( ($TBL==2) || ($TBL==3) )); then
TBL=4
fi
if (( ($TBL==1) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
elif (( ($TBL==4) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==0) && ($NEWIF2==1) && ($NEWIF3==0) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активны Шлюз $GW2 Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW2 table $TBL2
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==5) )); then
TBL=2
fi
if (( ($TBL==1) )); then
TBL=2
fi
if (( ($TBL==3) )); then
TBL=4
fi
if (( ($TBL==2) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
elif (( ($TBL==4) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==1) && ($NEWIF2==0) && ($NEWIF3==1) && ($NEWIF4==0) )); then
echo "'$(date)' -- Активны Шлюз $GW1 Шлюз $GW3" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW1 table $TBL1
ip route add default via $GW3 table $TBL3
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==2) )); then
TBL=3
elif (( ($TBL==4) )); then
TBL=1
fi
if (( ($TBL==1) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
elif (( ($TBL==3) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==0) && ($NEWIF2==1) && ($NEWIF3==1) && ($NEWIF4==0) )); then
echo "'$(date)' -- Активны Шлюз $GW2 Шлюз $GW3" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW2 table $TBL2
ip route add default via $GW3 table $TBL3
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==1) )); then
TBL=2
elif (( ($TBL==4) )); then
TBL=1
fi
if (( ($TBL==2) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
elif (( ($TBL==3) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==0) && ($NEWIF2==0) && ($NEWIF3==1) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активны Шлюз $GW3 Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
TBL=1
ip route add default via $GW3 table $TBL3
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
if (( ($TBL==1) || ($TBL==2) || ($TBL==5) )); then
TBL=3
fi
if (( ($TBL==3) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
elif (( ($TBL==4) )); then
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
let "TBL+=1"
fi
done
ip route flush cache
elif (( ($NEWIF1==1) && ($NEWIF2==0) && ($NEWIF3==0) && ($NEWIF4==0) )); then
echo "'$(date)' -- Активен Шлюз $GW1" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
ip route add default via $GW1 table $TBL1
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
ip rule delete from $iplan
ip rule add from $iplan table $TBL1
fi
done
ip route flush cache
elif (( ($NEWIF1==0) && ($NEWIF2==1) && ($NEWIF3==0) && ($NEWIF4==0) )); then
echo "'$(date)' -- Активен Шлюз $GW2" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
ip route add default via $GW2 table $TBL2
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
ip rule delete from $iplan
ip rule add from $iplan table $TBL2
fi
done
ip route flush cache
elif (( ($NEWIF1==0) && ($NEWIF2==0) && ($NEWIF3==1) && ($NEWIF4==0) )); then
echo "'$(date)' -- Активен Шлюз $GW3" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
ip route add default via $GW3 table $TBL3
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
ip rule delete from $iplan
ip rule add from $iplan table $TBL3
fi
done
ip route flush cache
elif (( ($NEWIF1==0) && ($NEWIF2==0) && ($NEWIF3==0) && ($NEWIF4==1) )); then
echo "'$(date)' -- Активен Шлюз $GW4" >> /var/log/check.log
ip route flush table $TBL1
ip route flush table $TBL2
ip route flush table $TBL3
ip route flush table $TBL4
ip route add default via $GW4 table $TBL4
for iplan in $IPLAN
do
nmap -sP $iplan | grep "1 host up" > /dev/null
if [ $? -ne 0 ]; then
echo " -- $iplan - нет в сети!"
ip rule delete from $iplan
else
echo " -- $iplan - есть в сети!"
ip rule delete from $iplan
ip rule add from $iplan table $TBL4
fi
done
ip route flush cache
fi
fi
OLDIF1=$NEWIF1
OLDIF2=$NEWIF2
OLDIF3=$NEWIF3
OLDIF4=$NEWIF4
done
exit 0
так как 3 модема находятся в одной сети для проверки живой ли модем использовал команды
route add $IP gw $GW*
ping -c 3 -s 100 $IP -I $IF* > /dev/null
if [ $? -ne 0 ]; then
if [ $NEWIF* -eq 1 ] ; then
echo "'$(date)' -- Шлюз $GW* не доступен!" >> /var/log/check.log
fi
NEWIF*=0
else
NEWIF*=1
fi
route delete $IP gw $GW*
так как просто пинг на ip модема результата не давал, они как законно раз в день зависают, пинг от них идёт а инета нет

хотя вот на днях поставил свои днс на модемах 8.8.8.8 и 4.2.2.2 и пока норм

кидаем /etc/netbalance/netbalance.sh в автозагрузку и наслаждаемся

ЖДУ СОВЕТЫ И ИСПРАВЛЕНИЯ - РАБОТАЕТ ЭТО СОВМЕСТНО С TRAFFPRO, 5 ДНЕЙ ПОЛЁТ НОРМ

сделал оптимизацию заменил ping -c 2 $iplan > /dev/null на nmap -sP $iplan | grep "1 host up" > /dev/null время сканирования намного меньше проходит + ping не видел клиентов у кого включён брандмауэр или ещё какая-то фигня

ПЕРЕД ИСПОЛЬЗОВАНИЕМ СКРИПТА НУЖНО УСТАНОВИТЬ sudo apt-get install nmap