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

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

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

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

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

Установка Carbon Billing 5 проводится с помощью iso или img образа (для установки с флешки), который необходимо скачать по ссылке \[[https://www.carbonsoft.ru/download/|https://www.carbonsoft.ru/download/]\]. [ссылке|https://www.carbonsoft.ru/download/]. Так как в качестве NAS'а используется Mikrotik, выбираем Carbon Billing OSS/BSS 5.

Подробный процесс установки биллинга описан в документации \[[http://docs.carbonsoft.ru/pages/viewpage.action?pageId=65799386|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=65799386]\]. [документации|CarbonBilling:Установка Carbon Billing 5].

h1.Первичная настройка сети биллинга и микротика 
В данном случае можно увидеть, что есть только 1 сетевой интерфейс eth0, который и необходимо настроить для связки Carbon Billing 5 - Mikrotik. Для настройки будем использовать конфигурационный файл, который необходимо открыть любым текстовым редактором. В качестве примере используется текстовый редактор vim.

Открываем конфигурационный файл {mark}/etc/sysconfig/network-scripts/ifcfg-eth0{mark}. */etc/sysconfig/network-scripts/ifcfg-eth0*. В случае, если сетевой интерфейс будет назван eth1, путь останется прежним, изменится только последний файл, то есть <mark>/etc/sysconfig/network-scripts/ifcfg-eth1</mark>. */etc/sysconfig/network-scripts/ifcfg-eth1*.
<code> {code}
vim /etc/sysconfig/network-scripts/ifcfg-eth0
</code> {code}

В открывшемся окне появится примерно следующее содержание:
<code> {code}
DEVICE=eth0
HWADDR=52:54:00:e0:13:3a
PEERDNS=no
IPV6INIT=no
</code> {code}

С помощью текстового редактора добавим сюда следующие строки:
<code> {code}
IPADDR=192.168.248.2
NETMASK=255.255.255.0
GATEWAY=192.168.248.1
</code> {code}

Обратите внимание, что по умолчанию в поле ONBOOT стоит значение <mark>no</mark>. Это значение отвечает за то, будет ли запускаться этот интерфейс при перезагрузке сервера. В данном случае необходимо изменить его на значение <mark>yes</mark>. *yes*.

После всех изменений конфигурационный файл должен выглядеть следующим образом:
<code> {code}
DEVICE=eth0
HWADDR=52:54:00:e0:13:3a
PEERDNS=no
IPV6INIT=no
</code> {code}

**Примечание.** *Примечание.* В текстовом редакторе vim для того, чтобы внести изменения необходимо нажать клавишу i, таким образом Вы перейдете в режим "Вставка".

После того, как Вы внесли все необходимые изменения, необходимо нажать клавишу ESC, этой клавишей Вы отмените режим "Вставка". Для сохранения файла и выхода необходимо нажать клавиши :wq! и нажать enter.

После внесения изменения в конфигурационный файл их необходимо применить. Для этого выполните следующие команды:
<code> {code}
ifdown eth0; ifup eth0
</code> {code}

Если всё выполнено верно, то после этих изменений IP-адрес 192.168.248.2 будет добавлен на интерфейс eth0. Проверим это той же командой:
<code> {code}
ip a | grep eth
</code> {code}

В выводе теперь будет информация с этим IP-адресом:
<code> {code}
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:e0:13:3a brd ff:ff:ff:ff:ff:ff
inet 192.168.248.2/24 brd 192.168.248.255 scope global eth0
link/ether 42:41:23:7d:e4:12 brd ff:ff:ff:ff:ff:ff
</code> {code}

Теперь проверим, что Mikrotik доступен с биллинга:
<code> {code}
ping 192.168.248.1
PING 192.168.248.1 (192.168.248.1) 56(84) bytes of data.
64 bytes from 192.168.248.1: icmp_seq=1 ttl=64 time=0.359 ms
64 bytes from 192.168.248.1: icmp_seq=2 ttl=64 time=0.306 ms
</code> {code}

**Шаг 5**
*Шаг 5*

Настройка доступа к интернету со стороны биллинга. Если для биллинга у Вас выделен белый адрес, скорее всего доступ в интернет у биллинга уже есть. Проверить это можно следующей командой на стороне биллинга:
<code> {code}
ping 8.8.8.8
</code> {code}

Ответ:
<code> {code}
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=41.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=46 time=41.5 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=46 time=41.3 ms
</code> {code}

Если же адрес для биллинга выделен из серой подсети, как в данном примере, то на Mirkotik'е необходимо добавить правило маскарада для адреса биллинга. Для этого на Mirkotik'е вводим следующие команды:
<code> {code}
/ip firewall nat add action=masquerade chain=srcnat dst-address=!10.0.0.0/8 src-address=192.168.248.2
</code> {code}

Данное правило для всех запросов с адреса 192.168.248.2 (адрес биллинга) на любой адрес не из сети 10.0.0.0/8 (пример серой подсети) будет выполнять маскарад, то есть отправлять пакет через внешний интерфейс, на котором указан адрес для маршрута по умолчанию, то есть через ether1 и подменит src address.

В примере указано исключение только для одной серой сети 10.0.0.0/8. Если необходимо добавить исключение для всех серый подсетей, укажите их в отдельных правилах:
<code> {code}
/ip firewall nat add action=masquerade chain=srcnat dst-address=!172.16.0.0/12 src-address=192.168.248.2
/ip firewall nat add action=masquerade chain=srcnat dst-address=!192.168.0.0/16 src-address=192.168.248.2
</code> {code}

После добавления правил маскарада на Mirkotik'е, необходимо проверить на стороне биллинга наличие доступа в интернет с помощью команды <mark>ping 8.8.8.8</mark>. Биллингу необходим доступ в интернет для активации и регистрации продукта.

===== Регистрация и активация биллинга =====
h1. Регистрация и активация биллинга

Для того, чтобы зайти в веб-интерфейс биллинга перейдите по адресу <mark>'IP-адрес биллинга':8080</mark> *'IP-адрес биллинга':8080* в браузере. В нашем случае переходим по адресу [[http://192.168.248.2:8080/|http://192.168.248.2:8080/]]. Для авторизации используем реквизиты по умолчанию:

Логин: root\\
После авторизации Вы будете автоматически перенаправлены на страницу, где расположена платформа продукта.

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

!base.png|border=1!


Для начала работы с биллингом необходимо зарегистрировать продукт. Нажимаем на кнопку "Регистрация" и заполняем данные. После этого будет доступен 60-дневный бесплатный период с полностью функциональностью биллинговой системы.


===== Описание стандартной схемы взаимодействия ​=====
h1. Описание стандартной схемы взаимодействия ​

В биллинге Carbon Billing 5 существует несколько стандартных схем для разного сетевого оборудования (Mikrotik, Cisco, Redback). Для оборудования Mikrotik так же существует несколько типовых схем интеграции.
- При добавлении абонента в биллинг, на стороне биллинга вызывается определённое событие, которое описано в скрипте отправки команд, после вызова которого на оборудование уходит команда по добавлению определённого IP-адреса в нужный адрес-лист, которому разрешен доступ в интернет. Помимо этого, будет отправлена команда на добавление шейпера исходя из тарифного плана абонента. Более подробно схема описана ниже.

===== Описание логики авторизации абонентов =====
h1. Описание логики авторизации абонентов

**Общая логика авторизации абонента с помощью IPoE.**
h6.Общая логика авторизации абонента с помощью IPoE.
- Абонент получает IP-адрес по DHCP, либо прописывает адрес статически.
- Если данный IP-адрес находится в разрешающем адрес-листе на Mikrotik'e - доступ в интернет есть.
На случай, если в какой-то момент времени Mikrotik по какой-то причине был недоступен с биллинга, на биллинге имеется скрипт синхронизации, который запускается раз в час и проверяет совпадение состояния абонентов на биллинге и на Mikrotik'е и в случае, если он находит различия - отправляет команды на оборудование.

**Общая логика авторизации абонента с помощью PPPoE.**
h6.Общая логика авторизации абонента с помощью PPPoE.
- Абонент отправляет запрос в широковещательный сегмент на авторизацию PPPoE для обнаружения PPPoE концентратора. На стороне абонента это выглядит как ввод логина/пароля при установке соединения (PADI).
- Mikrotik отвечает на этот запрос, подставляя свой MAC-адрес в ответ, тем самым говоря абоненту, что Mikrotik является PPPoE концентратором (PADO).
В стандартной схеме предусмотрена отправка NetFlow пакетов на Collector биллинга. По умолчанию он работает через порт 9996. При получении NetFlow информации от Mikrotik'а, биллинг агрегирует её и добавляет информацию в базу данных биллинга. Далее, эту информацию можно просматривать через веб-интерфейс и использовать в отчётах.

===== Подготовка биллинга к интеграции с оборудованием =====
h1. Подготовка биллинга к интеграции с оборудованием

После установки биллинга, на нем будет развёрнута стандартная база данных с тестовыми абонентами и тарифами для ознакомления с продуктом. В базе данных будет примерно 50 абонентов и около 10 тарифов.

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:before_delete.png?nolink&240x371}}

!before_delete.png|border=1!


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

==== Очистка базы данных ====
**Шаг 1.**
h1. Очистка базы данных
*Шаг 1.*

Заходим в веб-интерфейс биллинга по адресу 'ip адрес биллинга':8080 и вводим логин/пароль.

**Шаг 2.**
*Шаг 2.*

Переходим на вкладку "Управление абонентами и тарифами". В этой вкладке находится база данных биллинга.

**Шаг 3.**
*Шаг 3.*

Переходим на вкладку "Настройки - Очистка базы данных".

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

**Шаг 4.**
!delete1.png|border=1!


*Шаг 4.*

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

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:after_delete.png?nolink&232x129}}

!after_delete.png|border=1!


То, что не удалилось при очистке БД удалять вручную не нужно - все эти данные необходимы биллингу.

**Шаг 5.**
*Шаг 5.*

Перед интеграцией в пустой базе данных необходимо настроить два пула IP-адресов в биллинге. Эти пулы будут использоваться при генерации схемы. Переходим во вкладку "Управление абонентами и тарифами - Справочники - Пулы IP-адресов" и выбираем пул "cabinet_ip".

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

!pool.png|border=1!


В открывшемся окне в поле "начальный адрес" необходимо указать IP-адрес биллинга, который находится на интерфейсе, подключенном к Mikrotik'у, и нажать сохранить. Этот адрес будет использоваться на Mikrotik'e как адрес для редиректа абонентов с отрицательным балансом и блокировкой.

Тоже самое делаем для пула "billing_ip". Далее этот адрес будет использоваться в качестве RADIUS сервера на Mikrotik'e и в качестве DST для NetFlow пакетов.

===== Добавление NAS'а в биллинг =====
h1. Добавление NAS'а в биллинг

**Шаг 1.**
*Шаг 1.*

Заходим в веб-интерфейс по адресу 'ip адрес биллинг':8080.

**Шаг 2.**
*Шаг 2.*

Переходим на вкладку "Управление абонентами и тарифами - Оборудование - NAS". Нажимаем кнопку "Добавить".

{{:проект_биллинг5:маркетинг:статьи_и_рассылки:mikrotik_billing:nas1.png?nolink&714x250}}\\
**Шаг 3.**

!nas1.png|border=1!

*Шаг 3.*

После этих действий открывается окно с настройками NAS'а.

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

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



!nas3.png|border=1!


Ключевые параметры NAS'а, которые обязательно необходимо заполнить при интеграции Mikrotik по схеме Mikrotik-Simple:
- **Название.** *Название.* Без названия биллинг не позволит добавить NAS. Подойдет любое название без спецсимволов. В нашем примере указан "Mikrotik".
- **IP-адрес.** *IP-адрес.* Адрес из этого поля будет добавлен в конфигурацию RADIUS Client и на запросы, которые приходят на RADIUS с этого адреса RADIUS Server сможет ответить. Если запросы будут приходить на биллинг с адресов, которые не указаны ни на одном NAS'e, ответ от биллинга будет Reject.
- **Стандартная схема OSS.** От этого поля зависит, как именно биллинг будет генерировать схему. Здесь выбираем "Mikrotik-Simple".
- **Radius_secret.** *Radius_secret.* Это общий пароль для всех RADIUS авторизаций между биллингом и Mikrotik'ом. Пароль попадёт в шаблон и от туда в схему. Использование спецсимволов в этом поле не рекомендуется.
- **Coa_port.** *Coa_port.* Порт для управления через radclient. По умолчанию 3799. Менять не рекомендуется.
- **Coa_psw.** *Coa_psw.* Пароль для radclient. На mikrotik'e в качестве coa_psw используется radius_secret, поэтому здесь указывать ничего не нужно.
- **Telnet_login.** *Telnet_login.* Логин для управления оборудованием.
- **Telnet_password.** *Telnet_password.* Пароль для управления оборудованием. Спецсимволы запрещены.
- **Telnet_port.** *Telnet_port.* Порт для управления оборудованием.
- **Telnet_ip.** *Telnet_ip.* IP-адрес для отправки команд. По этому адресу будут отправляться команды биллингом.
- **Telnet_type.** *Telnet_type.* Тип подключения для отправки команд ssh/telnet.
{note}
В стандартном скрипте управления используется отправка команд по *ssh*. Так же загрузка схемы на микротик осуществляется по *ssh*.
{note}
- **IP-адрес радиус сервера.** Здесь нужно указать пул billing_ip, который был настроен в предыдущем пункте.
- **IP-адрес кабинета.** Здесь нужно указать пул cabinet_ip, который был настроен в предыдущем пункте.
- **Не посылать user_disconnect при получении Radius Stop.** Важная опция! Обязательно нужно включить. Она запрещает отправку user_disconnect при получении accounting_stop пакета.
- **Список интерфейсов, на которых будет поднят PPPoE сервер.** В случае, если Вам необходимо схема с поддержкой авторизации PPPoE. Эти интерфейсы будут добавлены в шаблон, по которому будет генерироваться конфигурация.

После заполнения этих полей необходимо нажать кнопку "Сохранить", дождаться сохранения и перейти во вкладку "Управление".

===== h1. Генерация и загрузка схемы на Mikrotik =====

Во вкладке "Управление" будет происходить весь процесс от инициализации до загрузки конфигурации на оборудование. В разделе "Каталог управления этим экземпляром оборудования" нажимаем кнопку "Сохранить".

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


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

Далее выполняем следующие действия по шагам:

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

\\
**Шаг 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. Подготовка конфигурации.**
*Шаг 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. Загрузка конфигурации.**
*Шаг 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!

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

{code}
chroot /app/asr_billing/
ssh admin@192.168.248.1
</code> {code}

Это данные из примера. Этим действием Вы убедитесь, что между биллингом и Mikrotik'ом есть доступ и подтвердите прием ssh ключей.


===== Добавление абонента в биллинг =====
h1.Добавление абонента в биллинг

После того, как NAS добавлен в биллинг и конфигурация успешно загружена на Mikrotik, можно приступать к добавлению абонентов в биллинг.
В качестве примера создадим простой тариф с предоплатной системой и методом списания "Ежемесячно, равными долями в день" стоимостью 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 тариф представляет собой набор определенных услуг и при создании тарифа с помощью мастера, услуга будет создана в этом же процессе. Выбираем название, скорость и стоимость услуги, нажимаем "Далее" и "Сохранить".

Теперь, когда у нас есть тариф, можно переходить к созданию нового абонента. Для этого перейдем во вкладку "Управление абонентами и тарифами - Абонент" и используем кнопку "+Абонент". Откроется мастер создания абонента, состоящий из 3 шагов:

**Шаг 1. Заполняем основную информацию по абоненту.**
*Шаг 1. Заполняем основную информацию по абоненту.*

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

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

**Шаг 2. Вводим реквизиты абонента.**
!abonent2.png|border=1!


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

Здесь нет ни одного обязательно поля, они все нужны для дополнительной информации об абоненте. После заполнения информации нажимаем кнопку "Далее".

**Шаг 3. Сетевые реквизиты абонента.**
*Шаг 3. Сетевые реквизиты абонента.*

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

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

**В момент создания абонента на Mikrotik уйдут команды из функций:**
!abonent3.png|border=1!


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

- user_add, абонент добавлен в биллинг. Эта команда добавит IP-адрес 192.168.248.5 в crb_auth_list.
- user_redirect, абонент ещё не заплатил и заблокирован по балансу. Эта команда добавит IP-адрес 192.168.248.5 в crb_negbal_list.

Проверим это командой:
{code}
<code>
ip firewall address-list print where address=192.168.248.5
</code> {code}

Ответ:

<code> {code}
Flags: X - disabled, D - dynamic
# LIST ADDRESS CREATION-TIME
crb_auth_list 192.168.248.5 oct/04/2018 13:16:11
crb_negbal_list 192.168.248.5 oct/04/2018 13:16:11
</code> {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.
Проверим, что абонент находится в правильных адрес листах. Выполним на Mikrotik'е команду:

<code> {code}
ip firewall address-list print where address=192.168.248.5
</code> {code}

В ответ получим следующее:
{code}
<code>
Flags: X - disabled, D - dynamic
# LIST ADDRESS CREATION-TIME
0 ;;; 192.168.248.5_crb_auth
crb_auth_list 192.168.248.5 oct/04/2018 13:18:16
</code> {code}

Как видно из вывода, абонент находится только в одном адрес листе crb_auth_list, соответственно имеет доступ в интернет. Проверить какой шейпер назначен абоненту можно командой:
<code> {code}
queue simple print where target=192.168.248.5/32
</code> {code}

В выводе получим данные по скоростям:

<code> {code}
Flags: X - disabled, I - invalid, D - dynamic
0 name="crb_192.168.248.5" target=192.168.248.5/32 parent=none packet-marks="" priority=8/8 queue=default-small/default-small limit-at=0/0 max-limit=1024k/1024k burst-limit=0/0 burst-threshold=0/0
burst-time=0s/0s bucket-size=0.1/0.1
</code> {code}

Данные совпадают с информацией, которая указана в тарифе, а именно max-limit=1024k/1024k При авторизации по PPPoE изменится только этап авторизации, на котором нужно ввести логин/пароль. Остальная логика останется прежней.

В биллинге Carbon Billing 5 выдача адреса с помощью opt82 так же поддерживается и настраивается по статьям:
* [[http://docs.carbonsoft.ru/display/CarbonBilling/DHCP|http://docs.carbonsoft.ru/display/CarbonBilling/DHCP]] [CarbonBilling:DHCP]
* [[http://docs.carbonsoft.ru/pages/viewpage.action?pageId=52428856|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=52428856]] [CarbonBilling:Отладка DHCP]

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* записей.