Установка и настройка биллинга ExpertBillingSystem (EBS) c NAS Mikrotik.

 

Что это и чьё это?

Так уж сложилось, что на протяжении нескольких лет биллинговая система ExpertBilling (www.expertbilling.ru) находилась в тени и все внедрения проводились точечно без широкой огласки. Виной тому несколько причин, одна из которых - отсутствие сертификата РФ, но сейчас мы не об этом. Сертификата нет и сейчас, но слишком много в этой системе хорошего, чтобы о ней и дальше молчать. Разработкой системы занимается белорусская компания.

О чём статья

В этой статье я расскажу как с помощью этой замечательной и во многом уникальной по списку предоставляемого функционала системы, можно автоматизировать деятельность интернет-провайдера средней руки. ExpertBilling изначально разрабатывался как универсальное решение, не ограничивающее провайдера в логике тарификации и используемых средствах для решения его задач. Здесь нет чёткой логики, что сервера доступа должно быть два, что ether1 должен быть внешним каналом, ether2 внутренним интерфейсом, а список правил файервола должен выглядеть так то и так то. Всё настраивается, однако порой для настройки нужно обладать хотя бы базовыми знаниями как работают биллинг-системы подобного рода. Слова RADIUS, SSH и NetFlow не должны ставить вас в тупик, хотя и коснуться всего этого в коробочной редакции придётся весьма косвенно. На сайте разработчика есть демо-версия на 100 абонентов, которая больше ничем не ограничена, кроме числа аккаунтов в базе.

Так как совсем недавно вышла версия 1.4, то устанавливать и настраивать мы будем именно её. Тем более что со времён 1.2.1 и 1.3 она сильно изменилась и стала лучше. ExpertBilling 1.4 может работать на 32-битных Debian и Ubuntu. При желании можно заставить работать и на других Linux-системах. Настраивается и управляется этот биллинг через десктопное приложение написанное на PyQt4. Существует интерфейс кассира, клиентский агент, веб-кабинет абонента и веб-интерфейс HelpDesk. Со списком возможностей лучше понакомиться на официальном сайте, так как их очень много и публиковать их здесь не вижу смысла. В этой статье коснёмся архитектуры биллинга, модели взаимодействия с серверами доступа, примером настройки биллинг-системы для тарификации трафика и предоставления безлимитного доступа.

Поехали

ExpertBilling состоит из пяти серверных компонентов, набора различных обслуживающих скриптов и десктопных компонентов. К серверным относятся:

  1. core - ядро биллинга системы. Оно занимается тарификацией и обработкой внутренней бизнес-логики.
  2. nfroutine - тарификатор и агрегатор netflow.
  3. nf - NetFlow v5 коллектор и классификатор
  4. rad - собственный RADIUS сервер
  5. rpc - RPC сервер для взаимодействия интерфейса администратора и веб-кабинета с ядром.
  6. Web-кабинет пользователя(написан с помощью веб-фреймворка Django)
  7. HelpDesk интерфейс, как часть веб-кабинета.

Скрипты:

  1. Скрипт миграции с других биллинг-систем
  2. Скрипт импорта платежей
  3. Скрипт построения графика утилизации канала абонентами
  4. и др.

В качестве СУБД используется Postgresql >8.2. Как видите, в составе биллинга всё своё. Чего-либо доустанавливать и часами настраивать не придётся. FreeRADIUS не используется. Вместо него предлагается собственый высокопроизводительный сервер, который по тестам в различных режимах выдаёт не менее 300 пакетов в секунду с задержкой не более секунды. Этого более чем достаточно, учитывая его возможности.

Установка

Устанавливается ExpertBilling и апгрейдится с помощью скрипта на языке python. При желании вы можете открыть его и изучить логику. Но перейдём от слов к делу. Установим демо-версию ExpertBilling на свежеустановленный сервер с Ubuntu Server 11.04 32-bit. Просмотреть инструкцию по установке Ubuntu вы можете в wiki проекта. Итак. Вся настройка займёт не более получаса в первый раз и минут 5, если вы это уже когда-либо делали. Всё банально. Для установки выполните в консоли с правами суперпользователя:
cd /opt/ wget http://188.40.89.38/media/demo.tar.gz tar -xvzf demo.tar.gz
В итоге у вас должен распаковаться файл ebs_manage.py и архив с биллинг-системой, который будет иметь вид ebs-номер_сборки.tar.gz Далее установим требуемые библиотеки и создадим начальные папки:

