Перейти к содержимому
Калькуляторы

Ubuntu шлюз на 2 прова

Уже несколько дней мучаюсь с настройкой решил спросить совета

Есть машина с ubuntu 3 сетевых карты 2 смотрят на провайдеров одна во внутреннюю сеть.

На машине поднят Squid, OpenVPN и NAT для части пользователей.

Хочется сделать одновременную работу по 2 внешним каналам в более менее адекватной балансировкой

 

прописал вот такие правила

 

ip route add $P1_NET dev $IF1 src $IP1 table $TBL1 > /dev/null 2>&1

ip route add default 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 default 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 default 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

 

где

LAN interface IF0

WAN interface 1 IF1="p4p1"

WAN interface 2 IF2="p5p1"

IP1,2 мои внешние адреса

P1,2 шлюзы моих провайдеров

P1_NET,P2_NET мои подсети внешние Р0_NET внутреня

TBL1,TBL2 таблицы маршрутизации

 

Ну естественно удалил добавление шлюза при поднятии внешних интефейсов

 

ну и собственно правило роута с балансом

ip route delete default

ip route add default scope global nexthop via $P1 dev $IF1 weight $W1 \

nexthop via $P2 dev $IF2 weight $W2

 

По VPN и Сквиду все ок, а вот в НАТ поблема

 

когда пингую скажем 8.8.8.8 то получаю разный TTL пакетов ответа и большие потери.

плюс при просмотре кеша маршрута на самом сервере вижу вот такое

 

ip route get 8.8.8.8

8.8.8.8 via 22.22.22.97 dev p5p1 src 22.22.22.99

cache

ip route get 8.8.8.8

8.8.8.8 via 11.11.11.9 dev p4p1 src 11.11.11.12

cache

ip route get 8.8.8.8

8.8.8.8 via 11.11.11.9 dev p4p1 src 11.11.11.12

cache

ip route get 8.8.8.8

8.8.8.8 via 22.22.22.97 dev p5p1 src 22.22.22.99

cache

ip route get 8.8.8.8

8.8.8.8 via 11.11.11.9 dev p4p1 src 11.11.11.12

cache

ip route get 8.8.8.8

8.8.8.8 via 22.22.22.97 dev p5p1 src 22.22.22.99

cache

 

То есть постоянно меняется маршрут в кеше.

Если кто то такое делал подскажите в чем мой трабл?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тоже пробовал похожий скрипт для резервирования и балансировки, возникли такие же проблемы. Пришлось балансировать в "ручную" - промаркировал сети в iptables и для каждого маркера добавил маршрут на провайдера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подождите, какой кеш? routing cache ведь миллион лет как выпилен из ядра. покажите uname -a

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.