Биллинговая система Nodeny
04 Мая 2024, 07:19:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: NODENY Plus + mikrotik  (Прочитано 8005 раз)
Dr.zlo
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 61



Просмотр профиля Email
« : 05 Декабря 2013, 18:57:38 »

Ребята подскажите как передать через радиус скорость на микротик.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #1 : 06 Декабря 2013, 00:48:25 »

http://wiki.mikrotik.com/wiki/RouterOs_MySql_Freeradius

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


Как выудить скорость из пакета - завтра расскажу.
Записан
Dr.zlo
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 61



Просмотр профиля Email
« Ответ #2 : 06 Декабря 2013, 13:50:47 »

Какой атрибут я знаю.
Меня интересует как видернуть из бд ету скорость.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #3 : 06 Декабря 2013, 14:54:55 »

Дело в том, что данные услуги хранятся в закодированном (серилизованном) виде для того, чтобы делать услуги любой сложности - включать любую комбинацию полей хоть для интернета, хоть для подсчета яблок. Из mysql выудить эти поля не то чтобы невозможно, но очень и очень геморно - будет громадная процедура. Тут есть 2 пути: в радиусе заменить mysql-процедуры на вызов perl скрипта - этим у нас будет ацкая гибкость, но пока я этим вопросом не занимался и понятно, что завтра скрипты не будут.

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

Карма: 0
Offline Offline

Сообщений: 61



Просмотр профиля Email
« Ответ #4 : 06 Декабря 2013, 15:03:03 »

Второй вариант мне подходит. Я так понял что при втором варианте я могу свой mpd не трогать и микротик заработает с ограничением скорости.
У меня просто сечас один нас ето mpd а другой ето mikrotik.
Записан
Dr.zlo
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 61



Просмотр профиля Email
« Ответ #5 : 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 ;
Тепер можу спокійно чекати рішення якогось більш вміняймого від розробника.
Записан
YuSHa
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 183


318444293
Просмотр профиля Email
« Ответ #6 : 06 Декабря 2013, 16:49:47 »

to Dr.zlo
а как вы будите перенаправлять заблокированных на заглушку? может умная мысли поможет решить мою проблему перехода на nodeny.
у нас сейчас реализовано так: если в биллинге (не нодени) абонент продлен(есть деньги) то получает ip из пула, который натится, если заболокирован - получает ip из другой подсети и в микротике дропается все кроме 80 порта и все запросы 80 порта перенаправляются на статическую заглушку типа "дай денег"
Записан
Dr.zlo
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 61



Просмотр профиля Email
« Ответ #7 : 06 Декабря 2013, 16:58:50 »

Ну так можна при авторизации дьорнуть статус щьота і видать ip с другого пула ip. Пули ip можна создавать разние.
Но я правда не знаю насколько правильно оно будет.
Записан
stek
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 7


Просмотр профиля
« Ответ #8 : 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 можно добавить любое количество подсетей
Записан
YuSHa
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 183


318444293
Просмотр профиля Email
« Ответ #9 : 10 Декабря 2013, 14:31:54 »

так заглушка у нас сейчас и сделана. но как добавлять/удалять гудбоев из аксес листа?
для 49/50 был скрипт управления фаером, но как его скрестить с N+ я  не знаю.
минус  ещё в том, что при передаче скорости при поднятии pppoe динамически скорость не изменить
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #10 : 10 Декабря 2013, 15:16:32 »

минус  ещё в том, что при передаче скорости при поднятии pppoe динамически скорость не изменить
По идее, если микротик поддерживает http://wiki.sirmax.noname.com.ua/index.php/CoA , то можно сделать.  Ладно, скажите мне, скрипт микротика для N49/50 имеет недостаток лишь в том, что иногда создаются дублирующиеся записи?
Записан
YuSHa
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 183


318444293
Просмотр профиля Email
« Ответ #11 : 10 Декабря 2013, 15:36:11 »

в  продакшене этот скрипт не использовал. только на тестах.
Записан
Dr.zlo
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 61



Просмотр профиля Email
« Ответ #12 : 10 Декабря 2013, 17:03:29 »

Цитировать
так заглушка у нас сейчас и сделана. но как добавлять/удалять гудбоев из аксес листа?
для 49/50 был скрипт управления фаером, но как его скрестить с N+ я  не знаю.
минус  ещё в том, что при передаче скорости при поднятии pppoe динамически скорость не изменить

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

Карма: 6
Offline Offline

Сообщений: 183


318444293
Просмотр профиля Email
« Ответ #13 : 10 Декабря 2013, 17:13:49 »

но это только для pppoe. опять  же нужно ограничивать время сессии. т.к. динамически абонента мы не переведем из одного листа в другой
Записан
sov
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 101


Просмотр профиля
« Ответ #14 : 10 Декабря 2013, 17:54:47 »

Ладно, скажите мне, скрипт микротика для N49/50 имеет недостаток лишь в том, что иногда создаются дублирующиеся записи?

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

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

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

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!