балансировка нагрузки

Автор kima, 14 Июля 2010, 20:36

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

kima

14 Июля 2010, 20:36 Последнее редактирование: 14 Июля 2010, 20:39 от kima
Здравствуйте! помогите пожалуйста! нужно настроить средствами Линукса балансировку нагрузки. схема выглядит примерно так 5 линий мегалайна (все в одной подсети 192.168.1.{1-5}), нужно подрубить сервак к этим 5 WAN линиям и суммарную скорость передать в LAN.

                           __________                                    ____________
modem1(192.168.1.1/24) ----|          |                                  |            |  
modem2(192.168.1.2/24) ----|          |                                  |            |
modem3(192.168.1.3/24) ----|  SWITCH  |----  WAN((192.168.1.10/24))  ----|   SERVER   |----   LAN(192.168.2.1/24)
modem4(192.168.1.4/24) ----|          |                                  |            |
modem5(192.168.1.5/24) ----|__________|                                  |____________|


С каждой мегалайновсой линии идет 1Мб\с(в сумме 5Мб\с)Так вооот хотелось бы чтобы все кто находится в LAN могли юзать все 5Мб\с. Помогите пожалуйста

kima

по какому то мануалу пробовал сделать:

192.168.5.0 dev eth4  scope link  src 192.168.5.200
192.168.3.0 dev eth2  scope link  src 192.168.3.200
192.168.4.0 dev eth3  scope link  src 192.168.4.200
192.168.2.0 dev eth1  scope link  src 192.168.2.200
192.168.5.0/24 dev eth4  proto kernel  scope link  src 192.168.5.200
192.168.4.0/24 dev eth3  proto kernel  scope link  src 192.168.4.200
192.168.3.0/24 dev eth2  proto kernel  scope link  src 192.168.3.200
192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.200
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.200
169.254.0.0/16 dev eth4  scope link
default via 192.168.2.1 dev eth1
[root@localhost ~]# cat ip_route_5_lines
#!/bin/bash

ip route add 192.168.2.0 dev eth1 src 192.168.2.200 table T1
ip route add default via 192.168.2.39 table T1
ip route add 192.168.3.0 dev eth2 src 192.168.3.200 table T2
ip route add default via 192.168.3.1 table T2
ip route add 192.168.4.0 dev eth3 src 192.168.4.200 table T3
ip route add default via 192.168.4.1 table T3
ip route add 192.168.5.0 dev eth4 src 192.168.5.200 table T4
ip route add default via 192.168.5.1 table T4

ip route add 192.168.2.0 dev eth1 src 192.168.2.200
ip route add 192.168.3.0 dev eth2 src 192.168.3.200
ip route add 192.168.4.0 dev eth3 src 192.168.4.200
ip route add 192.168.5.0 dev eth4 src 192.168.5.200

ip route add default via 192.168.2.1

ip rule add from 192.168.2.200 table T1
ip rule add from 192.168.3.200 table T2
ip rule add from 192.168.4.200 table T3
ip rule add from 192.168.5.200 table T4

ip route add 192.168.1.0 dev eth0 table T1
ip route add 192.168.2.0 dev eth1 table T1
ip route add 127.0.0.0/8 dev lo   table T1
ip route add 192.168.1.0 dev eth0 table T2
ip route add 192.168.3.0 dev eth2 table T2
ip route add 127.0.0.0/8 dev lo   table T2
ip route add 192.168.1.0 dev eth0 table T3
ip route add 192.168.4.0 dev eth3 table T3
ip route add 127.0.0.0/8 dev lo   table T3
ip route add 192.168.1.0 dev eth0 table T4
ip route add 192.168.5.0 dev eth4 table T4
ip route add 127.0.0.0/8 dev lo   table T4


ip route add default scope global nexthop via 192.168.2.39 dev eth1 weight 1 nexthop via 192.168.3.1 dev eth2 weight 1 nexthop via 192.168.4.1 dev eth3 weight 1 nexthop via 192.168.5.1 dev eth4 weight 1

но вот досада не идет роутинг с LAN на WAN или наоборот, а вот все интрефейсы на серваке пингуются хоть откуда, помогите разобраться

B@F

Интерфейсы то пингуются, а нагрузка распределяется? Скорее всего нет. Работать будет тока по одному линку с меньшей метрикой. Покажи таблицу маршрутизации при данной конфигурации. 

