The OpenNET Project / Index page

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

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

"распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от pingwin (??) on 16-Фев-09, 18:57 
Есть 10 ADSL подключений в одном месте входящий трафик 8 Мб/с, исходящий 512кб/с, все внешние айпи динамические, на каждом адсл рутере нат. Задача - пользователям локальной сети (100+) сделать ограничения трафика асинхронные (например 1000/80, 2000/160 кб/с), чтобы проще было привязать каждого к одному шлюзу (до 20 на шлюз). Думаю это делать на FreeBSD, как можно и как лучше будет реализовать такой шейпер? Сложно ли будет сделать балансировку между имеющимися каналами с сохранением ограничений трафика?
Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

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


1. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от ronin (??) on 16-Фев-09, 19:21 
>Есть 10 ADSL подключений в одном месте входящий трафик 8 Мб/с, исходящий
>512кб/с, все внешние айпи динамические, на каждом адсл рутере нат. Задача
>- пользователям локальной сети (100+) сделать ограничения трафика асинхронные (например 1000/80,
>2000/160 кб/с), чтобы проще было привязать каждого к одному шлюзу (до
>20 на шлюз). Думаю это делать на FreeBSD, как можно и
>как лучше будет реализовать такой шейпер? Сложно ли будет сделать балансировку
>между имеющимися каналами с сохранением ограничений трафика?

Могу рассказать как это сделать на Линуксе (маршрутизатор на Линуксе с использованием iptables + iproute2 + отдельная тачка под FreeBSD в качестве шейпера). Есть опыт построения такой сети на 4 канала, но уже продумал масштабирование на произвольное количество каналов. Интересует?

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

2. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от pingwin108 (ok) on 16-Фев-09, 20:03 
>Могу рассказать как это сделать на Линуксе (маршрутизатор на Линуксе с использованием
>iptables + iproute2 + отдельная тачка под FreeBSD в качестве шейпера).
>Есть опыт построения такой сети на 4 канала, но уже продумал
>масштабирование на произвольное количество каналов. Интересует?

да, весьма интересно

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

3. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от pingwin108 (ok) on 17-Фев-09, 11:45 
>Могу рассказать как это сделать на Линуксе (маршрутизатор на Линуксе с использованием
>iptables + iproute2 + отдельная тачка под FreeBSD в качестве шейпера).
>Есть опыт построения такой сети на 4 канала, но уже продумал
>масштабирование на произвольное количество каналов. Интересует?

Автор темы я, писал не залогинившись, ronin опишите свой метод пожалуйста

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

4. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от blackjackchik (ok) on 18-Фев-09, 10:23 
>>Могу рассказать как это сделать на Линуксе (маршрутизатор на Линуксе с использованием
>>iptables + iproute2 + отдельная тачка под FreeBSD в качестве шейпера).
>>Есть опыт построения такой сети на 4 канала, но уже продумал
>>масштабирование на произвольное количество каналов. Интересует?
>
>Автор темы я, писал не залогинившись, ronin опишите свой метод пожалуйста

А еще в FreeBSD 7.1 появилась фишка мультироутинга собрав ядро с ROUTETABLES=10 можно задавать маршруты по умолчанию для каждой таблицы маршрутизации с помощю setfib. И после этого шаманить над фаерволом с тем же setfib.

Но можно все это разрулить и на фре без тачки на линуксе и без ROUTETABLES только с помощью ipfw или pf.

ПС. Не помню сколько максимум таблиц можно задавать опцией ROUTETABLES

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

5. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от pingwin108 (ok) on 18-Фев-09, 10:58 
>А еще в FreeBSD 7.1 появилась фишка мультироутинга собрав ядро с ROUTETABLES=10
>можно задавать маршруты по умолчанию для каждой таблицы маршрутизации с помощю
>setfib. И после этого шаманить над фаерволом с тем же setfib.
>
>
>Но можно все это разрулить и на фре без тачки на линуксе
>и без ROUTETABLES только с помощью ipfw или pf.

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

>ПС. Не помню сколько максимум таблиц можно задавать опцией ROUTETABLES

