Jump to content
Калькуляторы

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.