всплываем, ситуация такая:
мучаюсь все с тем же, есть у меня 2 подсети:
192.168.9.0/24 через ppp0
192.168.8.0/24 через ppp1
работают они через эти 2 команды:
ip route add 192.168.9.0/24 via 192.168.101.2
ip route add 192.168.8.0/24 via 192.168.101.3
балансировку делал по этому мануалу
https://help.ubuntu.ru/wiki/ip_balancingдо запуска скриптов:
vars#!/bin/bash
# LAN interface
IF0="eth1"
# WAN interface 1
IF1="eth0"
# WAN interface 2
IF2="eth2"
IP1="80.242.71.53"
IP2="94.180.105.17"
# gateway 1
P1="80.242.71.1"
# gateway 2
P2="94.180.105.254"
# LAN netmask
P0_NET="192.168.0.0/24"
# WAN1 netmask
P1_NET="80.242.71.0/24"
# WAN2 netmask
P2_NET="94.180.105.0/24"
TBL1="provider1"
TBL2="provider2"
# Realtive weight of channels bandwidth
W1="2"
W2="1"
routing.sh#!/bin/bash
. /etc/balance/vars
echo "1" > /proc/sys/net/ipv4/ip_forward
ip route add 80.242.71.0/24 dev eth0 src 80.242.71.53 table provider1 > /dev/null 2>&1
ip route add default via 80.242.71.1 table provider1 > /dev/null 2>&1
ip route add 94.180.105.0/24 dev eth2 src 94.180.105.17 table provider2 > /dev/null 2>&1
ip route add default via 94.180.105.254 table provider2 > /dev/null 2>&1
ip route add 80.242.71.0/24 dev eth0 src 80.242.71.53 > /dev/null 2>&1
ip route add 94.180.105.0/24 dev eth2 src 94.180.105.17
ip route add default via 80.242.71.1 > /dev/null 2>&1
ip rule add from 80.242.71.53 table provider1 > /dev/null 2>&1
ip rule add from 94.180.105.17 table provider2 > /dev/null 2>&1
ip route add 192.168.0.0/24 dev eth1 table provider1 > /dev/null 2>&1
ip route add 94.180.105.0/24 dev eth2 table provider1 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo table provider1 > /dev/null 2>&1
ip route add 192.168.0.0/24 dev eth1 table provider2 > /dev/null 2>&1
ip route add 80.242.71.0/24 dev eth0 table provider2 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo table provider2 > /dev/null 2>&1
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j MASQUERADE
check.sh#!/bin/bash
. /etc/balance/vars
OLDIF1=0
OLDIF2=0
. /etc/balance/routing.sh
while true; do
ping -c 5 -s 100 $P1 -I $IF1 > /dev/null
if [ $? -ne 0 ]; then
echo "Failed IF1!"
NEWIF1=0
else
NEWIF1=1
fi
ping -c 5 -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 5
done
вот до этих скриптов у меня есть соединение и с локальных машин подсети 192.168.0.0/24 в частности с 192.168.0.111 и 192.168.0.250, а так же с самого прокси 192.168.0.1 до подсетей 192.168.8.0/24 и 192.168.9.0/24
а вот уже после запуска скриптов, доступ из подсети 192.168.0.0/24 в частности с 192.168.0.111 и 192.168.0.250 пропадает совсем, ни пинг ни трасировка не доходит, а вот с прокси сервера который 192.168.0.1 и пинг и трасировка до подсетей 192.168.8.0/24 и 192.168.9.0/24 успешно проходит.
так же у меня работает интернет от 2 провайдеров на подсеть 192.168.0.0/24.
я так понимаю что маршруты почему то уходят с одного провайдера, а получить ответ пытается с другого провайдера.
как побороть эту проблему?
