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

Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-01 18:19:04
HEDG_SS
общем ситуация следующая: Есть сервер, который нарезает полосу порядка 1500+ абонентам на разные скорости и по разным направлениям.
На данный момент нарезкой занимается ipfw, но хочется это переделать на PF. Появилось пару вопросов :
1. Насколько грамотно умеет PF нарезать канал ?
2. Как он себя ведет под большой нагрузкой ?
3. Использует ли его вообще кто-то для шейпинга на провайдерах ? (если можно хоть короткий пример его использования в этом качестве)
4. Насколько компактным получается фаервол . Можно ли как в ipfw запихать несколько сот абонов в один пайп, чтоб каждому нарезалась конкретная полоса?

Так пару мелких вопросов:
1. Как можно в одном правиле указать несколько портов ? (Через запятую, как в ipfw Не работает. Если ставить в {} то разбивает на два отдельных правила, чего очень не хотелось бы)
2. В ipfw можно сделать , чтоб в одной таблице были ip или сети c разными ключами. А можно ли такое сделать в PF ?
Пример вышесказанного

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

europe# ipfw table 7 list |more
172.16.10.25/32 22
172.16.10.27/32 41
172.17.1.3/32 41
172.17.1.5/32 22
172.17.1.6/32 22
172.17.5.3/32 41
172.17.6.6/32 30
172.17.6.8/32 30
...

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-01 18:22:36
hizel
ipfw не справляется? :-\

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-01 19:10:23
HEDG_SS
hizel писал(а):ipfw не справляется? :-\
Очень долго отрабатывает скриптзабивки фервола (около 1 мин.). Назревает полная его переделка . В PF удобнее работать с таблицами и грузится он практически мгновенно. В текущем фаерволе появился непонятный для меня момент, иногда закачка идет мимо пайпов (не режется скорость). Поэтому появилось желание написать новый скрипт с нуля и шейпить на PF.
PF - как фаервол, очень мощный и функциональный, но не знаю , как он себя будет вести в роли шейпера для моих задач. Возможно он сможет болеее умно справиться с поставленной задачей.
Кто его пользовал, напишите пожалуйста, что к чему...

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 0:06:36
schizoid
офтоп
а , извиняюсь, как вы используете ключи в таблицах? всегда было интересно для чего они...

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 0:12:57
hizel
собрать дикую партянку правил в пару няшек и управлять удобно и сухо
копи паста с man ipfw

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

   LOOKUP TABLES
     In the following example, we need to create several traffic bandwidth
     classes and we need different hosts/networks to fall into different
     classes.  We create one pipe for each class and configure them accord-
     ingly.  Then we create a single table and fill it with IP subnets and
     addresses.  For each subnet/host we set the argument equal to the number
     of the pipe that it should use.  Then we classify traffic using a single
     rule:

           ipfw pipe 1 config bw 1000Kbyte/s
           ipfw pipe 4 config bw 4000Kbyte/s
           ...
           ipfw table 1 add 192.168.2.0/24 1
           ipfw table 1 add 192.168.0.0/27 4
           ipfw table 1 add 192.168.0.2 1
           ...
           ipfw add pipe tablearg ip from table(1) to any

     Using the fwd action, the table entries may include hostnames and IP
     addresses.

           ipfw table 1 add 192.168.2.0/24 10.23.2.1
           ipfw table 1 add 192.168.0.0/27 router1.dmz
           ...
           ipfw add 100 fwd tablearg ip from any to table(1)

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 10:15:51
HEDG_SS
schizoid писал(а):офтоп
а , извиняюсь, как вы используете ключи в таблицах? всегда было интересно для чего они...
Например можно создать одну таблицу для бана, и банить с разными ключами, в зависимости от причины и перенаправлять на веб. В зависимости от ключа выдается разные причины бана. В результате мешьше правил, меньше таблиц.
Второй пример. Таблица - это направление, а ключ - соответствует определенной ширине пайпа. В результате таблиц меньше и можно одной командой просмотреть попал ли юзер в это направление, да и логическая схема проще

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 10:53:39
schizoid
слушайте, а тогда еще вопрос, вот как в примере выше
ipfw table 1 add 192.168.0.0/27 4
ipfw table 1 add 192.168.0.2 1
192.168.0.2 входит в диапазон 192.168.0.0/27, но получается, что вся сеть 192.168.0.0/27 имеет параметр 4, кроме 192.168.0.2, который имеет параметр 1?
и соответственно вся сеть будет шейпится по пайп 4, кроме ИПа 192.168.0.2, который шейпится пайпом 1?

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 11:11:31
HEDG_SS
Не уверен, но думаю , все зависит от того в каком порядке будут пайпы, и как прописаны правила. Насколько я понимаю возможен и такой случай, что 192.168.0.2 будет нарезаться последовательно дважды
Для устранения неопределенности можно использовать, что то вроде этого (вырезка с вывода ipfw sh) :

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

pipe 2019 ip from table(101) to table(1,10) out
pipe 2020 ip from table(1,10) to table(101) out
allow ip from table(101) to table(1,10) out
allow ip from table(1,10) to table(101) out

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 11:16:42
HEDG_SS
Так что, неужели НИКТО не шейпил на PF ?? :st:

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 11:26:52
schizoid
видимо нет.
я как-то пытался, но что-то меня не устроило, было несколько провайдеров, а шейпер PF-а умеет шейпить только исходящий трафик с интерфейса...короче мне не понравилось.

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 11:37:50
hizel
местные pf-овцы жидко сливают, как только слышат слово "шейпинг" :-)

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 12:21:27
HEDG_SS
Слышал, что некоторые используют для шейпинга связку ipfw + ng_car .
Есть такие на этом форуме ? И вообще есть ли какие то адекватные альтернативы для паупов ipfw ?

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 12:32:08
hizel
ну вам на НАГе вполне адекватно посоветовали ng_car, тупенький нод для нетграфа, только режет :]
особенно мило интегрируется в mpd связку с радиусом

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 15:04:42
ski
HEDG_SS писал(а):Слышал, что некоторые используют для шейпинга связку ipfw + ng_car .
Есть такие на этом форуме ? И вообще есть ли какие то адекватные альтернативы для паупов ipfw ?
Мы используем в связке с mpd. Каналы режет, нагрузка на процессор заметно ниже, чем при использовании ipfw. Но насколько я разобрался, оно умеет только резать канал и все. Режет по интерфейсам, как реальным, так и виртуальным.

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 16:14:20
HEDG_SS
А как насчет динамических пайпов , как в ipfw ? Т.е. чтоб каждому ip , удовлетворяющему правилу, назначался соответствующий пайп ?
Насколько четко он режет ?
Есть ли там возможность ограничить количество соединений?

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-02 16:24:47
ski
HEDG_SS писал(а):А как насчет динамических пайпов , как в ipfw ? Т.е. чтоб каждому ip , удовлетворяющему правилу, назначался соответствующий пайп ?
Насколько четко он режет ?
Есть ли там возможность ограничить количество соединений?
1. Могу ошибаться, но по-моему нет.
2. достаточно четко.
3. аналогично 1.

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-04 11:29:08
HEDG_SS
Понятно, лучший опыт - свой опыт :). Освободится немного времени , надо будет поэксперементировать..

Re: Шейпинг на PF более 1500 клиентов.

Добавлено: 2009-07-22 12:20:52
UStas
Вопрос знатокам:

Можно ли в ALTQ добавить список очередей по средствам какого то цикла в конфиге кпримеру через for();

Очень не хочется раздувать конфиг а надо создать 8000 очередей в каждом направлении чтоб потом в них загонять динамически через якоря траффик.