The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Объединение каналов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Маршрутизаторы CISCO и др. оборудование. (Public)
Изначальное сообщение [ Отслеживать ]

"Объединение каналов"  
Сообщение от vproto (ok) on 24-Апр-08, 03:49 
Привет всем.

Задача объеденить несколько каналов разной ширины от разных провайдеров в один ,своей автономной системы нет и айпи по маршрутам каждый от своего прова.
По железу-софту: софт рутер под freebsd или openbsd.
Должна выполняться балансировка каналов т.е. равномерное разеделение нагрузки на них согласно полосе каждого из них и надёжность чтоб в случае пропадения любого канала или каналов нагрузка распределялась между оставшимися.
Поиск по инету почти не дал ничего, т.е. как именно это сделать и на чём я не нашёл.
Нашёл только упомнаение что в циско есть протокол eigrp или bgp+cef на них можно сделать это, но циски у меня нет и не будет!
Вообщем если кто то знает как можно реализовать выше описанное, расскажите очень прошу.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Объединение каналов"  
Сообщение от skyer email(ok) on 24-Апр-08, 08:49 
>[оверквотинг удален]
>Должна выполняться балансировка каналов т.е. равномерное разеделение нагрузки на них согласно полосе
>каждого из них и надёжность чтоб в случае пропадения любого канала
>или каналов нагрузка распределялась между оставшимися.
>Поиск по инету почти не дал ничего, т.е. как именно это сделать
>и на чём я не нашёл.
>Нашёл только упомнаение что в циско есть протокол eigrp или bgp+cef на
>них можно сделать это, но циски у меня нет и не
>будет!
>Вообщем если кто то знает как можно реализовать выше описанное, расскажите очень
>прошу.

В Фряхе это сделать очень сложно и пару лет назад делалось тлько через фаервол правилами форварда, мутно и очень криво... (сервак тогда из вне не доступен). На линухе делается за 5 минут с помошью iproute2 через ядро без дополнительных шаманств с бубном.
по поводу eigrp или bgp+cef это протоколы маршрутизации для автономных сетей, обеспечивающие отказо устойчивость и балансировкку, но они не пригодны для нереальных ипи. У меня на линухе стоит 5 внешних каналов от разных внешних сетей и по ним раскидывается трафик достаточно сбалансировано для 500 пользователей. если пользователь пользуется прогами для скачивания которые умеют качать больше чем в 1 поток то получается сумарная пропускная скорость всех каналов.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Объединение каналов"  
Сообщение от skyer email(ok) on 24-Апр-08, 08:50 
В Фряхе это сделать очень сложно и пару лет назад делалось тлько через фаервол правилами форварда, мутно и очень криво... (сервак тогда из вне не доступен). На линухе делается за 5 минут с помошью iproute2 через ядро без дополнительных шаманств с бубном.
по поводу eigrp или bgp+cef это протоколы маршрутизации для автономных сетей, обеспечивающие отказо устойчивость и балансировкку, но они не пригодны для нереальных ипи. У меня на линухе стоит 5 внешних каналов от разных внешних сетей и по ним раскидывается трафик достаточно сбалансировано для 500 пользователей. если пользователь пользуется прогами для скачивания которые умеют качать больше чем в 1 поток то получается сумарная пропускная скорость всех каналов.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Объединение каналов"  
Сообщение от vproto (ok) on 24-Апр-08, 12:22 
>В Фряхе это сделать очень сложно и пару лет назад делалось тлько
>через фаервол правилами форварда, мутно и очень криво... (сервак тогда из
>вне не доступен). На линухе делается за 5 минут с помошью
>iproute2 через ядро без дополнительных шаманств с бубном.
>по поводу eigrp или bgp+cef это протоколы маршрутизации для автономных сетей, обеспечивающие
>отказо устойчивость и балансировкку, но они не пригодны для нереальных ипи.
>У меня на линухе стоит 5 внешних каналов от разных внешних
>сетей и по ним раскидывается трафик достаточно сбалансировано для 500 пользователей.
>если пользователь пользуется прогами для скачивания которые умеют качать больше чем
>в 1 поток то получается сумарная пропускная скорость всех каналов.

Раскажите с примером как это реализовано у вас ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Объединение каналов"  
Сообщение от skyer email(ok) on 24-Апр-08, 13:40 

>Раскажите с примером как это реализовано у вас ?

скрипт большой.

но в кратце:

надо несколько каналов и если просто без излишеств, то

