Перейти к содержимому
Калькуляторы

Самый быстрый шейпер ?

Все таки хочется вычислить какие-то циферные характеристики для определения оптимального пути. Думаю для начала надо попробовать ipfw+tables и сравнить задержки. Подскажите, как\чем можно смоделировать реальную ситуацию: около 300 сетей прогоняются через тестовую машину, создавая траффик примерно 60 Мб\сек.

 

И вопрос про Микротик: если шейпить на сим, то можно ли как-то с него снимать инфу от трафике подобно netflow на FreeBSD?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И вопрос про Микротик: если шейпить на сим, то можно ли как-то с него снимать инфу от трафике подобно netflow на FreeBSD?

нетфлоу 5 работает на нем

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, мы немного отклонились от темы..

А какие пары атрибут-значение возвращает Ваш радиус при коннекте пользователя? откуда он берет эти атрибуты?

(я не знаком с FreeNibs, но у меня тоже не ABillS, просто тут наиболее внятно и коротко разъясняется как прикрутить свои атрибуты к связке

radius+pptpd)

Дело тут вот в чем - мне проще лишний раз "дернуть" MySQL, чем разобраться в связке radius+pptpd.. И так ли оно важно, откуда стартовый скрипт возьмет нужные параметры - из радиуса, или mysql ?? Ведь этот "дополнительный" запрос к БД происходит всего лишь один раз, при открытии vpn сессии юзером, т.е. "прогрузить" систему это может только в случае одновременного запроса на авторизацию не одной сотни юзеров, что вероятно только в очень больших сетях.. Соглашусь еще раз в том, что предложенный вариант более логичен, но стОит ли оно того??

 

P.S. Если Вы не против и имеете возможность помочь в этом вопросе, то я готов продолжить обсуждение. Чтобы не оффтопить здесь, создадим новую тему.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, мы немного отклонились от темы..

А какие пары атрибут-значение возвращает Ваш радиус при коннекте пользователя? откуда он берет эти атрибуты?

(я не знаком с FreeNibs, но у меня тоже не ABillS, просто тут наиболее внятно и коротко разъясняется как прикрутить свои атрибуты к связке

radius+pptpd)

Дело тут вот в чем - мне проще лишний раз "дернуть" MySQL, чем разобраться в связке radius+pptpd.. И так ли оно важно, откуда стартовый скрипт возьмет нужные параметры - из радиуса, или mysql ?? Ведь этот "дополнительный" запрос к БД происходит всего лишь один раз, при открытии vpn сессии юзером,

т.е. "прогрузить" систему это может только в случае одновременного запроса на авторизацию не одной сотни юзеров, что вероятно только в очень больших сетях.. Соглашусь еще раз в том, что предложенный вариант более логичен, но стОит ли оно того??

 

P.S. Если Вы не против и имеете возможность помочь в этом вопросе, то я готов продолжить обсуждение. Чтобы не оффтопить здесь, создадим новую тему.

В случае когда у вас pptp на той же машине где и радиус и MySQL - да, все происходит более-менее быстро.

при попытке разнести их - уже появляется достаточная задержка.

 

А сколько у Вас отдновременно висящих пользователей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, мы немного отклонились от темы..

А какие пары атрибут-значение возвращает Ваш радиус при коннекте пользователя? откуда он берет эти атрибуты?

(я не знаком с FreeNibs, но у меня тоже не ABillS, просто тут наиболее внятно и коротко разъясняется как прикрутить свои атрибуты к связке

radius+pptpd)

Дело тут вот в чем - мне проще лишний раз "дернуть" MySQL, чем разобраться в связке radius+pptpd.. И так ли оно важно, откуда стартовый скрипт возьмет нужные параметры - из радиуса, или mysql ?? Ведь этот "дополнительный" запрос к БД происходит всего лишь один раз, при открытии vpn сессии юзером,

т.е. "прогрузить" систему это может только в случае одновременного запроса на авторизацию не одной сотни юзеров, что вероятно только в очень больших сетях.. Соглашусь еще раз в том, что предложенный вариант более логичен, но стОит ли оно того??

 

P.S. Если Вы не против и имеете возможность помочь в этом вопросе, то я готов продолжить обсуждение. Чтобы не оффтопить здесь, создадим новую тему.

В случае когда у вас pptp на той же машине где и радиус и MySQL - да, все происходит более-менее быстро.

при попытке разнести их - уже появляется достаточная задержка.

 

А сколько у Вас отдновременно висящих пользователей?

Одновременно до 3000 пользователей держали на связке "эн кошек + сервер с радиусом" - нормально это работает, без заметных торможений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разумнее написать демона, который будет в persist коннекте к mysql, и получать запросы от ip-up через что-то быстрое (не файлы, не редирект stdio/stdio, не fork-анье других скриптов). Я переписал для этого дела ip-up на сях... правда нормальное взаимодействие с демоном так и не отработал.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