P.S. Я не знаю можно это сделать распределение нагрузки на линуксе, но на маршрутизаторе cisco точно можно, но это очень очень при очень дорого будет, не вариант при данном методе 5 модемов.

Что за коммутатор, проверь у производителя, что он может. Возможно коммутатор сам сможет распределить нагрузку, т.к. такого рода вычисления серьезно нагружают процессор.
Поправьте, если я ошибаюсь, буду тока рад.

hedgeven

16 Июля 2010, 10:44 #3 Последнее редактирование: 16 Июля 2010, 10:49 от hedgeven
хмм... судя по документации должно быть так:
[color="#402100"][font="monospace"][size="2"] [/size][/font][/color]ip route add default scope global nexthop via 192.168.2.200 dev eth1 weight 1 nexthop via 192.168.3.200 dev eth2 weight 1 nexthop via 192.168.4.200 dev eth3 weight 1 nexthop via 192.168.5.200 dev eth4 weight 1
[color="#402100"][font="monospace"][size="2"] [/size][/font][/color]
Jah will give us everything...

B@F

16 Июля 2010, 15:20 #4 Последнее редактирование: 16 Июля 2010, 15:23 от B@F
  И все же это не распределение нагрузки, а всеволишь выбор маршрута, чтоб не запутаться куда что слать и от куда принимать.    http://linuxforum.kz/public/style_emoticons/<#EMO_DIR#>/unsure.gif\' class=\'bbc_emoticon\' alt=\':unsure:\' />
 Хотя возможно этого достаточно. 
Поправьте, если я ошибаюсь, буду тока рад.

kima

сделал во как:
Взял старый системник воткнул 5 сетевух установил Линух
                                                    ____________
modem2(192.168.2.1/24)--- WAN(192.168.2.200/24) ----|            |
modem3(192.168.3.1/24)--- WAN(192.168.3.200/24) ----|   SERVER   |----   LAN(192.168.0.202/24)
modem4(192.168.4.1/24)--- WAN(192.168.4.200/24) ----|            |
modem5(192.168.5.1/24)--- WAN(192.168.5.200/24) ----|____________|

echo "1" > /proc/sys/net/ipv4/ip_forward


ip route add 192.168.2.0/24 dev eth1 src 192.168.2.200 table provider1 > /dev/null 2>&1
ip route add default via 192.168.2.1 table provider1 > /dev/null 2>&1
ip route add 192.168.3.0/24 dev eth2 src 192.168.3.200 table provider2 > /dev/null 2>&1
ip route add default via 192.168.3.1 table provider2 > /dev/null 2>&1
ip route add 192.168.4.0/24 dev eth3 src 192.168.4.200 table provider3 > /dev/null 2>&1
ip route add default via 192.168.4.1 table provider3 > /dev/null 2>&1
ip route add 192.168.5.0/24 dev eth4 src 192.168.5.200 table provider4 > /dev/null 2>&1
ip route add default via 192.168.5.1 table provider4 > /dev/null 2>&1

ip route add 192.168.2.0/24 dev eth1 src 192.168.2.200
ip route add 192.168.3.0/24 dev eth2 src 192.168.3.200
ip route add 192.168.4.0/24 dev eth3 src 192.168.4.200
ip route add 192.168.5.0/24 dev eth4 src 192.168.5.200

ip rule add from 192.168.2.200 table provider1
ip rule add from 192.168.3.200 table provider2
ip rule add from 192.168.4.200 table provider3
ip rule add from 192.168.5.200 table provider4

#-----------------------------------------------------------------
ip route add 192.168.0.0/24   dev eth0 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 eth0 table provider2 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo  table provider2 > /dev/null 2>&1
ip route add 192.168.0.0/24   dev eth0 table provider3 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo  table provider3 > /dev/null 2>&1
ip route add 192.168.0.0/24   dev eth0 table provider4 > /dev/null 2>&1
ip route add 127.0.0.0/8 dev lo  table provider4 > /dev/null 2>&1

