Страница 1 из 1
pf и урезать трафик
Добавлено: 2009-11-05 10:57:12
c4sin
Привет всем.
Поставили задачу урезать скорость не только по HTTP но и по всем портам каждого пользователя
Почитал что можно сделать это pf-ом, но если у меня больше 100 пользователей что для каждого мне надо писать правило для очереди
нет более простого решения? всем нужна одинаковая скорость не больше не меньше скажем 256кбит и нет нужды если канал не забит другим пользователям повышать скорость.
Re: pf и урезать трафик
Добавлено: 2009-11-05 13:38:25
---nebo---
если у меня больше 100 пользователей что для каждого мне надо писать правило для очереди
У вас пользователи вероятно как-то сгрупированы, я имею ввиду по IP, вы ведь не выдавали адреса рандомно. Управляете группой.
Вот например если ваши 100 пользователей находятся в сети: 192.168.0.0/25.
Тогда как и делаете:
1) создаете очередь
Код: Выделить всё
altq on $NET cbq bandwidth 1Mb queue {me , users}
queue me bandwidth 75% priority 1
queue users bandwidth 25% priority 2 cbq (default)
здесь канал 1М, но рекомендовано ставить значение 90% от реальной полосы.
2)пускаете всех пользователей через эту очередь
Код: Выделить всё
pass out on $NET from 192.168.0.0/25 to any queue users
Re: pf и урезать трафик
Добавлено: 2009-11-05 13:54:59
c4sin
и получается что для всех скорость 256, правильно? то есть в вашем примере 25%
и если один забивает канал на 25% то всё ок, а вот если 10 пользователей пытаются одновременно чтото скачать, то 25% эти делятся на них 10терых
или я не так всё понимаю
Re: pf и урезать трафик
Добавлено: 2009-11-05 13:59:59
kabachok
Re: pf и урезать трафик
Добавлено: 2009-11-08 22:29:30
c4sin
вообщем попытался сделать по примеру ---nebo---
вот такой сделал конфиг
Код: Выделить всё
altq on $NET cbq bandwidth 1940Mb queue {me , users, user_256}
queue me bandwidth 1000Mb priority 1
queue users bandwidth 128Kb priority 2 cbq (default)
queue users_256 bandwidth 256Kb priority 2 cbq
pass out on $NET from 192.168.0.60 to any queue users_256
pass out on $NET from 192.168.0.0/25 to any queue users
но пользователя с ip - 192.168.0.60 пускает по дефолтной очереди то есть на скорости 128, что не так делаю, подскажите. Почему не срабатывает его очередь в 256
Re: pf и урезать трафик
Добавлено: 2009-11-09 0:01:35
---nebo---
c4sin, все правильно работает, соответственно конфигу

.
Если взять фаер IPFW, то логика его работы такова, что пакет "выскакивает" на первом удовлетворяющем правиле.
В PF все несколько иначе. Проходя правила, удовлетворяющие правила запоминаются и к пакету применяется ПОСЛЕДНЕЕ удовлетворившее(грубо говоря наоборот). Но если есть желание, то на этот процес можно повлиять, используя параметр quick. Тогда, если пакет удовлетворит правилам, то он будет сразу по ним(правилам) обработан.
У вас адрес 192.168.0.60 входит в подсеть 192.168.0.0/25, поетому и первое, и второе правило подходят для даного пакета.
Решение:
или
Код: Выделить всё
pass out on $NET from 192.168.0.0/25 to any queue users
pass out on $NET from 192.168.0.60 to any queue users_256
или
Код: Выделить всё
pass out quick on $NET from 192.168.0.60 to any queue users_256
pass out on $NET from 192.168.0.0/25 to any queue users