эм... а чем не устраивает radattr.so ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ставьте linux
А что по части шейпинга в Линукс лучше, т.е. чем там лучше шейпить? Есть ли у вас какие-то наработки по шейпингу более 200 каналов и какие при этом бывают задержки?
Шейплю на линуксе, нарезка от 64кбит до 4 мбит. Использую самый обыкновенный htbinit. Задержек не заметил, если не забить очередь закачками. 2000 шейпов тянет не напрягаясь.

Файлики от htbinit содежат типа

RATE=65536
CEIL=133120
R2Q=6
LEAF=sfq
RULE=ip.addr.clie.nt

qdisc использую htb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

эм... а чем не устраивает radattr.so ?

Дык не знаю, как в него "засунуть" PPPD-Upstream-Speed-Limit и PPPD-Downstream-Speed-Limit.... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Взять радиус сервер, прикрутить к своему биллингу гвоздями, теми же гвоздями обеспечить нужный набор атрибутов....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Взять радиус сервер, прикрутить к своему биллингу гвоздями, теми же гвоздями обеспечить нужный набор атрибутов....
Ёпрст! Сорри.. Дык писАл же уже - есть "прибитый нужными гвоздями" к радиусу биллинг FreeNibs (Вам ли его не знать! ;)). Но в нем нет "прибитого" radattr.so (только radius.so) .. И как это сделать, не пересобирая исходники, я не знаю...

Пересобрать исходники (модуль rlm_nibs) моих способностей вряд ли хватит.. Может быть сие можно реализовать элементарной коррекцией конфигов? Поделитесь мыслями, если знаете как! ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

radattr.so прикручивается не к радиусу, а к pppd... прикручивается очень просто - plugin radattr.so в конфиг pppd....

И с этого момента у вас появляется волшебный файлик /var/run/radattr.pppX

А вот дальше - внимательно посмотреть в биллинг, где задается какие атрибуты он отдает абоненту...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

эм... а чем не устраивает radattr.so ?
Например тем, что у него counters берутся из структуры, где байты считаются в int. Следовательно на 2Гб будет обнуление счетчика.

Конечно можно поправить и сделать, чтоб он умел работать с gigawords... но нет на это времени.

 

Gigawords может работать только для Maxoctets лимита отдаваемого радиусом клиенту, в виде патчика... но этого мало.

 

Кроме того радиус не очень хорошо отрабатывает потерю связи с "центром".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

radattr.so прикручивается не к радиусу, а к pppd... прикручивается очень просто - plugin radattr.so в конфиг pppd....

И с этого момента у вас появляется волшебный файлик /var/run/radattr.pppX

Ну да.. Не так выразился. ;) И этот "пункт" мне известен. А вот это...
А вот дальше - внимательно посмотреть в биллинг, где задается какие атрибуты он отдает абоненту...
Вот как раз и главная проблема..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

эм... а чем не устраивает radattr.so ?
Например тем, что у него counters берутся из структуры, где байты считаются в int. Следовательно на 2Гб будет обнуление счетчика.

Конечно можно поправить и сделать, чтоб он умел работать с gigawords... но нет на это времени.

 

Gigawords может работать только для Maxoctets лимита отдаваемого радиусом клиенту, в виде патчика... но этого мало.

 

Кроме того радиус не очень хорошо отрабатывает потерю связи с "центром".

Эм.. А причем тут это? ip-up насколько я помню про подъеме соединения отрабатывал ;)

radattr для передачи параметров канала на access сервер... А подсчет трафика я бы вообще netflow делал... Точнее пока сделано на ulog на vpn серверах, переделываю на netflow....

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чем дольше думаю над пробюлемой тем более привлекательной кажется идея шейпить отдельно от VPN на отдельном шейпер-роутере, сложной конструкцией но на одном интерфейсе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6.3-RELEASE Amd64 2800+

 

Пайпы по скоростям

ipfw pipe 42 config mask dst-ip 0x00ffffff bw 16kbyte/s

ipfw pipe 43 config mask dst-ip 0x00ffffff bw 24kbyte/s

ipfw pipe 44 config mask dst-ip 0x00ffffff bw 32kbyte/s

ipfw pipe 45 config mask dst-ip 0x00ffffff bw 64kbyte/s

 

На каждого клиента

# User ####08

ipfw add 11690 pipe 44 all from any to 10.8.33.33 out

ipfw add 11690 pipe 51 all from 10.8.33.33 to any in

ipfw add 11691 count all from any to 10.8.33.33 in via fxp0

ipfw add 11692 count all from 10.8.33.33 to any out via fxp0

ipfw add 11693 allow all from any to 10.8.33.33

ipfw add 11694 allow all from 10.8.33.33 to any

 

"Клиентов" порядка 200. Апач, mrtg на каждого клиента, ntop. Половина висит через 2 сервера openvpn, один для внутренних, другой для реальных IP. Никаких задержек. До этого работало на 4.x, 5.x результаты аналогичные. Без ntop загрузка проца нулевая.

 

last pid: 29354; load averages: 1.00, 1.03, 1.00 up 81+11:13:14 18:53:56

