nodeny + mikrotik.queue

148 views
Skip to first unread message

Богдан

unread,
Aug 13, 2009, 12:47:39 PM8/13/09
to nod...@googlegroups.com
Настроил микротик с нодени и увидел одну нехарошую вещь- каждые 30 секунд нодени проверят на микротке queue и аксес листы и делает записи в queue тем самым дает нагрузку на флешку сильную что не есть хорошо. Если винт стоит то это не важно но вот флеш это уже траблы он так за пару месяцев флеш загонит. Вопрос как сделать так чтоб queue создавались при создании юзера и проверялись 1 раз припустим в час, точно также с акцес листом только когда юзер авторизировался или прошла оплата.


Я в Моем Мире - http://my.mail.ru/mail/bogdan_wifi/

s...@ukr.net

unread,
Aug 14, 2009, 3:13:28 AM8/14/09
to NoDeny
Хм, я был не вкурсе, что микротик постоянно дергает флеш - скрипты
тестировал на эмуляторе. Жаль, конечно, - на этом базировалась
надежная синхронизация в случае проблем с каналом, перезагрузками. Я
еще подумаю что можно придумать ибо раз в час - это не синхронизация,
так можно клиента из себя вывести. Пока можешь состыковаться с inok -
попробуйте его скрипты

inok

unread,
Aug 14, 2009, 5:20:57 AM8/14/09
to NoDeny
Сейчас, как-раз этим и занимаемся. у нас запуск делается каждые 15
мин., что тоже не есть гуд. решили разделить авторизацию и нарезку
скорости в разные скрипты. Авторизация вещь неизбежная и будет
проводиться довольно часто (ес-но зависит от количества клиентов на
роутере), что касается queue то тут, если не использовать опции, смена
скорости будет происходить один раз в месяц, на всякий случай можно
делать проверки скажем раз в сутки. Кроме того по всей видимости есть
смысл использовать тригеры, для обработки внеплановой смены скорости.

inok

unread,
Aug 14, 2009, 5:33:22 AM8/14/09
to NoDeny
Кстати Стас, помниш я писал о недостаточном количестве параметров,
которые передаются в nofire.pl? Согласен, не досмотрел насчет
доппарам, но он передается только в allow а в deny к сожалению нет.
Скажем я держу в дополнительном поле адрес роутера, который
обслуживает клиента, таким образом дополнительные поля совершенно
необходимо передавать и при вызове deny. пока-что решаем путем
выполнения sql запроса в самом nofire.pl, что имхо не совсем правильно.

Богдан

unread,
Aug 14, 2009, 5:43:18 AM8/14/09
to nod...@googlegroups.com
Ограничение скорости можно реализовать на микротике таким путем - создается несколько профилей для pppoe в них указывается скорость для профиля когда клиент конектится микротик сам прописывает ему правило на ограничение, таким путем вобще тогда не нужно проверять шейперы с нодени только оставить авторизацию на микротике, а это уменьшит нагрузку на флеш. Если у клиента изменится тариф тогда изменить ему профиль на микротике. И еще очень было б хорошо если при создании клиента нодени на микротике делал учетную запись для pppoe.

Валентин Настенко

unread,
Aug 15, 2009, 6:05:05 AM8/15/09
to nod...@googlegroups.com
Все можно сделать, разработка вашего решения будет стоить всего 1200 -1500 грн в зависимости от ТЗ.
Если интересно, подготовьте ваше ТЗ и пришлите на емейл versus.ua@gmail.com
  

14 августа 2009 г. 12:43 пользователь Богдан <bogda...@mail.ru> написал:

s...@ukr.net

unread,
Aug 18, 2009, 4:44:31 AM8/18/09
to NoDeny

В deny не получается передавать все данные, ибо при передаче в allow
они могут быть изменены noserver-ом. Такие ситуации решаются очень
просто: поскольку мы не может выключить клиента, предварительно не
включив его, то мы всегда сможем запомнить данные, которые были на
момент включения. Т.е. в самой подпрограмме allow после:

my $p=$_[0];
my ($auth,$dop_param,$i,$id,$ip,$mid,$n,$num,$num1,$num2,$opt,
$options);
my ($paket,$pipe2,$pipe_in,$pipe_out,$speed2,$speed_in,$speed_out);

$ip=$p->{ip};
$id=$p->{id};

вставляешь:
my %m=%$p;
$Udata{$id}=\%m;

Т.е. в $Udata{$id} запомнил ссылку на хеш данных. Финт с %m нужен чтоб
мы создали новыйхеш из ссылки на хеш ($p) т.к. впоследствии хеш может
меняться

Reply all
Reply to author
Forward
0 new messages