Перейти до

UBilling + NAS Mikrotik по API


Рекомендованные сообщения

Добрый день!

С недавних пор в сети стал необходим биллинг. Нашел UBilling, установил.

Такой вопрос: может ли UBilling взаимодействовать с микротиком не по радиусу, а по api?

Сеть имеет следующий принцип: выдача ip клиентам производится с помощью dhcp relay + option 82, так же есть dhcp snooping. В итоге на один порт коммутатора может выдаваться один строго определенный в конфиге isc-dhcp-server на отдельном сервере с debian IP-адрес.

Далее по дефолтному маршруту клиент попадает на шлюз сегмента, а потом на NAS на RouterOS х86.

На NAS шейпинг и воогще разрешение доступа в интернет производится с помощью адррес листов, фаерволла и queue tree. Вкратце:

1. Есть 3 аддрес-листа - T1 T2 T3 на каждый из тарифов.

2. Для всех IP, не входящих в эти адрес листы, доступ блокируется.

3. Для IP входящих в листы, шейпинг производится с помощью QT согласно тарифу.

На данный момент добавление, отключение и включение пользователей производится вручную (благо сеть небольшая, студенческая). То есть так:

 - новый юзер = добавим его ip в соответствующий аддрес-лист;

 - отключим за неуплату = в адрес листе деактивируем его адрес;

 - заплатил = снова активируем адрес.

 - смена тарифа = переносим ip в другой адрес лист.

Более менее разбираюсь с Mikrotik API, поэтому сам вопрос: может ли UBilling управлять микротиком по api? Т.е.:

 - новый юзер = Ubilling добавляет его IP в соответствующий аддрес-лист на микротике по API;

 - кончились деньги на счету = с помощью API ищем юзера и деактивируем запись;

 - заплатил = так же ищем юзера и активируем запись.

 - смена тарифа = Ищем юзера и меняем ему аддрес лист.

И если UBilling это умеет, то где писать скрипты для API?

Спасибо за помощь.

Відредаговано Arey-kms
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

API умеет, про это написано в документации.

 

queue tree не умеет, только simple

 

NASом управляет Stargazer, скрипты /etc/stargazer/On*

По инструкции перенес скрипты в /etc/stargazer

Открыл скрипт OnConnect (включение пользователя, как я понимаю?) и что-то не понять где там именно обращения по API к микротик и команды этого обращения. До этого с API микротика работал на C# на самописной проге, тем все более менее понятно было. Создаешь объект микротика, логинишься и вперед что-то типа такого:

            mik.Send("/ip/firewall/address-list/add");

            mik.Send("=address="+ CurrentSecret.CallerID);

            mik.Send("=comment="+ CurrentSecret.Address);

            mik.Send("=list=BlockedSecret",true);

Відредаговано Arey-kms
Ссылка на сообщение
Поделиться на других сайтах

Изначально в stargazer было так, но в связке у ubilling'ом видимо всё как-то сложенее.

 

Посмотри ещё в /etc/stargazer/system/executer/, может яснее станет. А может кто у меный на форуме появится, подскажет.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Изначально в stargazer было так, но в связке у ubilling'ом видимо всё как-то сложенее.

То есть, получается, скрипт OnConnect выполняется при запросе клиентом авторизации, как я понял из той ссылки. А чтобы выполнить мою задачу нужно чтобы он запускался при изменении состояния клиента в биллинге на "Акивен", т.е., например, при внесении денег на счет. А скрипт OnDisconnect при переходе клиента в биллинге в состояние неактивности. Или в связке с UBilling они так и работают?

Если нет, есть ли какой-нибудь способ добраться до БД UBilling с другого устройства? Т.е., к примеру, написать программу под Win, которая будет, например, раз в час обращаться в БД UBilling и в соответствии ей вносить через API изменения на микротик. Хотя костыль жестокий, конечно.

 

PS. Можно сделать, чтобы КП был не по адресу http://abc.ab/billing/userstats, а просто http://abc.ad/

Відредаговано Arey-kms
Ссылка на сообщение
Поделиться на других сайтах
То есть, получается, скрипт OnConnect выполняется при запросе клиентом авторизации, как я понял из той ссылки

Херово поняли. Пытайтесь лучше.

 

 

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

:facepalm:

 

 

Если нет, есть ли какой-нибудь способ добраться до БД UBilling с другого устройства? Т.е., к примеру, написать программу под Win, которая будет, например, раз в час обращаться в БД UBilling и в соответствии ей вносить через API изменения на микротик. Хотя костыль жестокий, конечно.

Пиздeц у вас фантазия конечно. Даже про смирительную рубашку шутить как-то расхотелось.

 

 

PS. Можно сделать, чтобы КП был не по адресу http://abc.ab/billing/userstats, а просто http://abc.ad/

Можно.

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
Если нет, есть ли какой-нибудь способ добраться до БД UBilling с другого устройства? Т.е., к примеру, написать программу под Win, которая будет, например, раз в час обращаться в БД UBilling и в соответствии ей вносить через API изменения на микротик. Хотя костыль жестокий, конечно.

 

