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

Skip to end of metadata
Go to start of metadata

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

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

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

Первичная настройка сети биллинга и микротика 

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

  • 10.90.248.90/16 - адрес внешнего интерфейса микротика, который смотрит в интернет
  • 10.90.1.1 - основной шлюз микротика
  • 192.168.248.1/24 - адрес локального интерфейса микротика
  • 192.168.248.2/24 - адрес биллинга
  • 192.168.248.1 - шлюз биллинга, он же локальный адрес микротика
Настройка сети микротика с помощью терминала

Шаг 1
Проверяем, какие сетевые интерфейсы сейчас доступны для использования. Вводим команду:

/interface print

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

Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS
0 R ether1 ether 1500 52:54:00:A6:AE:A9
1 R ether2 ether 1500 52:54:00:84:C3:7E

Шаг 2

Выбираем какой интерфейс будет выбран в качестве внешнего, а какой в качестве локального. Мы выбрали ether1 как внешний, ether2 - локальный.

Добавляем адреса на интерфейсы в соответствии с выбором:

/ip address add address=10.90.248.90/16 interface=ether1 network=10.90.0.0
/ip address add address=192.168.248.1/24 interface=ether2 network=192.168.248.0

Шаг 3

Теперь необходимо добавить маршрут по умолчанию для того, чтобы у Mikrotik'а был доступ во внешнюю сеть.

/ip route add distance=1 gateway=10.90.1.1

После добавления маршрута по умолчанию, нужно проверить, что у Mikrotik'a теперь есть доступ во внешнюю сеть. Запускаем ping до 8.8.8.8.

/ping 8.8.8.8

Ответ

SEQ HOST SIZE TTL TIME STATUS
0 8.8.8.8 56 47 41ms
1 8.8.8.8 56 47 41ms
2 8.8.8.8 56 47 41ms

В данном случае ответы есть.

Шаг 4

Если во время установки биллинга Вы уже произвели настройку сети, то этот пункт можно пропустить. Если сеть во время установки биллинга Вы не настраивали, это необходимо выполнить следующим образом из консоли.

Проверяем какие сетевые интерфейсы доступны для использования и отобразились системой:

ip a | grep eth

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

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
link/ether 42:41:23:7d:e4:12 brd ff:ff:ff:ff:ff:ff

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

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

vim /etc/sysconfig/network-scripts/ifcfg-eth0

В открывшемся окне появится примерно следующее содержание:

DEVICE=eth0
HWADDR=52:54:00:e0:13:3a
TYPE=Ethernet
UUID=d498b2ad-331a-4b66-b921-91cb8808012c
ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=none
DNS2=8.8.4.4
DNS1=8.8.8.8
USERCTL=no
PEERDNS=no
IPV6INIT=no

С помощью текстового редактора добавим сюда следующие строки:

IPADDR=192.168.248.2
NETMASK=255.255.255.0
GATEWAY=192.168.248.1

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

После всех изменений конфигурационный файл должен выглядеть следующим образом:

DEVICE=eth0
HWADDR=52:54:00:e0:13:3a
TYPE=Ethernet
UUID=d498b2ad-331a-4b66-b921-91cb8808012c
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.248.2
NETMASK=255.255.255.0
DNS2=8.8.4.4
GATEWAY=192.168.248.1
DNS1=8.8.8.8
USERCTL=no
PEERDNS=no
IPV6INIT=no

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

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

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

ifdown eth0; ifup eth0

Если всё выполнено верно, то после этих изменений IP-адрес 192.168.248.2 будет добавлен на интерфейс eth0. Проверим это той же командой:

ip a | grep eth

В выводе теперь будет информация с этим IP-адресом:

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

Теперь проверим, что Mikrotik доступен с биллинга:

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

Шаг 5

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

ping 8.8.8.8

Ответ:

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

Если же адрес для биллинга выделен из серой подсети, как в данном примере, то на Mirkotik'е необходимо добавить правило маскарада для адреса биллинга. Для этого на Mirkotik'е вводим следующие команды:

/ip firewall nat add action=masquerade chain=srcnat dst-address=!10.0.0.0/8 src-address=192.168.248.2

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

В примере указано исключение только для одной серой сети 10.0.0.0/8. Если необходимо добавить исключение для всех серый подсетей, укажите их в отдельных правилах:

/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

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

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

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

Логин: root
Пароль: servicemode

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

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

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

В биллинге Carbon Billing 5 существует несколько стандартных схем для разного сетевого оборудования (Mikrotik, Cisco, Redback). Для оборудования Mikrotik так же существует несколько типовых схем интеграции.

В данном примере мы рассматриваем схему Mikrotik-Simple. Отличие этой схемы от схемы Mikrotik PCQ заключается в назначении скорости абоненту через очередь, а не через дерево. В последних версиях Mikrotik производители заявляли о более высокой производительности именно через назначение скоростей с помощью Simple. Схема Mikrotik-Simple поддерживает как IPoE так и PPPoE/PPTP/L2TP авторизацию. В схеме участвуют следующие понятия:

  • Абонент
  • Биллинг
  • Mikrotik

Общая логика настройки взаимодействия выглядит следующим образом:

  • На стороне биллинга генерируется конфигурация для Mikrotik'а на основании входных данных, таких как IP-адрес, логин, пароль, порт и так далее.
  • Конфигурация загружается на Mikrotik.
  • При добавлении абонента в биллинг, на стороне биллинга вызывается определённое событие, которое описано в скрипте отправки команд, после вызова которого на оборудование уходит команда по добавлению определённого IP-адреса в нужный адрес-лист, которому разрешен доступ в интернет. Помимо этого, будет отправлена команда на добавление шейпера исходя из тарифного плана абонента. Более подробно схема описана ниже.

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

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

В данной схеме взаимодействия RADIUS биллинга никак не используется и роль биллинга сводится к отправке в нужный момент времени определенной команды на Mikrotik. При этом всю информацию об адрес-листах и шейперах хранит Mikrotik.

На случай, если в какой-то момент времени Mikrotik по какой-то причине был недоступен с биллинга, на биллинге имеется скрипт синхронизации, который запускается раз в час и проверяет совпадение состояния абонентов на биллинге и на Mikrotik'е и в случае, если он находит различия - отправляет команды на оборудование.

Общая логика авторизации абонента с помощью PPPoE.
  • Абонент отправляет запрос в широковещательный сегмент на авторизацию PPPoE для обнаружения PPPoE концентратора. На стороне абонента это выглядит как ввод логина/пароля при установке соединения (PADI).
  • Mikrotik отвечает на этот запрос, подставляя свой MAC-адрес в ответ, тем самым говоря абоненту, что Mikrotik является PPPoE концентратором (PADO).
  • Компьютер абонента, при получении ответа от Mikrotik'а, выбирает его в качестве концентратора (в случае, если ответ пришел только от одного Mikrotik'а) и отправляет запрос на авторизацию Mikrotik'у (PADR).
  • Mikrotik, получив запрос на авторизацию от абонента, отправляет запрос на авторизацию уже биллингу, в котором указывает логин/пароль абонента (Access-request).
  • Биллинг при получении запроса от Mikrotik'а проверяет в базе данных наличие абонента с такой связкой логин/пароль. Если абонент найден - биллинг разрешает Mikrotik'у установить соединение и отправляет по RADIUS атрибут Mikrotik-Address-List со значением crb_auth_list. Этот адрес-лист говорит о том, что абонент существует в биллинге (Access-accept). Так же биллинг передает через RADIUS информацию об IP-адресе абонента, который будет назначен при установке туннельного соединения. Если биллинг не находит абонента - будет отправлен отказ на авторизацию (Access-reject).
  • В момент авторизации на биллинге так же происходит событие, которое отправляет на Mikrotik команды по назначению скорости, а так же, если абонент заблокирован по отрицательному балансу, добавление абонента в negbal-лист на Mikrotik.
  • Mikrotik, после получения от биллинга разрешения на авторизацию (Access-accept), отправляет абоненту пакет об успешной авторизации и устанавливает туннельное соединение между собой и компьютером абонента (PADS).