apt-get update apt-get install mc openssh-server python-twisted python-psycopg2 openssl python-paramiko python-dateutil python-pytils python-crypto libpython2.6 apache2 libapache2-mod-wsgi python-jsonpickle python-simplejson rrdtool snmp python-pexpect

mkdir /opt/ebs

mkdir /opt/ebs/data/

apt-get install postgresql-8.4 postgresql-contrib-8.4

Создадим базу данных и импортируем функции для работы с типами данных. После команды createuser -P -s ebs система спросит у вас пароль для пользователя базы данных ebs. Запишите и запомните его.

su postgres

createuser -P -s ebs

createdb -O ebs ebs

>psql ebs -f /usr/share/postgresql/8.4/contrib/int_aggregate.sql

psql ebs -f /usr/share/postgresql/8.4/contrib/_int.sql exit

Запустите скрипт установки биллинга и вводите требуемые значения для доступа к БД.

python ebs_manage.py install имя распакованного архива с биллингом(вид ebs-*****.tar.gz)

Скрипт 3 раза спросит пароль для доступа к базе данных в разных местах, имя и параметры подключения к базе данных. Введите пароль, указанный выше при создании пользователя базы данных. Часть установки веб-кабинета инсталлятор выполнит автоматически. Для окончания настройки укажите параметры подключения к базе данных и свою временную зону в файле /opt/ebs/web/ebscab/settings.py. После этого выполните команду billing start и проверьте лог-файлы биллинг-системы на предмет наличия ошибок (/opt/ebs/data/log/*). Остановить все процессы биллинг-системы можно командой billing stop или billing force-stop. Для корректного завершения рекомендую пользоваться первым вариантом команды. Сейчас скачайте, распакуйте и запустите EBSAdmin, укажите IP-адрес сервера с биллингом, имя admin, пароль admin, и попробуйте подключиться.

image

Сервер доступа

Теперь в самую пору вспомнить о нашем сервере доступа. По-умолчанию ExpertBilling предлагает вариант настройки для использования в качестве сервера доступа RouterOS MikroTik. Поддерживаются все её версии, начиная с 2.8.22. Инструкцию по установке и настройке RouterOS MikroTik для его взаимодействия с биллинг-системой также можно найти в вики проекта. Никакой магии не используется. Только стандартные протоколы и решения. В двух словах: если вы планируете использовать PPTP/PPPOE/L2TP/HotSpot — вам нужно включить и настроить RADIUS клиент на микротике и добавить SSH пользователя. Если будете использовать IpoE(IPN) – просто добавляете пользователя. Возможны различные варианты взаимодействия, но мы рассмотрим самый чтонинаесть стандартный: RADIUS авторизация PPTP сессий, использование SSH для сброса сессий и изменения скорости. Если будете использовать тарификацию NetFlow — включить и настроить экспорт TrafficFlow на микротике. Можете также включить api. Все нюансы описаны в wiki. Для того, чтобы биллинг-система могла взаимодействовать с сервером доступа — его нужно добавить через интерфейс администратора.

image

Нажимаете на соответствующую кнопку, указываете его имя, тип, нажимете кнопку Fill, соглашаетесь, указываете IP адрес, RADIUS secret, который указали на микротике при настройке RADIUS клиента, аккаунтинг интервал (рекомендуется 60 секунд) имя и пароль для доступа по ssh. Нажмите кнопку Test, чтобы проверить смогла ли биллинг система подключиться к вашему серверу доступа по SSH. Если всё прошло успешно - нажимайте Ok. С настройкой сервера доступа покончено.

Тарифные планы

Создадим 2 тарифных плана:

  1. Безлимитный тарифный план с абонентской платой и способом доступа PPTP "Первый". Стоимость на месяц 1000 рублей. Скорость вх/исх 1 мегабит. Начать списание с момента подключения пользователя на тарифный план. Списывать равными частями на протяжении месяца раз в час.
  2. Тарифный план с NetFlow тарификацией трафика и предоплаченным трафиком "Базовый". Стоимость 600 рублей. Тарифицировать только исходящий трафик. Начислять 600 мегабайт предоплаченного трафика. При израсходовании предоплаченного трафика тарифицировать каждый мегабайт по 10 рублей.

С безлимитным тарифным планом никаких сложностей. Скриншоты ниже демонстрируют настройку.

 

image

image image Теперь приступим к настройке второго тарифного плана. Здесь немного сложнее. Для начала нужно как-то классифицировать клиентский трафик. Для его классификации испольуются "Классы трафика" (извиняюсь за тафталогию). Каждый класс трафика описывает входящее и исходящее направления движения ip пакетов, которые как-то логически можно сгруппировать. К примеру в самом базовом варианте это 2 класса: Межабонентский трафик и Интернет. Классы системой просматриваются сверху-вниз. До самых низших классов дойдёт то, что не попадёт в более высокие. Для лучшего понимания представьте 3 решета один над одним, под которыми кастрюля. У верхнего решета самые большие и в нём застревают валуны, в среднем дырочки среднего размера, где застревает гравий, ветки и мусор, а в нижнем очень маленькие, где застревают крупицы поменьше. В кастрюлю сыпется всё остальное. Таким же принципом вы должны руководствоваться при создании классов в ExpertBilling. Тарифицировать мы будем только то, что осталось в кастрюле (хотя можно было бы тарифицировать любой класс на любом этапе фильтраци). Клиентам мы будем выдавать IP адреса из сети 192.168.11.0/24. Соответсвтенно наши 2 класса будут выгляеть так:

Межабонентский: 192.168.11.0/24->192.168.11.0/24 направление INPUT

image

Интернет:

0.0.0.0/0->192.168.11.0/24 направление INPUT

192.168.11.0/24->0.0.0.0/0 направление OUTPUT

 

image

Теперь приступим к настройке самого тарифного плана. Указываем название, способ доступа, отмечаем нужные компоненты (NetFlow тарификация и Периодические услуги)

image

Переходим на закладку NetFlow тарификации, нажимаем на кнопку + над первой таблицей, дважды кликает по ячейке Группа трафика, добавляем новую группу так, как показано на скриншоте.

image

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

image

Доуказываем оставшиеся параметры, как на скриншоте.

image

Переходим на закладку Периодические услуги и добавляем услугу, которая будет в начале каждого расчётного периода снимать со счёта абонента 600 рублей в счёт предоплаченного трафика.

image

Знак + перед расчётным периодом значит то, что период начинается с момента подключения абонента на тарифный план. Если вы хотите использовать другой расчётный период - создайте его в справочнике "Расчётные периоды", указав дату начала и период повторения. Всё. С настройкой тарифных планов закончено. Теперь создадим абонента на одном из тарифных планов. Алгоритм создания абонента: Выбираем в списке тарифных планов нужный тарифный план, нажимаем на кнопку "Добавить аккаунт", указываем логин, пароль.

image

Сохраняем аккаунт, переходим на закладку "Субаккаунты", нажимаем + на панели и добавляем субаккаунт, указав сервер доступа, логин, пароль, VPN IP адрес из сети 192.168.11.0/24. К примеру 192.168.11.44.

image

Если фантазия не работает - возле поле логина и пароля есть кнопки автогенерации и того и другого. Параметры генерации укаызваются в файле ebsadmin.ini в папке с интерфейсом администратора. Здесь, ранее и далее вы должны понимать, что IP адреса на скриншотах не являются руководством к действию. Вы должны указывать такие IP сети, которые ваш сервер доступа будет способен смаршрутизировать/занатить, если будет такая необходимость. Создали субаккаунт, сохранили аккаунт, пополняем баланс и примерно через минуту пробуем подключиться.

image

 

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

image

Если во время настройки не было самодеятельности - всё заработает с первого раза. Если была - вспоминайте, где вы что не так сделали и спрашивайте.

Заключение

Это руководство охватывает тот минимум, который необходим для настройки. Система позволяет изголяться так, как вы только пожелаете и строить практически любую логику штатными средствами. Надеюсь время было потрачено не зря и это руковдство было вам полезно. Кто захочет узнать больше - официальный сайт проекта http://www.expertbilling.ru, wiki http://wiki.expertbilling.ru, форум: http://forum.expertbilling.ru

 

При использовании материалов ссылка на автора и источник ОБЯЗАТЕЛЬНЫ!

Автор: Александр Кузьмицкий

Теги: Mikrotik, Микротик, Mikrotik Billing, Микротик Биллинг,Биллинг для микротика, ExpertBilling.




Рейтинг@Mail.ru
Яндекс цитирования

Григорьев Дмитрий Владимирович (Inlarion) 2010-2016 (C) Все права защищены. При копировании материалов с сайта, ссылка на автора и источник обязательны!!!