Зачем тогда вообще ubilling?  :)

 

PS. Можно сделать, чтобы КП был не по адресу http://abc.ab/billing/userstats, а просто http://abc.ad/

 

 

 

VirtualHost , если апач конечно.

Ссылка на сообщение
Поделиться на других сайтах
Зачем тогда вообще ubilling? :)

Ну типа... иконки-менюшки красивые, очевидно.

 

 

VirtualHost , если апач конечно.

Т-с-с-с не палите контору, пересрете ж все веселье ;)

 

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

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

 

Зачем тогда вообще ubilling? :)

Ну типа... иконки-менюшки красивые, очевидно.

 

 

VirtualHost , если апач конечно.

Т-с-с-с не палите контору, пересрете ж все веселье ;)

 

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

 

Собственно поэтому и спрашиваю, что не ясно.

Вся сеть держится на микротиках, вся маршрутизация, авторизация, шейпер и т.д. RouterOS я знаю хорошо, а с FreeBSD до этого не сталкивался, да и с чистым линуткос довольно поверхностно, а сейчас пришлось. Или я не так понимаю, зачем нужны форумы?

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

 

 

PS. Можно сделать, чтобы КП был не по адресу http://abc.ab/billing/userstats, а просто http://abc.ad/

это как раз проще всего, переносишь userstats папку со всем содержимым куда хочешь, в соответствующем файле index.php делаешь перенаправление, для примера как здесь:

http://wiki.ubilling.net.ua/doku.php?id=debtredir

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

То, что я описал в первом сообщении может быть организованно разработчиками биллинга индивидуально за денежку? И сколько примерно будет по цене?

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

Рылся по /billing/docs и нашел 2 пути до пресетов микротика /dosc/presets/MikroTik и /dosc/mikrotik/presets/stargazer. И там, и там есть скрипты On*. В документации сказано, что нужно кипировать в старгазер скрипты из /dosc/presets/MikroTik, а что делают скрипты из второго расположения? Это остались хвосты со времен управления через ssh или как?

Спасибо за разъяснения.

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

Примерно составил техническое задание (за оплату, само собой).

Скрипты, управляющие NAS на Mikrotik v6.23.3 должны делать следующее.

<IP> - IP-адрес клиента из UBilling

<LOGIN> - логин клиента из UBilling

<TARIF> - тариф клиента из UBilling

<NEW_TARIF> - новый тариф клиента из UBilling (при изменении).

Списание АП - ежедневное, но не SpreadFee (просто списывается каждый день фиксированная сумма)

 

1. При добавлении нового клиента

В адрес-лист тарифа добавляется новая запись с IP клиента

В виде команды:

/ip firewall address-list add address=<IP> list=<TARIF> comment=<LOGIN>

 

2. При удалении клиента

Из соответствующего адрес листа удаляется соотвтетсвующий IP.

/ip firewall address-list remove [find address=<IP>]

 

3. При включении клиента (т.е. когда у него, к примеру, была задолжность и он ее погасил), как я понимаю, это OnConnect (?).

Просто включается соответствующий IP в адрес-листах.

/ip firewall address-list enable [find address=<IP>]

 

4. При отключении клиента (деньги кончились)

Выключается соответсвующий IP

/ip firewall address-list disable [find address=<IP>]

 

5. При смене тарифа (если такой вообще есть)

Меняется адрес-лист, в который входит IP

/ip firewall address-list set [find address=<IP>] list=<NEW_TARIF>

 

6. Инструкция, как куда и что кидать, заменять и настраивать, чтоб работало.

 

Вот как-то так.

Сколько будет ориентировочно стоить выполнение всех пунктов? Сколько будет стоить выполнение только пунктов 3, 4 и 6? И возьметесь ли вообще за такое?

 