/sbin/route del default
/sbin/ip route add default equalize scope global nexthop via $nvgate1 dev eth2 weight 2\
             nexthop via $nvgate2 dev eth4 weight 2\
             nexthop via $nvgate3 dev eth5 weight 2\
             nexthop via $nvgate4 dev eth3 weight 2\
             nexthop via $nvgate5 dev eth0 weight 2

у меня все каналы имеют одинаковую скорость, по этому у всех вес 2 , до этого часть каналов имело меньшую скорость а переписывать влом, прсто сделал всем одинаковый

там можно создавать разные таблицы маршрутизации как для сетей так и для ипишников , количество таблиц ограничена вроде 240 штук, хотя это для желания. может получится так что для каждого интерфейса придется собрать по одной талице и одну общую, тогда будет таблиц маршрутизации n+1 по лоличесву интерфейсов. Сам сервер при такой раскладе одекватно разговаривает по всем интерфейсам. Балансировка идет по количесву соединений и потоку через них, т.е. если есть 10 соединений 7 маленьких и 3 больших, то на 5 сетевок они раскинутся достаточно равномерно 3, 4 соединения и 1, 1, 1 на оставшиеся.
за пол года в месяц имеем раброс трафика на каналах в пределах 2 процентов при совокупном трафике в 0.4 Тб.

Если надо более подробно пиши. Но это на Linux в фряхе такое делал только с 2 каналами и то не красиво.

Щас думаю над подключением ещё 5  каналов и созданием всего на Vlan и линухе.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Объединение каналов"  
Сообщение от vproto (ok) on 24-Апр-08, 23:28 
>[оверквотинг удален]
>5 сетевок они раскинутся достаточно равномерно 3, 4 соединения и 1,
>1, 1 на оставшиеся.
>за пол года в месяц имеем раброс трафика на каналах в пределах
>2 процентов при совокупном трафике в 0.4 Тб.
>
>Если надо более подробно пиши. Но это на Linux в фряхе такое
>делал только с 2 каналами и то не красиво.
>
>Щас думаю над подключением ещё 5  каналов и созданием всего на
>Vlan и линухе.

Спасибо за ответ.
Расскажи пожалуста подробно со всеми тонкостями как это сделать ?
Линуксом я не владею вообще, только bsd системами.
Каналы у меня все разные.
На скоколько я понял ты прописываешь несколько дефолтовых путей в таблице маршрутов и для каждого указываешь вес - уровень использования.
Как расчитывать вес если каналы разные ?
Каналов у меня 4 штуки и все разные как уже говорил.
И ещё при падении канала или каналов, нагрузка распределиться среди остальных ? Не пропадают ли пакеты и как быстро он определят что канал не работает ?
Заранее спасибо за помощь.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Объединение каналов"  
Сообщение от skyer email(ok) on 27-Апр-08, 10:28 

>Каналы у меня все разные.

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

сам до конца схему непонял, но подисев маленько пришел к выводу что чем больше значение веса канала тем он приоритетнее, т.е. если у нас каналы 256 Кб 512 кб и 1024 Кб то веса должны быть 1 2 4 , иными словами надо выбрать самый наименьший и взависимости от его пропускной способности выставить кратные веча остальным каналам.
>Каналов у меня 4 штуки и все разные как уже говорил.
>И ещё при падении канала или каналов, нагрузка распределиться среди остальных ?

она всегда распределяется, но тут есть небольшой нюанс:
1 при падении канала об этом система ни чего не знает! и продолжает пихать ттуда запросы что приводит к отказам, но если тупо сделать обновить запрос пойдет в следующий канал
  вообще в описании сказано что этот случай должен как-то отслеживаться и устранятся, но у меня ни разу не было случая "падения" канала, а были блокировки вот их точно ни как не отслеживает! типа если кончились бабки иил флудили, то нас фаерволом накрывало, но линк работал.


>Не пропадают ли пакеты и как быстро он определят что канал
>не работает ?

как писал выше если закрыли фаерволом то ни как вроде.
за пол года не замечено потерь пакетов(правда у нас лини хорошии)
Я смог разрулить на 600 дюроне 5 каналов по 2 мегабита в инет и по 30 мегабит во внутренние сети с нагрузкой в 1 процент (поток естественно предельный) внутрь сети стоит гигабитник и все работает без заминки.


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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "Объединение каналов"  
Сообщение от max (??) on 02-Сен-08, 15:02 
>[оверквотинг удален]
>/sbin/ip route add default equalize scope global nexthop via $nvgate1 dev eth2
>weight 2\
>            
> nexthop via $nvgate2 dev eth4 weight 2\
>            
> nexthop via $nvgate3 dev eth5 weight 2\
>            
> nexthop via $nvgate4 dev eth3 weight 2\
>            
> nexthop via $nvgate5 dev eth0 weight 2

