Страница 1 из 1

Возможно ли организовать динамический шейпинг полосы

Добавлено: 2010-01-31 11:49:50
goshanecr
Добрый день всем!
Скажите пожалуйста, можно ли организовать динамическое нарезание провайдерского канала в инет таким образом:
К примеру всего в сетке 10 пользователей, если все десять дружно ринулись что-то интенсивно качать то каждому честно нарезается 1/10 полосы, а если 8 пользователей не лезут в сеть а 2-е что-то активно качают то и пусть им по 1/2 канала выдаётся? Так сказать динамическая нарезка полосы в зависимости от количества требующих её.
Я пока придумал это организовать только скриптом, который регулярно (каждые сколько-то секунд) смотрит на кол-во пользователей требующих инет и создаёт набор правил с pipe для ipfw. Но мне кажется что это коряво.

Re: Возможно ли организовать динамический шейпинг полосы

Добавлено: 2010-01-31 17:19:59
Platinum
вариант pf + hfsc не подойдет?

Re: Возможно ли организовать динамический шейпинг полосы

Добавлено: 2010-01-31 17:22:10
goshanecr
Лучше бы с ipfw. Я вроде понарыл инфы что ipfw и dummynet это реализуют всё. Осталось попробовать и отписаться о результатах

Re: Возможно ли организовать динамический шейпинг полосы

Добавлено: 2010-01-31 18:08:43
terminus
Ну так есть же очереди (queue) в ipfw как раз для этого!
Если pipe это жесткое разделение скорости, то queue - динамические. При их использовании юзеры как раз и будут или получать по 1/10 в случае, если качают все, или по 1/2, когда качают только двое.

Код: Выделить всё

ipfw pipe 1 config bw 10Mbit/s
ipfw queue 1 config pipe 1 mask src-ip 0xffffffff

ipfw pipe 2 config bw 10Mbit/s
ipfw queue 2 config pipe 2 mask dst-ip 0xffffffff

ipfw add queue 1 ip from any to any out xmit em0
ipfw add queue 2 ip from any to any in recv em0