Предполагаю если ROUTETABLES=10  то может 10 таблиц максимум?

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

6. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от blackjackchik (ok) on 18-Фев-09, 12:59 
>[оверквотинг удален]
>>
>>Но можно все это разрулить и на фре без тачки на линуксе
>>и без ROUTETABLES только с помощью ipfw или pf.
>
>Сложно представить себе полную картину реализации на одной фре. С pf не
>знаком, как там с шейпингом?
>
>>ПС. Не помню сколько максимум таблиц можно задавать опцией ROUTETABLES
>
>Предполагаю если ROUTETABLES=10  то может 10 таблиц максимум?

Ну єто понятно что если указать 10 то 10 максимум в вашем случае, а вообще сколько максимум можно задать не помню.

С шейпингом немного сложновато в пф, он использует ALTQ для шейпа. Мне очень нравится DUMMYNET - просто и надежно, пока проблем с ним не было.

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

7. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от pingwin108 (ok) on 18-Фев-09, 13:29 
>С шейпингом немного сложновато в пф, он использует ALTQ для шейпа. Мне
>очень нравится DUMMYNET - просто и надежно, пока проблем с ним
>не было.

Как в ipfw для каждого свою трубу создавать? клиентов то много.

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

8. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от blackjackchik (ok) on 18-Фев-09, 15:21 
>>С шейпингом немного сложновато в пф, он использует ALTQ для шейпа. Мне
>>очень нравится DUMMYNET - просто и надежно, пока проблем с ним
>>не было.
>
>Как в ipfw для каждого свою трубу создавать? клиентов то много.

По маске 0XFFFFFFFF

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

9. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от pingwin108 (ok) on 19-Фев-09, 13:10 
Допустим шейпить будет dummynet на несколько типовых скоростей. Какие возможны варианты равномерного распределения по внешним каналам? Как можно реализовать во фре и линуксе?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "распределить юзеров на 10 внешних каналов  с шейпингом"  +/
Сообщение от handler2006 email(ok) on 17-Сен-09, 16:33 
У меня используется статическая схема балансировки нагрузки на 4 канала на линуксе.
В правилах iptables в таблице mangle мы маркируем пакеты 4-мя метками и, в зависимости от значения метки роутим адрес в один из 4-х внешних линков.
Данная конструкция работает надежно, но показала свою малоэффективность.
Сейчас разрабатываю динамическую балансировку, основанную на vpn-туннелях.
Адреса в сети раздаются dhcp-сервером, затем юзер устанавливает vpn-туннель.
На стороне сервера выполняются скрипты
/etc/ppp/ip-up
/etc/ppp/ip-down
В этих скриптах мы прописываем правила iptables (таблицы NAT), в которой мы роутим на выбранный заранее интерфейс и правила шейпинга для данного туннеля (tc add dev $1...)
Ну, с шейпингом тут все ясно, а вот как правильно создавать маршрут для вновь созданного канала? Если мы для канала укажем явно в стартовом скрипте route add default gw $ip_eth1 как на это среагирует система? Думаю, что это не правильно. Допустим, мы опишем все 4 таблицы маршрутизации, как это предложено в http://lartc.org/howto/lartc.rpdb.multiple-links.html , а дальше опять маркировать пакеты?
Может, есть соображения?
Кстати, в указанной ссылке автор утверждает, что балансировка может быть реализована следующим образом:
Instead of choosing one of the two providers as your default route, you now set up the default route to be a multipath route. In the default kernel this will balance routes over the two providers. It is done as follows (once more building on the example in the section on split-access):

        ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
        nexthop via $P2 dev $IF2 weight 1
      

This will balance the routes over both providers. The weight parameters can be tweaked to favor one provider over the other.
Тогда в таблице nat правил iptables какой адрес мы будем указывать в качестве параметра SNAT ?
iptables -t nat -A POSTROUTING -s $VPN_NET -d $EXT_NET -j SNAT --to-source $P1($P2) ???

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

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

Индекс форумов | Темы | Пред. тема | След. тема




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

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