Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: Dr.zlo от 05 Декабря 2013, 18:57:38



Название: NODENY Plus + mikrotik
Отправлено: Dr.zlo от 05 Декабря 2013, 18:57:38
Ребята подскажите как передать через радиус скорость на микротик.


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 06 Декабря 2013, 00:48:25
http://wiki.mikrotik.com/wiki/RouterOs_MySql_Freeradius

Атрибут Mikrotik-Rate-Limit


Как выудить скорость из пакета - завтра расскажу.


Название: Re: NODENY Plus + mikrotik
Отправлено: Dr.zlo от 06 Декабря 2013, 13:50:47
Какой атрибут я знаю.
Меня интересует как видернуть из бд ету скорость.


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 06 Декабря 2013, 14:54:55
Дело в том, что данные услуги хранятся в закодированном (серилизованном) виде для того, чтобы делать услуги любой сложности - включать любую комбинацию полей хоть для интернета, хоть для подсчета яблок. Из mysql выудить эти поля не то чтобы невозможно, но очень и очень геморно - будет громадная процедура. Тут есть 2 пути: в радиусе заменить mysql-процедуры на вызов perl скрипта - этим у нас будет ацкая гибкость, но пока я этим вопросом не занимался и понятно, что завтра скрипты не будут.

Второй вариант - я подправлю модуль услуг так, чтобы он в поле "теги" дописывал через запятую скорость тарифа. Из тегов выудить для мускула будет проще. Если такой вариант устраивает, то в принципе можно сегодня-завтра внести эту фичу


Название: Re: NODENY Plus + mikrotik
Отправлено: Dr.zlo от 06 Декабря 2013, 15:03:03
Второй вариант мне подходит. Я так понял что при втором варианте я могу свой mpd не трогать и микротик заработает с ограничением скорости.
У меня просто сечас один нас ето mpd а другой ето mikrotik.


Название: Re: NODENY Plus + mikrotik
Отправлено: Dr.zlo от 06 Декабря 2013, 16:46:25
Зробив для себе костиль. Так як в мене всі швидкості симетричні. І послуги тіки з швидкістю. Да і тіки один напрямок. То мені підходить.
Код:
DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$
CREATE PROCEDURE `radreply`(IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
  DECLARE usr_service INT;
  DECLARE usr_speed INT;

  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  SELECT service_id INTO usr_service FROM users_services WHERE uid=usr_id;
  SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(param,'\'',22),'\'',-1) INTO usr_speed FROM services WHERE service_id=usr_service;
  SELECT get_ip(usr_id) INTO usr_ip;

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
  SELECT NULL,login,'Mikrotik-Rate-Limit',usr_speed,'=';
END$$
DELIMITER ;
Тепер можу спокійно чекати рішення якогось більш вміняймого від розробника.


Название: Re: NODENY Plus + mikrotik
Отправлено: YuSHa от 06 Декабря 2013, 16:49:47
to Dr.zlo
а как вы будите перенаправлять заблокированных на заглушку? может умная мысли поможет решить мою проблему перехода на nodeny.
у нас сейчас реализовано так: если в биллинге (не нодени) абонент продлен(есть деньги) то получает ip из пула, который натится, если заболокирован - получает ip из другой подсети и в микротике дропается все кроме 80 порта и все запросы 80 порта перенаправляются на статическую заглушку типа "дай денег"


Название: Re: NODENY Plus + mikrotik
Отправлено: Dr.zlo от 06 Декабря 2013, 16:58:50
Ну так можна при авторизации дьорнуть статус щьота і видать ip с другого пула ip. Пули ip можна создавать разние.
Но я правда не знаю насколько правильно оно будет.


Название: Re: NODENY Plus + mikrotik
Отправлено: stek от 09 Декабря 2013, 18:45:46
to Dr.zlo
а как вы будите перенаправлять заблокированных на заглушку? может умная мысли поможет решить мою проблему перехода на nodeny.
у нас сейчас реализовано так: если в биллинге (не нодени) абонент продлен(есть деньги) то получает ip из пула, который натится, если заболокирован - получает ip из другой подсети и в микротике дропается все кроме 80 порта и все запросы 80 порта перенаправляются на статическую заглушку типа "дай денег"
На микротике это сделать легче всего
chain=dstnat action=dst-nat to-addresses=10.105.1.1 to-ports=80 protocol=tcp src-address=10.105.7.0/24 src-address-list=!goodboys dst-port=80
если народа нет в гудбойсах то попадает на 10.105.1.1
то-есть не нужно абонента по пулам гонять пусть себе сидит со своей айпишкой.
просто добавляй его в фаер а лист если ему можно ходить
в правила NAT можно добавить любое количество подсетей


Название: Re: NODENY Plus + mikrotik
Отправлено: YuSHa от 10 Декабря 2013, 14:31:54
так заглушка у нас сейчас и сделана. но как добавлять/удалять гудбоев из аксес листа?
для 49/50 был скрипт управления фаером, но как его скрестить с N+ я  не знаю.
минус  ещё в том, что при передаче скорости при поднятии pppoe динамически скорость не изменить


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 10 Декабря 2013, 15:16:32
минус  ещё в том, что при передаче скорости при поднятии pppoe динамически скорость не изменить
По идее, если микротик поддерживает http://wiki.sirmax.noname.com.ua/index.php/CoA , то можно сделать.  Ладно, скажите мне, скрипт микротика для N49/50 имеет недостаток лишь в том, что иногда создаются дублирующиеся записи?


Название: Re: NODENY Plus + mikrotik
Отправлено: YuSHa от 10 Декабря 2013, 15:36:11
в  продакшене этот скрипт не использовал. только на тестах.