В схеме PPPoE RADIUS биллинг используется каждый раз при подключении абонента, поэтому важно, чтобы при авторизации абонента у Mikrotik'а был доступ до биллинга. В этой схеме биллинг так же генерирует событие при изменении состояния абонента как по балансу, так и по другой административной блокировке и реагирует на это отправкой команд. Различия этих 2 схем только в установлении соединения.

В стандартной схеме предусмотрена отправка NetFlow пакетов на Collector биллинга. По умолчанию он работает через порт 9996. При получении NetFlow информации от Mikrotik'а, биллинг агрегирует её и добавляет информацию в базу данных биллинга. Далее, эту информацию можно просматривать через веб-интерфейс и использовать в отчётах.

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

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

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

Очистка базы данных

Шаг 1.

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

Шаг 2.

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

Шаг 3.

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

Шаг 4.

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

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

Шаг 5.

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

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

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

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

Шаг 1.

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

Шаг 2.

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

Шаг 3.

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

Ключевые параметры NAS'а, которые обязательно необходимо заполнить при интеграции Mikrotik по схеме Mikrotik-Simple:

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

3.2 rtsh cfg upload show - вывести все сгенерированные конфигурации. Этот шаг выведет весь конфигурационный файл на экран.

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


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

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

chroot /app/asr_billing/
ssh admin@192.168.248.1

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

Добавление абонента в биллинг

После того, как NAS добавлен в биллинг и конфигурация успешно загружена на Mikrotik, можно приступать к добавлению абонентов в биллинг.

Первым делом необходимо создать тариф, подходящий для нашей системы расчетов. В Carbon Billing 5 есть очень гибкая система создания тарифов под разные сложные схемы списания, в данной статье все они рассматриваться не будут, так как их описание выходит далеко за рамки статьи.

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

Для этого переходим на вкладку "Управление абонентами и тарифами - тарификация - тарифы" и нажимаем кнопку "Мастер".

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

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

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

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

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

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

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

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

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

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

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

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

Таким образом, сразу после создания абонента, на Mikrotik'е он будет в 2 листах: crb_auth_list и crb_negbal_list.

Проверим это командой:

ip firewall address-list print where address=192.168.248.5

Ответ:

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:16:11
crb_negbal_list 192.168.248.5 oct/04/2018 13:16:11

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

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

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

После обработки платежа биллинг отправит на Mikrotik команды:

  • user_redirect_cancel. Эта команда уберет ip адрес абонента из адрес листа crb_negbal_list.
  • user_rate_set. Этой командой будут добавлены скорости для абонента.

Проверим, что абонент находится в правильных адрес листах. Выполним на Mikrotik'е команду:

ip firewall address-list print where address=192.168.248.5

В ответ получим следующее:

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

Как видно из вывода, абонент находится только в одном адрес листе crb_auth_list, соответственно имеет доступ в интернет. Проверить какой шейпер назначен абоненту можно командой:

queue simple print where target=192.168.248.5/32

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

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

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

Для комфортной и безопасной схемы IPoE лучше настроить DHCP для получения IP-адреса. В данной схеме можно использовать DHCP как на Mikrotik'е, так и на биллинге. Наилучшим решением на наш взгляд использовать DHCP с привязкой по opt82 и использованием на коммутаторах опции DHCP Snooping. Это поможет защитить сеть от подмены ip адресов и обеспечит удобную работу абонентов.

В биллинге Carbon Billing 5 выдача адреса с помощью opt82 так же поддерживается и настраивается по статьям:

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

Замечания по API

Команды на добавление очереди, а также работы с адрес листами crb_negbal_list, crb_block_list в стандартной схеме отправляются по API.
Соответсвенно API в микротике должен быть включен и доступен с биллинга.
Для проверки отправки команд по API можно использовать команду:

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
Для отправки команд на mikrotik по API используется стандартный TCP порт 8728.
Медленная отправка команд

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

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
}

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

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.