ip route add 192.168.5.0/24   dev eth4 table provider1 > /dev/null 2>&1
ip route add 192.168.5.0/24   dev eth4 table provider2 > /dev/null 2>&1
ip route add 192.168.5.0/24   dev eth4 table provider3 > /dev/null 2>&1
ip route add 192.168.4.0/24   dev eth3 table provider1 > /dev/null 2>&1
ip route add 192.168.4.0/24   dev eth3 table provider2 > /dev/null 2>&1
ip route add 192.168.4.0/24   dev eth3 table provider4 > /dev/null 2>&1
ip route add 192.168.3.0/24   dev eth2 table provider1 > /dev/null 2>&1
ip route add 192.168.3.0/24   dev eth2 table provider4 > /dev/null 2>&1
ip route add 192.168.3.0/24   dev eth2 table provider3 > /dev/null 2>&1
ip route add 192.168.2.0/24   dev eth1 table provider4 > /dev/null 2>&1
ip route add 192.168.2.0/24   dev eth1 table provider2 > /dev/null 2>&1
ip route add 192.168.2.0/24   dev eth1 table provider3 > /dev/null 2>&1



ip route delete default
ip route add default scope global nexthop via 192.168.2.1 dev eth1 weight 1 nexthop via 192.168.3.1 dev eth2 weight 1 nexthop via 192.168.4.1 dev eth3 weight 1 nexthop via 192.168.5.1 dev eth4 weight 1



iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth3 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth4 -j MASQUERADE
вроде как все работает пока руки не дошли проверить, так же не уверен что оптимально указал выделенное жирным текстом. Так же терзают сомнения по поводу онлайн игр по типа Garena, как думаете и есть ли что  добавить в существующий скрипт?

kima

мдааа, не помогло мне это решение, потому как народ начал жаловаться что приложения работавшие в режиме онлайн с критерием по задержке часто вылетают. я так понимаю что сессия устаревала , а потом пакеты пошли по второму модему и тут то удаленный сервак не понимал что за пакеты с неизвестного IP, так что ли? короч наверно придется раскошелится на коммутатор. А так вообшем то решения для простого серфинга вполне нормальное

B@F

Я так понял у тебя 4 хита? Если так то сумма приличная по 4*4=16. За эту ссуммо (точно не знаю) можно попробовать взять у касяктелекома что-то более скоростное, какую-нибудь выделенную линию или мож еще что. Сходи в центр продаж и поговори с ними, наверняка у них будет для тебя решение. dsl технология к примеру может тянуть 22 Мбита/с что для тебя вполне достаточно исходя из 4*2=всего 8.
Поправьте, если я ошибаюсь, буду тока рад.

kima

Цитата: B@F от 24 Июля 2010, 08:17Я так понял у тебя 4 хита? Если так то сумма приличная по 4*4=16. За эту ссуммо (точно не знаю) можно попробовать взять у касяктелекома что-то более скоростное, какую-нибудь выделенную линию или мож еще что. Сходи в центр продаж и поговори с ними, наверняка у них будет для тебя решение. dsl технология к примеру может тянуть 22 Мбита/с что для тебя вполне достаточно исходя из 4*2=всего 8.
тут просто комп. клуб, а все линии обходятся всего за 33 000тг, по одному модему пускать выходит очень дорого(я сам не узнавал, мне так хозяина сказал), а проблему все таки решил, правда за очень дорого, купил коммутатор 3-го уровня DES-3828(знакомый со склада подогнал по себестоимости) но зато без возни и быстро

B@F

Цитата: kima от 25 Июля 2010, 08:41тут просто комп. клуб, а все линии обходятся всего за 33 000тг, по одному модему пускать выходит очень дорого(я сам не узнавал, мне так хозяина сказал), а проблему все таки решил, правда за очень дорого, купил коммутатор 3-го уровня DES-3828(знакомый со склада подогнал по себестоимости) но зато без возни и быстро

А как настроил его? Что делал? Может чего помогу улучшить.
Поправьте, если я ошибаюсь, буду тока рад.

kima

26 Июля 2010, 15:05 #10 Последнее редактирование: 26 Июля 2010, 15:08 от kima
Вообщем разбил на вланы , в каждый по модему а потом роут на остальные вланы, (ща уже не помню говорил ли причину по которой нужно разделить модемы на 3-м уровне, короч ситуация такая что 5 модемов подключенные к одному широковешятельному домену вызывает широковещятельный шторм, потому как эти 5 модемов подключены к одному ДСЛАМ на стороне телекома) все работает стабильно , тока один минус есть что баланс на каждом модеме заканчивается не одновременно и скорость на разных компах по разному, я не стал рисковать с балансингом потому как онлайн игры работаюшие по протоколу RPT имеют очень короткие сессии что во время сеанса сессия завершается и маршрут переключается на другой модем, а у модема уже совсем другой внешний IP который отпинывается на игровом сервере. хотя меня устраивает и такое состояние сети.