URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 19924
[ Назад ]

Исходное сообщение
"ISP1,ISP2, 2 локалки (trusted and untrusted),tc,iptables "

Отправлено druidman , 29-Окт-09 15:14 
Проблема следующая:
Есть 2 ISP (ISP1 и ISP2), есть локальная сеть (предприятия), есть сеть wifi (пользователи с мобильными устройствами свободно подключаются)
                            
ISP1_GATE----------(ISP1_IP)| Linux (2.6.28)|(WIFI_IP)-----------WIFI_NET(172.16/16)
                                              |(iptables),tc  |
ISP2_GATE----------(ISP2_IP)|                      |(MGMT_IP)-----------MGMT_NET(10.54/16)
                                  


Пропускная способность одинаковая у обоих каналов (по 4 Мбит/с)

1.Задача сделать балансировку трафика по каналам 50x50 (собственно уже сделано, просто в iptables (модуль statistic маркировал пакеты (CONNMARK) и делил пополам в разные каналы)

2.Нужно сделать интеллектуальное управление трафиком(tc,HTB):

Так как корневая очередь HTB (и других классовых дисциплин) привязана к интерфейсу, то я не могу создать общую корневую очередь с CEIL = 8Мбит, который делится на 2 локальных сетки.
Общую корневую очередь надо создать для того, чтоб наследовать пропускную способность при отсутствии загрузки канала другими пользователями(из разных локальных сетей).
Чтоб в идеале при отсутствии пользователей, один подключившийся мог использовать сумарную пропускную способность каналов

Есть какой-нибудь выход?


Содержание

Сообщения в этом обсуждении
"ISP1,ISP2, 2 локалки (trusted and untrusted),tc,iptables "
Отправлено pavel_simple , 29-Окт-09 15:28 
>[оверквотинг удален]
>
>Так как корневая очередь HTB (и других классовых дисциплин) привязана к интерфейсу,
>то я не могу создать общую корневую очередь с CEIL =
>8Мбит, который делится на 2 локальных сетки.
>Общую корневую очередь надо создать для того, чтоб наследовать пропускную способность при
>отсутствии загрузки канала другими пользователями(из разных локальных сетей).
>Чтоб в идеале при отсутствии пользователей, один подключившийся мог использовать сумарную пропускную
>способность каналов
>
>Есть какой-нибудь выход?

общий CEIL можно сделать через IMQ

только всё равно будет работать криво, потому как ни модуть statistic ни модуль rateest не дают того эффекта который бы хотелось. А вот если дополнительно использовать ipset, то получается лучше, но слишком накладно (для CPU) , да и чистить нужно.


"ISP1,ISP2, 2 локалки (trusted and untrusted),tc,iptables "
Отправлено druidman , 11-Ноя-09 07:58 
>[оверквотинг удален]
>>способность каналов
>>
>>Есть какой-нибудь выход?
>
>общий CEIL можно сделать через IMQ
>
>только всё равно будет работать криво, потому как ни модуть statistic ни
>модуль rateest не дают того эффекта который бы хотелось. А вот
>если дополнительно использовать ipset, то получается лучше, но слишком накладно (для
>CPU) , да и чистить нужно.

так вроде ipset для другого нужен (крупные хэшированные списки сетей-ip или там mac-ip, чтоб не плодить тысячи правил в iptables)...
Спасибо за направление в область псевдоустройств - поднял IFB
Интересная особенность работы statistic скажем с сайтом vkontakte. Страница грузится бесконечно, тоесть загрузилась -> опять перезагрузилась и т.д., а иногда нормально, иногда опять зацикливается . Единственное что приходит в голову, что в рамках текущего соединения создается еще и направляется по второму каналу (эффект многопоточности) - что особенность работы php на стороне vkontakte. С другими сайтами такого нет