pf и урезать трафик

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
c4sin
сержант
Сообщения: 165
Зарегистрирован: 2008-12-02 23:04:06

pf и урезать трафик

Непрочитанное сообщение c4sin » 2009-11-05 10:57:12

Привет всем.

Поставили задачу урезать скорость не только по HTTP но и по всем портам каждого пользователя
Почитал что можно сделать это pf-ом, но если у меня больше 100 пользователей что для каждого мне надо писать правило для очереди
нет более простого решения? всем нужна одинаковая скорость не больше не меньше скажем 256кбит и нет нужды если канал не забит другим пользователям повышать скорость.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: pf и урезать трафик

Непрочитанное сообщение ---nebo--- » 2009-11-05 13:38:25

если у меня больше 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
...участки под застройку в живописном месте Интернет

c4sin
сержант
Сообщения: 165
Зарегистрирован: 2008-12-02 23:04:06

Re: pf и урезать трафик

Непрочитанное сообщение c4sin » 2009-11-05 13:54:59

и получается что для всех скорость 256, правильно? то есть в вашем примере 25%
и если один забивает канал на 25% то всё ок, а вот если 10 пользователей пытаются одновременно чтото скачать, то 25% эти делятся на них 10терых

или я не так всё понимаю

Аватара пользователя
kabachok
мл. сержант
Сообщения: 148
Зарегистрирован: 2009-01-20 2:13:18
Откуда: msk.ru
Контактная информация:

Re: pf и урезать трафик

Непрочитанное сообщение kabachok » 2009-11-05 13:59:59

Мы стены ломаем силой ума. © Кирпичи.

c4sin
сержант
Сообщения: 165
Зарегистрирован: 2008-12-02 23:04:06

Re: pf и урезать трафик

Непрочитанное сообщение c4sin » 2009-11-08 22:29:30

вообщем попытался сделать по примеру ---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

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: pf и урезать трафик

Непрочитанное сообщение ---nebo--- » 2009-11-09 0:01:35

c4sin, все правильно работает, соответственно конфигу :smile: .
Если взять фаер 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
...участки под застройку в живописном месте Интернет