46 processes: 2 running, 44 sleeping

CPU states: 11.4% user, 0.0% nice, 88.6% system, 0.0% interrupt, 0.0% idle

Mem: 228M Active, 56M Inact, 97M Wired, 21M Cache, 60M Buf, 23M Free

Swap: 2048M Total, 12M Used, 2036M Free

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чем дольше думаю над пробюлемой тем более привлекательной кажется идея шейпить отдельно от VPN на отдельном шейпер-роутере, сложной конструкцией но на одном интерфейсе.

Гм.. А как это Вы представляете в реалиях?? Непонятно, как на одном интерфейсе реализовать персональный шейпер каждому ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кхм... /etc/sysconfig/htb или /etc/sysconfig/htb никогда не видели?

вот как вы на нескольких интерфейсах реализуете такую политику шейпирования - каждому клиенту по 256 кбит, суммарно 5 мбит, свободную полосу отдать желающему, но не более 1 мбит? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кхм... /etc/sysconfig/htb или /etc/sysconfig/htb никогда не видели?

вот как вы на нескольких интерфейсах реализуете такую политику шейпирования - каждому клиенту по 256 кбит, суммарно 5 мбит, свободную полосу отдать желающему, но не более 1 мбит? ;)

с imq + htb.init проще пареной репы, правда ручками, автоматизация крайне неудобна

с ifb - не знаю, не пробовал

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

imq - один интерфейс.... Внимательно читаем вопрос и мой ответ.... (ifb ессно тоже один интерфейс)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6.3-RELEASE Amd64 2800+

 

Пайпы по скоростям

ipfw pipe 42 config mask dst-ip 0x00ffffff bw 16kbyte/s

ipfw pipe 43 config mask dst-ip 0x00ffffff bw 24kbyte/s

ipfw pipe 44 config mask dst-ip 0x00ffffff bw 32kbyte/s

ipfw pipe 45 config mask dst-ip 0x00ffffff bw 64kbyte/s

 

На каждого клиента

# User ####08

ipfw add 11690 pipe 44 all from any to 10.8.33.33 out

ipfw add 11690 pipe 51 all from 10.8.33.33 to any in

ipfw add 11691 count all from any to 10.8.33.33 in via fxp0

ipfw add 11692 count all from 10.8.33.33 to any out via fxp0

ipfw add 11693 allow all from any to 10.8.33.33

ipfw add 11694 allow all from 10.8.33.33 to any

А сколько трафика у вас выбирают все клиенты?

У меня сейчас примерно так же настроен файрвол:

Для каждого клиента:

 

ipfw queue 12161 config pipe 12161 mask all

ipfw queue 12160 config pipe 12160 mask all

ipfw pipe 12161 config bw 128Kbit/s queue 30Kbytes

ipfw pipe 12160 config bw 128Kbit/s queue 30Kbytes

 

ipfw add 12160 queue 12160 ip from 10.10.10.0/30 to any out via em4

ipfw add 12161 queue 12161 ip from any to 10.10.10.0/30 in via em4

ipfw add 12162 allow ip from 10.10.10.0/30 to any

ipfw add 12163 allow ip from any to 10.10.10.0/30

 

и после его прохождения появляется задержка в ~200мс.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А сколько трафика у вас выбирают все клиенты?
60+ Но эт непринципиально. В основном юрики, которые работают с 11-13 и 16-17:30 в пики создавая нагрузку до 2мбит.

 

У меня сейчас примерно так же настроен файрвол:

Для каждого клиента:

 

ipfw queue 12161 config pipe 12161 mask all

ipfw queue 12160 config pipe 12160 mask all

ipfw pipe 12161 config bw 128Kbit/s queue 30Kbytes

ipfw pipe 12160 config bw 128Kbit/s queue 30Kbytes

 

ipfw add 12160 queue 12160 ip from 10.10.10.0/30 to any out via em4

ipfw add 12161 queue 12161 ip from any to 10.10.10.0/30 in via em4

ipfw add 12162 allow ip from 10.10.10.0/30 to any

ipfw add 12163 allow ip from any to 10.10.10.0/30

 

и после его прохождения появляется задержка в ~200мс.

Попробовать уменьшить "30Kbytes"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

есть патч на пайпы, обсуждалось здесь уже... Убирает задержки при свободном пайпе. Надо пользоваться таблицами с параметрами, это снизит нагрузку на процессор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кхм... /etc/sysconfig/htb или /etc/sysconfig/htb никогда не видели?

вот как вы на нескольких интерфейсах реализуете такую политику шейпирования - каждому клиенту по 256 кбит, суммарно 5 мбит, свободную полосу отдать желающему, но не более 1 мбит? ;)

с imq + htb.init проще пареной репы, правда ручками, автоматизация крайне неудобна

с ifb - не знаю, не пробовал

Зачем городить ifb там где моно этого не делать? Клиентов шейпить - так на eth )

Я примняю ifb там где радио - заворачиваю и вход и исход в ifb а потом приоритезирую на нем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.