Спасибо за ответ.

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від nightfly
      Ubilling 1.5.2 rev 9302 Book of Endings
       
      Зміни в структурі БД. alter.ini: нова опція FASTPROFITCALC_ENABLED, що вмикає швидкий підрахунок прибутку. alter.ini: нова необов'язкова опція KARMA_IN_PROFILE що вмикає показ карми в профілі користувача. alter.ini: нова опція SWITCHES_AUTH_ENABLED, що вмикає довідник даних авторизації пристроїв. alter.ini: нова опція PON_SCRIPTS_ENABLED, що вмикає підтримку скриптів OLT в ПОНізаторі. alter.ini: нова опція PON_ONU_FDB_SELFFILTER, що вмикає фільтр MAC-ів при відображенні FDB за ONU. alter.ini: нова опція USERBYIP_ENABLED, що вмикає виклик userbyip в RemoteAPI. alter.ini: пачка нових опцій PB_FASTURL_*, що керують поведінкою модулю відсилання коротких посилань на оплату. Модуль PONizer: виправлена помилка зникнення PON інтерфейсів при опиті BDCOM GP3600 Модуль “Профіль користувача”: для опису плагінів профілю та оверлеїв на кшталт “чорної магії” тепер опційно можливо вказувати link_target. Модуль “Панель задач”: для опису елементів панелі задач, тепер опційно можна вказувати LINK_TARGET. Модуль Записи телефонних розмов: вирішено проблеми швидкодії, при перегляді списку записів дзвінків. Модуль “Записи телефонних розмов”: більше не призводить до вичерпання пам'яті процесу, при перегляді великих архівів дзвінків. Модуль “Записи телефонних розмов”: новий аудіо-плеєр для прослуховування записів з візуалізацією аудіо-хвилі. Модуль “Пошук оплат”: реалізовано можливість швиденького підрахунку прибутку по обраних чекбоксами платежах. Модуль УКВ: реалізовано можливість швиденького підрахунку прибутку по обраних чекбоксами платежах. Модулі Мапа обладнання та користувачів: трішки вичищено код. Ліпше не стало. Модуль “Мапа будинків”: поле пошуку при розташуванні будинку, тепер попередньо заповнено локацією, при переході за посиланням “розташувати на мапі”. Модуль “Панель задач”: опція TB_QUICKSEARCH_INLINE змінила свою поведінку, та може тепер приймати значення 0|1|2. Модуль “Звіт по трафіку”: виправлено проблему відображення графіків OphanimFlow для NAS на роздільних здатностях менше ніж FullHD. Кабінет користувача: в модулі “Відеоспостереження” відображення попереднього перегляду каналів користувача, стало трішки притомнішим. Сховище зображень: трішки покращено поведінку форми завантаження. RemoteAPI: новий виклик onusigcompressor, що радикально стискає розпухаючі дані історії сигналів ONU. RemoteAPI: новий виклик pbxmonrefill, що оновлює кеш записів телефонних розмов. RemoteAPI: новий виклик userbyip, що повертає дані про користувача за його IP. OpenPayz: в бекенді та фронтенді platon виправлено проблему диких заокруглень, при вказанні зовнішньої комісії.  
      Повний чейнджлог
      Оновлена демка
       

    • Від ppv
      Після оновлення до 1.5.1 не відображаються сигнали на
      OLT BDCOM P3310B (Device version10.1.0B)

      та
      P3608-2TE (Firmware Version10.1.0E). 

      3310C та P3608B ніяких проблем немає, знімає все добре. 
      З GPON3600-8 все зрозуміло будуть виправлення в Ubilling: 1.5.2.
       
      Може в когось було щось подібне? Хочу знати куди копати.
    • Від GMelик
      Вітання! Наперед вибачаюсь з тупі питання! Але мені потрібна допомога з вирішенням проблеми роботи wifi. Загалом ситуація наступна: є офіс куди заведений інтернет, роль маршрутизатора виконує Mikrotik hap ac2 з вимкненими wifi інтерфейсами до якого через кабель підключено кілька пк підмережа та до нього ж підключена точка доступу Mikrotik cAP ax (з своїм dhcp) до якої і підключається більшість ноутбуків/телефонів та інших пристроїв з підтримкою wifi. Проблема наступна: регулярно відбуваються збої в роботі інтернету на пристроях які підключені до точки доступу, інколи просто вилітає віддалений робочий стіл (підключений через vpn), а інколи техніка переключається з 5г мережі на 2г. Спроби пінгувати точку показують що є регулярні стрибки пінга від 1-2 мс до 400-500-600+ мс (міряв як через cmd так і pingplotter) на різних пк, через netmonitor видно що стрибає якість сигналу від 40 до 70-80 і назад, при тому що телефон не переміщається і знаходиться за 2-3м від точки. 



      Спочатку думав на налаштування точки - перепробував різні частоти, нічого не змінилось. Переміщав точку в різні місця - результату 0. Вмикав wifi інтерфейс на прихідному тіку, картина та ж що і на точці. 
      І на 2г і на 5г ситуація плюс мінус однакова. 

      Допоможіть зрозуміти, що може спричиняти такі збої та головне як з цим боротись?
    • Від Люкс Мобил
      Нові з гарантією 12 міс
      Маршрутизатор MikroTik CCR2004-1G-12S+2XS
      Комутатор керований рівня 3 Mikrotik CRS518-16XS-2XQ-RM
      Комутатор MikroTik CRS326-24S+2Q+RM (24xSFP+, 2xQSFP+, USB, 1хRJ45)
      Комутатор MikroTik CRS312-4C+8XG-RM (8xGE PoE, 4xCombo, USB, 1хRJ45)
      Комутатор MikroTik CRS504-4XQ-IN
      Комутатор керований MikroTik CRS510-8XS-2XQ-IN
       
      0674400029 Роман (viber, telegram)
    • Від GekaPeka
      mikrotik RB 40111GS+RM новый, 7500 грн.
×
×
  • Створити нове...