Интеграция биллинга с Mikrotik. Подробная статья.

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (48)

просмотр истории страницы
{toc:maxLevel=2}

h1. Установка Carbon Billing 5

- *Telnet_ip.* IP-адрес для отправки команд. По этому адресу будут отправляться команды биллингом.
- *Telnet_type.* Тип подключения для отправки команд ssh/telnet.
{note}В стандартном скрипте управления используется отправка команд по *ssh*. Так же загрузка схемы на микротик осуществляется по *ssh*. Обращение производится по стандартному *порту 22*.{note}
- *IP-адрес радиус сервера.* Здесь нужно указать пул billing_ip, который был настроен в предыдущем пункте.
- *IP-адрес кабинета.* Здесь нужно указать пул cabinet_ip, который был настроен в предыдущем пункте.
Во вкладке "Управление" будет происходить весь процесс от инициализации до загрузки конфигурации на оборудование. В разделе "Каталог управления этим экземпляром оборудования" нажимаем кнопку "Сохранить".

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:screenshot_9.png?700|}}
!screenshot_9.png|border=1!


На этом шаге будет создан каталог, который указан в примере. В данном случае это каталог /var/oss/core/Mikrotik, именно в нём будет содержаться вся основная информация по текущему NAS'у. Данный каталог будет создан в контейнере /app/asr_billing/

*Шаг 1. Инициализация.*

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:screenshot_10.png?700|}}

*1.1* <mark>rtsh cfg init mikrotik_simple v1</mark> - инициализировать каталог управления /var/oss/core/Mikrotik. Этим действием мы создаем структуру каталогов и файлов внутри каталога /var/oss/core/Mikrotik
!screenshot_10.png|border=1!


*1.1* *rtsh cfg init mikrotik_simple v1* - инициализировать каталог управления /var/oss/core/Mikrotik. Этим действием мы создаем структуру каталогов и файлов внутри каталога /var/oss/core/Mikrotik

Среди созданных файлов будут шаблоны, на основании которых будет генерироваться схема и ini файлы, в которых будет хранится информация, которую мы добавляли на основной вкладке оборудования. После шага 1.1 файлы создаются со значением по умолчанию.

*1.2* <mark>rtsh *rtsh cfg fill 192.168.248.1</mark> 192.168.248.1* - заполнить ini файлы данными из биллинга. В этом шаге биллинг заменяет значение переменных из ini файлов значением из информации о NAS'e. Например, в файле main.ini идет замена nas_ip="192.168.0.10" (значение по умолчанию) на nas_ip="192.168.248.1"(значение, взятое из настроек NAS'а).

*1.3* <mark>rtsh *rtsh cfg save</mark> save* - сохранить сгенерированные файлы в историю. Этот шаг сохраняет те изменения, которые были сделаны на шаге 1.2.

\\
*Шаг 2. Сохранение текущей конфигурации.*

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:rtsh2_1.png?nolink&801x195}}
!rtsh2_1.png|border=1!

*2.1* <mark>rtsh cfg download</mark> - загрузить конфигурационные файлы с оборудования в каталог /var/oss/core/Mikrotik/cur. Этот шаг своего рода бэкап со стороны биллинга Вашей текущей конфигурации.

*2.2* <mark>rtsh cfg save</mark> - сохранить скаченную конфигурацию в историю.
*2.1* *rtsh cfg download* - загрузить конфигурационные файлы с оборудования в каталог /var/oss/core/Mikrotik/cur. Этот шаг своего рода бэкап со стороны биллинга Вашей текущей конфигурации.

*2.2* *rtsh cfg save* - сохранить скаченную конфигурацию в историю.

\\
*Шаг 3. Подготовка конфигурации.*

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:rtsh3_1.png?nolink&878x242}}
!rtsh3_1.png|border=1!

*3.1* <mark>rtsh cfg make</mark> - сгенерировать файлы конфигурации из ini-файлов и шаблонов в каталог /var/oss/core/Mikrotik/upload. Этот шаг проводит генерацию конфигурации, которая будет загружена на оборудование. Генерация проходит на основании шаблонов, в которые добавляются переменные из ini файлов. Посмотреть шаблоны можно в /var/oss/core/Mikrotik/tmplt/ а ini файлы в /var/oss/core/Mikrotik/

*3.2* <mark>rtsh cfg upload show</mark> - вывести все сгенерированные конфигурации. Этот шаг выведет весь конфигурационный файл на экран.
*3.1* *rtsh cfg make* - сгенерировать файлы конфигурации из ini-файлов и шаблонов в каталог /var/oss/core/Mikrotik/upload. Этот шаг проводит генерацию конфигурации, которая будет загружена на оборудование. Генерация проходит на основании шаблонов, в которые добавляются переменные из ini файлов. Посмотреть шаблоны можно в /var/oss/core/Mikrotik/tmplt/ а ini файлы в /var/oss/core/Mikrotik/

*3.3* <mark>rtsh cfg save</mark> сохранить сгенерированные конфигурации в историю.
*3.2* *rtsh cfg upload show* - вывести все сгенерированные конфигурации. Этот шаг выведет весь конфигурационный файл на экран.

*3.3* *rtsh cfg save* сохранить сгенерированные конфигурации в историю.

\\
*Шаг 4. Загрузка конфигурации.*

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:rtsh4_1.png?nolink&706x136}}

