Jump to content

UBilling + NAS Mikrotik по API


Recommended Posts

Добрый день!

С недавних пор в сети стал необходим биллинг. Нашел 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?

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

Edited by Arey-kms
Link to post
Share on other sites

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);

Edited by Arey-kms
Link to post
Share on other sites

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

 

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

Link to post
Share on other sites

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

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

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

 

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

Edited by Arey-kms
Link to post
Share on other sites
То есть, получается, скрипт OnConnect выполняется при запросе клиентом авторизации, как я понял из той ссылки

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

 

 

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

:facepalm:

 

 

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

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

 

 

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

Можно.

Edited by nightfly
Link to post
Share on other sites
Если нет, есть ли какой-нибудь способ добраться до БД UBilling с другого устройства? Т.е., к примеру, написать программу под Win, которая будет, например, раз в час обращаться в БД UBilling и в соответствии ей вносить через API изменения на микротик. Хотя костыль жестокий, конечно.

 

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

 

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

 

 

 

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

Link to post
Share on other sites
Зачем тогда вообще ubilling? :)

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

 

 

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

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

 

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

Edited by nightfly
Link to post
Share on other sites

 

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

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

 

 

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

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

 

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

 

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

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

Link to post
Share on other sites

 

 

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

Скрипты, управляющие 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? И возьметесь ли вообще за такое?

 

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By ProstoName
      Змінювали мережеву карту. Здається все поправив. Працює. Але є невелика проблема - після внесення коштів (коли абонент був відключений), інет в нього не з'являється. Тільки після заміни тарифу на інший (і потім вернувши тариф) в абонента з'являється інет. 
    • By ppv
      Собака-посилака перестала відправляти повідомлення. Підкажіть де шукати.
      Можливо таке після пропадання світла, сервер ребутнувся, але я не впевнений. Візуально все працює, крон працює, а повідомлення висять в черзі, смс така ж картина.

    • By ГрозаИнтернета
      Всем привет. Сеть разбили, продаю оборудование, которое удалось спасти.
      Роутер MikroTik 1036-12G-4S - 16500 грн.
      Сервер Dell R410(Xeon L5640(60Вт), 16 Gb RAM, 2x300 Gb SAS, iDrac, Raid, IPMI) - 4500 грн.
      Коммутатор ZyXEL MES-3528 - 2000 грн.
      Коммутатор HUAWEI S2326 - 1500 грн.
      Коммутатор Dell PowerConnect 6224F(опц.10G) - 5000 грн
      Коммутатор D-Link DGS-3627G (нюанс) - 1000 грн
      OLT BDCom P3310(Пролайн упс) - 9000 грн
      Упс APCSmart-UPS RT 2000 + картаAP9619 + кабель для подключения внешних АКБ - 12500 грн.
      Коммутатор ELTEX MES2324FB AC в коробке - 10000
      OLT EPON E9004-D 10G (Пролайн упс) в коробке - 10000
      Кабель OK-NET S/FTP Cat.6a 500Mhz LSOH AWG 23 4pr 280 метров - 8500
      Куча SFP EPON C+++, SFP SC, сетевые карты, твинакс кабеля.

    • By Інет.укр
      Продам mikrotik rb2011 червоний 1200грн
      MikroTik RB2011UiAS  1400грн
      MikroTik RB3011 новий $85
      MikroTik RB4011iGS+RM  новий 170$ 
      MikroTik RB750UP - 550грн
      MikroTik  RB750P-PB - 800грн
      MikroTik RB960PGS-PB PowerBox Pro  Новий 80$
      RB433, RB600, RB800 ціна договірна.
       
    • By Інет.укр
      Продам CRS226-24g-2s+RM б.у 3500грн
      CRS326-24g-2s+IN новий 148$
      CRS212-1g-10s-1s+in  б.у 99$
      CRS305-1g-4s+in б.у $100
       
×
×
  • Create New...