Шейпер на множество клиентов и тарифных планов.
Добавлено: 2009-08-26 20:51:40
Есть задача шейпить клиентов. Существует множество тарифных планов, с разными скоростями и различными ресурсами, на которые соответственно скорости тоже различны.
Например внутренние ресурсы без зарезки, пиринговые сети(куча ип) 10 мегабит, а инет один мегабит. И это всего лишь один тарифный план, а их там минимум 10. Клиенты подключаются через mpd5 и шейпер будет конфигуриться динамически, через скрипт.
Сейчас на ум приходит решение такое: Подключается клиент, я создаю 4 пайпа с нужными скоростями (инет, пиринг, вход, исход), далее создаю 4 правила которые заруливают трафик в пайп и 2 для доступа к внутренним ресурсам. Пиринговые сети и внутренние ресурсы записываю в table ipfw. Получается на одного клиента 6 правил, а клиентов на данный момент подключается в районе 500 и будет все больше.
В линухе сделано через tc и соответственно нет смысла проверять столько правил. А вот как поведет себя ipfw имея грубо 3000 правил я даже предположить не могу.
Может есть какие то более умные решения или как то можно это все дело оптимизировать?
Например внутренние ресурсы без зарезки, пиринговые сети(куча ип) 10 мегабит, а инет один мегабит. И это всего лишь один тарифный план, а их там минимум 10. Клиенты подключаются через mpd5 и шейпер будет конфигуриться динамически, через скрипт.
Сейчас на ум приходит решение такое: Подключается клиент, я создаю 4 пайпа с нужными скоростями (инет, пиринг, вход, исход), далее создаю 4 правила которые заруливают трафик в пайп и 2 для доступа к внутренним ресурсам. Пиринговые сети и внутренние ресурсы записываю в table ipfw. Получается на одного клиента 6 правил, а клиентов на данный момент подключается в районе 500 и будет все больше.
В линухе сделано через tc и соответственно нет смысла проверять столько правил. А вот как поведет себя ipfw имея грубо 3000 правил я даже предположить не могу.
Может есть какие то более умные решения или как то можно это все дело оптимизировать?