*4.1* <mark>rtsh cfg upload</mark> - загрузить сгенерированные конфигурационные файлы в оборудование. На этом шаге идет загрузка конфигурации на оборудование по тем реквизитам, которые указаны в NAS'e и ini файлах. Если загрузка идет через ssh - обязательно проведите предварительное подключение с биллинга до NAS по ssh, перейдя в chroot /app/asr_billing/. Для этого выполните следующие команды с биллинга:
!rtsh4_1.png|border=1!


*4.1* *rtsh cfg upload* - загрузить сгенерированные конфигурационные файлы в оборудование. На этом шаге идет загрузка конфигурации на оборудование по тем реквизитам, которые указаны в NAS'e и ini файлах. Если загрузка идет через ssh - обязательно проведите предварительное подключение с биллинга до NAS по ssh, перейдя в chroot /app/asr_billing/. Для этого выполните следующие команды с биллинга:

{code}
chroot /app/asr_billing/
В качестве примера создадим простой тариф с предоплатной системой и методом списания "Ежемесячно, равными долями в день" стоимостью 100 рублей в месяц.

Для этого переходим на вкладку "Управление абонентами и тарифами - тарификация - тарифы" и нажимаем кнопку "Мастер". {{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:tarif1.png?nolink&629x214}}
!tarif1.png|border=1!


Опция "Мастер" используется для создания простых тарифов и исключает в момент создания все опции кроме основных.

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:tarif2.png?nolink&852x494}}

В открывшемся окне прописываем название тарифа и выбираем метод списания "Ежемесячно, равными долями в день", нажимаем "Далее" и переходим в настройку услуги. {{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:tarif3.png?nolink&1597x364}}
!tarif2.png|border=1!


В открывшемся окне прописываем название тарифа и выбираем метод списания "Ежемесячно, равными долями в день", нажимаем "Далее" и переходим в настройку услуги.
!tarif3.png|border=1!


В Carbon Billing 5 тариф представляет собой набор определенных услуг и при создании тарифа с помощью мастера, услуга будет создана в этом же процессе. Выбираем название, скорость и стоимость услуги, нажимаем "Далее" и "Сохранить".

Ключевые параметры здесь "Название/ФИО", "Тариф" и "Номер договора". После заполнения информации нажимаем кнопку "Далее".

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:abonent2.png?nolink&782x749}}\\

!abonent2.png|border=1!


*Шаг 2. Вводим реквизиты абонента.*

Укажем тип авторизации "По ip static", назначим IPv4-адрес из подсети локального интерфейса Mikrotik'а нажав на кнопку рядом с полем (биллинг выберет свободный адрес автоматически), например 192.168.248.5 и выберем в качестве NAS'а Mikrotik. После нажатия кнопок "Далее" и "Готово", будет создан абонент.

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:abonent3.png?nolink&800x520}}

!abonent3.png|border=1!


*В момент создания абонента на Mikrotik уйдут команды из функций:*

{code}

В crb_negbal_list абонент находится, так как при добавлении абонента у него нет на счёте недостаточно средств для активации услуги, которая стоит 100 рублей. При этом у абонента будет соответствующий статус в биллинге.

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:abonent4.png?nolink&794x786}}

!abonent4.png|border=1!


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

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:prihod1.png?nolink&478x214}}

После чего добавить сумму, необходимую для активации услуги. В данном случае хватит 100 рублей. {{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:prihod2.png?nolink&786x464}}
!prihod1.png|border=1!


После чего добавить сумму, необходимую для активации услуги. В данном случае хватит 100 рублей.
!prihod2.png|border=1!


После обработки платежа биллинг отправит на Mikrotik команды:
- user_redirect_cancel. Эта команда уберет ip адрес абонента из адрес листа crb_negbal_list.
* [[http://docs.carbonsoft.ru/display/CarbonBilling/DHCP|http://docs.carbonsoft.ru/display/CarbonBilling/DHCP]]
* [[http://docs.carbonsoft.ru/pages/viewpage.action?pageId=52428856|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=52428856]]

h1.Решение проблем

h6.Замечания по API
Команды на добавление очереди, а также работы с адрес листами crb_negbal_list, crb_block_list в стандартной схеме отправляются по API.
Соответсвенно API в микротике должен быть включен и доступен с биллинга.
Для проверки отправки команд по API можно использовать команду: {code}chroot /app/asr_billing send_mikrotik_cmd mikrotik_IP mikrotik_login mikrotik_password /ip firewall address-list add list=crb_negbal_list address=10.20.30.40/32 comment=10.20.30.40/32_crb_negbal{code}

{note}
Для отправки команд на mikrotik по API используется стандартный TCP порт 8728.
{note}

h6.Медленная отправка команд
При работе схемы вызываются события на удаление записей из адрес листов. Например отмена перенаправления:

{code}user_redirect_cancel(){
while send_mikrotik_cmd -s "$nas_ip" "$telnet_login" "$telnet_password" /ip firewall address-list remove numbers=${ip}_crb_negbal; do :; done
}
{code}

При этом при большом количестве событий в адрес листе наблюдается медленная обработка команды. Это связано с тем, что микротик проводит поиск по всем записям адрес листа. При отправке одиночной команды задержку не заметно, но при массовой авторизации абонентов отправка всех команд может занять значительное время. Для решения проблемы необходимо уменьшить количестов записей в адрес листе микротика. Рекомендуемое значение: менее *10000* записей.