Название: Re: NODENY Plus + mikrotik
Отправлено: Dr.zlo от 10 Декабря 2013, 17:03:29
Цитировать
так заглушка у нас сейчас и сделана. но как добавлять/удалять гудбоев из аксес листа?
для 49/50 был скрипт управления фаером, но как его скрестить с N+ я  не знаю.
минус  ещё в том, что при передаче скорости при поднятии pppoe динамически скорость не изменить

Ну как би поидеи есть атрибут Mikrotik-Address-List которий является строкой. При передачи параметров в него можна вписать значение столбца "state" в результате получим две таблички адресов корие будут називатся "on" и "off". Ну а дальше уже с етими табличками что хотим то и делаем.


Название: Re: NODENY Plus + mikrotik
Отправлено: YuSHa от 10 Декабря 2013, 17:13:49
но это только для pppoe. опять  же нужно ограничивать время сессии. т.к. динамически абонента мы не переведем из одного листа в другой


Название: Re: NODENY Plus + mikrotik
Отправлено: sov от 10 Декабря 2013, 17:54:47
Ладно, скажите мне, скрипт микротика для N49/50 имеет недостаток лишь в том, что иногда создаются дублирующиеся записи?

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

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

Поясняю мысль. Маленький аппаратный микротик имеет смысл ставить где-нибудь на дальних окраинах, где мало клиентов. И получается, что ради десятка-сотни клиентов самого микротика, на него грузятся (и постоянно обновляются) тысячи правил, учитывающих связь с клиентами других сателлитов. Это создаёт совершенно ненужную и достаточно ощутимую нагрузку. Проще вообще этот трафик запретить - для 99,9% клиентов нужен только доступ в интернет.


Название: Re: NODENY Plus + mikrotik
Отправлено: Dr.zlo от 10 Декабря 2013, 18:31:34
Цитировать
но это только для pppoe. опять  же нужно ограничивать время сессии. т.к. динамически абонента мы не переведем из одного листа в другой
А что в радапдейт незя передать параметр перекинуть в другую групу адресов ?


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 11 Декабря 2013, 14:47:26
В общем, я почти переработал скрипт управления микротиком. Сделал его более медленным, но надежней. Сейчас после каждой команды он дает "отдышаться" микротику. Тестирую на виртуальной машине....


Название: Re: NODENY Plus + mikrotik
Отправлено: YuSHa от 11 Декабря 2013, 15:25:03
будет возможность использовать несколько сателитов? как микротиковских так и bsd-шных?


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 11 Декабря 2013, 15:47:38
будет возможность использовать несколько сателитов? как микротиковских так и bsd-шных?
да

Сейчас запустил в реальной сети из 500 абонов, правда микротик на виртуалке, но по идее это даже лучше - она менее производительна чем реальная железка, значит если выдержит такую нагрузку, то в реале еще большую

P.S. Причем виртуалка запущена в другом городе и управление идет через инет


Название: Re: NODENY Plus + mikrotik
Отправлено: YuSHa от 11 Декабря 2013, 15:53:02
микротик  только pppoe сервер? делается ли нат? есть ли в списке( на будущее) реализация форварда на заглушку?
и какой версии микротик?


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 11 Декабря 2013, 16:34:29
управление через API, как в N50 списки goodboys и simple queue


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 11 Декабря 2013, 17:37:47
Пофиксил дублирование записей в эксесс-листах


Название: Re: NODENY Plus + mikrotik
Отправлено: stek от 24 Декабря 2013, 18:01:09
1) нет он не удаляет весть лист и квей, он смотрит наличие сесии, и если она есть то он её оставляет.
2) нет все не обновляются, ты же сателиту указываеш какие группы пихать в микротик.


Название: Re: NODENY Plus + mikrotik
Отправлено: stek от 24 Декабря 2013, 18:07:36
микротик  только pppoe сервер? делается ли нат? есть ли в списке( на будущее) реализация форварда на заглушку?
и какой версии микротик?
ну по ходу там правило добавлялось толко на форвард и все делов.
а для заглушки просто указываеш какую сеть перенаправлять и всё. для этого не нужен скрипт, ибо не есть целью скрипта прописывать ещё и вс правила в фаервол, у меня на пример ещё дофига дополнительных правил, и на брут и на дос и ограничение по количеству запросов.
не всовывать же это всё в скрипт.

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


Название: Re: NODENY Plus + mikrotik
Отправлено: DezZ от 18 Февраля 2015, 14:35:38
Добрый день. Вопрос по работе модуля. У меня между авторизацией пользователя и фактическим получением пользвотелем доступа в интернет проходит около 30 секунд. Это нормально?


Название: Re: NODENY Plus + mikrotik
Отправлено: Efendy от 18 Февраля 2015, 14:55:16
Честно говоря уже не помню. Запусти модуль микротика в консоли с ключем -v и посмотри как быстро он реагирует на включение/выключение режима "всегда онлайн" у тестовой записи


Название: Re: NODENY Plus + mikrotik
Отправлено: DezZ от 18 Февраля 2015, 16:39:53
Запускал. Вижу что nodeny постоянно (циклами) по API синхронизирует микротик. После внесения изминений в тестовой записи, заканчивает текущий цикл и применяет изминения в следующем. Проблема в количестве пользователей/записей? Дело в том, что тех пользователей, что нет в листе goodboys я отправляю в лист badboys (с таймаутом в 5 сек.) А badboys, в свою очередь, отправляются на заглушку. Как результат - пользователь с положительным балансом, после авторизации 20-30 секунд наблюдает заглушку, что совсем не красиво ....