сделал все по так как Вы указали, клиенты получают инет по 2-м каналам, но! на самом шлюзе при этом инет пропадает. подскажите плз как решается эта проблема

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Объединение каналов"  
Сообщение от Av (??) on 27-Апр-08, 21:44 
pf Documentation, глава "Load Balance Outgoing Traffic"
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Объединение каналов"  
Сообщение от Av (??) on 27-Апр-08, 22:06 
Не думайте - на самом деле в бсди не все так плохо)

pf: round-robin (цикл), probability - те же веса, метить пакеты tagged, tag.
ipfw: fwd, prob и т.д.

не забудьте keep state в правилах добавлять.

если probability не устраивает: используйте таблицы + простенький скрипт снимающий показания загрузки каналов по тем же правилам + рулите динамически как угодно, так же определяйте падение канала.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Объединение каналов"  
Сообщение от skyer email(ok) on 28-Апр-08, 06:02 
>[оверквотинг удален]
>
>pf: round-robin (цикл), probability - те же веса, метить пакеты tagged, tag.
>
>ipfw: fwd, prob и т.д.
>
>не забудьте keep state в правилах добавлять.
>
>если probability не устраивает: используйте таблицы + простенький скрипт снимающий показания загрузки
>каналов по тем же правилам + рулите динамически как угодно, так
>же определяйте падение канала.

Если читал нитку, то видел что на фряхе такое тоже есть, только менее гибкое и удобное, да и фаервол менее удобный (более простой на мой взгляд).
Идеалогические войны не по мне, я описал как это делал я, а дальше флаг в руки и большую лопату для копки! ;)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Объединение каналов"  
Сообщение от Av (??) on 28-Апр-08, 09:58 
>Если читал нитку, то видел что на фряхе такое тоже есть, только
>менее гибкое и удобное, да и фаервол менее удобный (более простой
>на мой взгляд).

Я могу тоже самое сказать про линух. Критерии гибкости и удобности откуда? Тем более сам говоришь не знаком с бсди. Чего пустомелить тогда?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Объединение каналов"  
Сообщение от skyer (ok) on 28-Апр-08, 10:09 
>>Если читал нитку, то видел что на фряхе такое тоже есть, только
>>менее гибкое и удобное, да и фаервол менее удобный (более простой
>>на мой взгляд).
>
>Я могу тоже самое сказать про линух. Критерии гибкости и удобности откуда?
>Тем более сам говоришь не знаком с бсди. Чего пустомелить тогда?

А с чего ты решил что не знаком? Я с фрхи начинал в далеком 99


Да как сказать не знаком , просто последнии 2 года стараюсь рукмим её не трогать, а так за 8 лет администрирования локальных сетей разных провайдеров набрался впечатлений.

далее нитка игнорится

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Объединение каналов"  
Сообщение от Av (??) on 28-Апр-08, 11:03 
>А с чего ты решил что не знаком? Я с фрхи начинал
>в далеком 99

я с 96, будем мерятся?)

>Да как сказать не знаком , просто последнии 2 года стараюсь рукмим
>её не трогать, а так за 8 лет администрирования локальных сетей
>разных провайдеров набрался впечатлений.

no comment

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Объединение каналов"  
Сообщение от skyer (ok) on 28-Апр-08, 11:29 
>>А с чего ты решил что не знаком? Я с фрхи начинал
>>в далеком 99
>
>я с 96, будем мерятся?)
>
>>Да как сказать не знаком , просто последнии 2 года стараюсь рукмим
>>её не трогать, а так за 8 лет администрирования локальных сетей
>>разных провайдеров набрался впечатлений.
>
>no comment

ивини мерятся не будем.. с 3 постами за 8 лет ты точно гуру и демагог! признаю свою не компетентность.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Объединение каналов"  
Сообщение от vproto (ok) on 29-Апр-08, 12:12 
>[оверквотинг удален]
>
>pf: round-robin (цикл), probability - те же веса, метить пакеты tagged, tag.
>
>ipfw: fwd, prob и т.д.
>
>не забудьте keep state в правилах добавлять.
>
>если probability не устраивает: используйте таблицы + простенький скрипт снимающий показания загрузки
>каналов по тем же правилам + рулите динамически как угодно, так
>же определяйте падение канала.

Спасибо за ответ.
PF есть во фре и в опене, собственно он от туда и пришёл.
Доку я читал уже много раз.
Есть какой нибудь рабочий и провереный пример как это будет выглядеть ?
И как вариант как это сделать на ipfw, естественно пример.Хоть общий, но рабочий.
Заранее спасибо за ответ. Вадим.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру