Как мы внедряли MikroBILL

Материал из MikroBILL
Перейти к: навигация, поиск

Вступление.

Всё началось давно, когда решил поделиться интернетом с соседом и оплачивать пополам. В то время не было мысли о том, чтобы заняться провайдерством, но с течением времени появилась идея неплохо подзаработать на «продаже интернета». Начали работать, подключать клиентов в частном секторе, так как местные провайдеры, отказывались там работать. В итоге прошло время, абонентов было 100 человек, потом 200 человек. Подключили соседние города и их количество перевалило за 800 человек. До недавнего времени, весь биллинг был «ручным», абонентов включали и отключали вручную, по звонку или при поступлении денег на карточный счёт. Это всё отступление, перейдём к главной теме.

В статье не будет сравнения продуктов. Модели оборудования так же не будут упоминаться, все железки только MikroTik.

1. Эпизод первый. Структура нашей микро провайдерской сети.

Когда всё начиналось, о внедрении биллинга не было и мысли. Так что пришлось внедрять в то, что есть. Сеть построена исключительно на Wi-Fi. По городу имеется N-ое количество маршрутизаторов MikroTik раздающих интернет (буду называть их шлюзом под номерами 1, 2, 3 и т.д., по тексту GW1, GW2, GW3, и т.д.), к каждому из них подведено оптоволокно от вышестоящего провайдера с белым статическим внешним IP адресом.

Сейчас в качестве примера речь пойдёт об одном из маршрутизаторов (GW1), так как все остальные случаи идентичны. На GW1 поднято PPPoE соединение для доступа в интернет. В первый порт воткнута передающая антенна (назовём её базовая станция, далее по тексту БС), которая направлена в сторону расположения группы подключаемых абонентов в нужном месте частного сектора. На стороне абонента, находится антенна (назовём её абонентская станция, далее по тексту АС) направленная на БС. С АС витая пара заходит к абоненту. Далее по его желанию - либо напрямую в компьютер, либо установка своего роутера. БС и все АС настроены в режиме WDS и имеют единую адресацию. Схема одного сегмента сети показана на рисунке. Хочется отметить то, что все пользователи за GW1, GW2, GW3, GW –n не находятся в единой локальной сети, им предоставляется только доступ в интернет.

Схема одного сегмента сети.

Как писалось выше, имеем большое количество GW в одном городе. Каждый GW управляет своей группой пользователей, на нём осуществляется настройка доступа пользователя в интернет и ограничение скорости доступа. Для автоматизации биллинга решили использовать MikroBILL.

2. Эпизод второй. Установка биллинга.

Установить MikroBILL решили на обычный компьютер с процессором Intel Pentium, частотой 3 Ггц, 2Гб оперативной памяти, жёстким диском 500 Гб, и гигабитной сетевой картой. Как в дальнейшем показала практика, оперативной памяти нужно по больше. Установили на этот компьютер Windows Server 2003R2 x86. В итоге сейчас свободной оперативной памяти 500 Мб. Считаю запаса маловато, но при добавлении новых абонентов в MikroBILL объём свободной памяти не уменьшается. Этот компьютер подключили к MikroTik с доступом в интернет и как раз он будет выполнять роль основного шлюза для организации единой сети управления биллингом. Программу можно скачать с официального сайта, с бесплатной лицензией на 10 абонентов, этого нам хватило что бы протестировать её под свои нужды и познать всю прелесть автоматизации процесса.

Извлекаем содержимое архива в С:\mikrobill. Для работы программы необходим Net Framework 2.0. Запускаем .exe файл. Выбираем язык:

Ris2.jpg

Читаем и соглашаемся с лицензионным соглашением:

Ris3.jpg

Дальше всё устанавливали по умолчанию. Предлагается установка MySQL сервера и Apache веб сервера. В первом будут храниться данные программы, второе нужно для работы личного кабинета.

Ris4.jpg
Ris5.jpg
Ris6.jpg


На следующем шаге MikroBILL предлагает добавить MikroTik, но отказываемся, так как внедрение проходило в рабочую промышленную среду предварительно не подготовленную для этого.

Ris7.jpg

По окончании процесса программа выдаст пароль для пользователя root сервера MySQL. Его стоит запомнить, а лучше записать. В дальнейшем он непременно понадобится. После этого видим окно программы. На мой взгляд, всё интуитивно понятно.

Ris8.jpg

Теперь коротко о элементах управления, хотя вопросов я думаю быть не должно:

Ris9.jpg
фильтр, после добавления тарифов и групп так же можно будет фильтровать по ним;
Ris10.jpg
поиск;
Ris11.jpg
возобновляет доступ в интернет, выбранных, ранее остановленных абонентов;
Ris12.jpg
останавливает выбранных абонентов, тем самым прекращает доступ в интернет;
Ris13.jpg
пополнение баланса выбранным абонентам;
Ris14.jpg
разорвать соединение у выбранных абонентов (работает в случае если абонент использует PPP соединение);
Ris15.jpg
открывает окно движения средств по выбранным абонентам, с возможностью редактирования;
Ris16.jpg
предоставляет возможность просмотреть статистику по выбранным пользователям (текущая активность, общий и посуточный расход трафика);
Ris17.jpg
показывает график скорости выбранных абонентов (текущей, за час и суточный);
Ris18.jpg
просмотр сообщений от абонентов, которые они могут отправлять из личного кабинета;
Ris19.jpg
создание карт оплаты (с логином и паролем) нужного номинала в валюте, с возможностью последующей активации в личном кабинете абонента;
Ris12.jpg
рассылка оповещений по средствам SMS, а так же планировщик рассылки и просмотр архива отправленных сообщений;
Ris21.jpg
рассылка e-mail уведомлений (нет планировщика);
Ris22.jpg
создание новостной ленты для абонентов которая будет отображаться в личном кабинете;
Ris23.jpg
показывает на графике текущую загрузку интернет канала (суммирует скорость по всем подключенным MikroTik;
Ris24.jpg
копирование учётных данных абонентов;
Ris25.jpg
осталось вопросом;
Ris26.jpg
раздел активации программы;
Ris27.jpg
открывает окно настроек программы;
Ris28.jpg
открывает окно редактирования групп, тарифных планов, услуг, фаервола и настройки рассылки SMS сообщений;
Ris29.jpg
настройки вида отображения списка абонентов;
Ris30.jpg
показывает количество включенных и отключенных абонентов.

Окно настроек программы выглядит как показано на рисунке ниже. Опишу вкратце. Тут мы можем добавлять MikroTikи на которых будут автоматически создаваться нужные правила для управления биллингом. В параметрах создания клиентов настраиваются параметры по умолчанию с которыми будут создаваться новые абоненты. В параметрах агента - настройки самого агента, но мы решили его не использовать.

Тут же включается функция перенаправления абонентов с задолженностью на страницу WEB-заглушки, с предложением пополнить баланс, так же есть возможность в настройках прописать ip адрес и порт WEB сервера где эта страница расположена. Тоже самое для не пользователей, то есть, все запросы на шлюз от ip адресов, не привязанных к абонентам, будут перенаправляться на страницу где написано, что он не является пользователем.

Ris31.jpg

На следующей вкладке можно настроить, что бы программа работала как сервис, запускалась автоматически при включении компьютера. Здесь же понравилась функция MikroREMOTE позволяющая удалённо с помощью утилиты подключаться и управлять программой в многопользовательском режиме.

Ris32.jpg

Есть возможность выбора валюты с которой будет работать MikroBILL, настройка расчётного часа (время списания) и порог при котором будет происходить отключение абонентов. И конечно же настройки логов и бэкапов.

На следующем рисунке находятся настройки подключения к базе данных, если при первом запуске устанавливали MySQL и Apache, то тут уже будет всё настроено как надо.

Ris33.jpg

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

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

Ris34.jpg

Так же есть возможность создавать и подключать услуги абонентам. В списке создания присутствуют услуги – турбо-кнопка, обещанный платёж, одноразовая услуга, обычная, резервирование и SMS-информирование. Каждая услуга настраиваемая.

Списки сетей и фаервол. Позволяет прямо из программы создавать Address list и правила фильтрации трафика для каждого из подключенных к ней MikroTik.

Оповещения SMS и Email. Позволяет настроить, откуда будет производиться SMS рассылка, вплоть до редактирования текста SMS сообщения.

У программы ещё множество всевозможных функций, но я рассказал только о некоторых, которых достаточно для внедрения. Всё остальное можно изучить позже.

Личное мнение – программа достойная и нет желания рассматривать другие решения, так как со всеми задачами она справляется на ура и полностью удовлетворяет наши потребности.  

3. Эпизод третий. Размышление об организации сети для управления MT.

В этом разделе только описание, все настройки в следующем. В MikroBILL есть web портал личного кабинета, заведённого в него пользователя и страница-заглушка для абонента, у которого на балансе сумма превышающая допустимую для предоставления доступа в интернет. Решили средствами MikroTik организовать единую локальную сеть для управление всеми устройствами. Так как все GW находятся в разных частях города. Для этого выбрали EoIP так как опыт работы с ним уже был. PPTP, L2TP, не стали рассматривать, так как побоялись запутаться в маршрутизации при таком количестве шлюзов.

Опишу вкратце структуру единой сети для управления всеми устройствами, при этом заходить на любое устройство можно будет не по внешнему белому IP адресу (а их достаточно большое количество), а по серому из одного диапазона адресов.

Структура сети управления.

Есть сервер с установленным MikroBILL и подключенным к порту основного шлюза для управления. Создаём бридж, присваиваем ему ip адрес, добавляем в него порт с подключенным MikroBILL , далее до каждого GW поднимаем EoIP туннель и заводим в ранее созданный бридж. На стороне всех GW интерфейсу EOIP присваиваем ip адреса из той же подсети что и на основном шлюзе. В итоге мы будем имеем свободный доступ с сервера MikroBILL на все шлюзы, которые в свою очередь «раздают» (продают) интернет абонентам.

Ну а если у вас нет внешних белых ip адресов на GW, но есть на основном шлюзе, то как вариант (мы его тоже использовали в одном сегменте сети) можно поднять PPTP или L2TP туннель и поверх этого туннеля поднять EoIP и получится тоже самое.

Личный кабинет. Решение довольно интересное и пришлось нам по душе. В нашем случае WEB сервер с личным кабинетом расположен на том же сервере, что и MikroBILL. Было принято решение о предоставлении к нему доступа не по сети управления, а по белому внешнему ip адресу к которому был привязан, заранее купленный домен второго уровня.

4. Эпизод четвёртый. Настройка сети управления.

Начну пожалуй с того, что нужно определиться, какой MikroTik (GW) заводить в биллинг. После этого я подготавливал его для подключения. Все подключения проводились ночью, незаметно для пользователей. До подключения к биллингу на нём было настроено PPPoE соединение, адрес лист со списком ip абонентов, правило маскарада для этого адрес листа и небольшой набор правил в фаерволе.

Схема представлена ниже.

Структура сети управления (сегмент).

На основном шлюзе настроено так же PPPoE соединение. И маскарадинг на 172.16.30.2. На основном создаём EoIP туннель до GW1:

      /interface eoip
      add !keepalive name=mbGW1 remote-address=195.54.2.2 tunnel-id=1

tunnel-id на обоих концах туннелей должен быть одинаковый, туннелей с одинаковым tunnel-id не должно быть.

Создаём бридж и добавляем в него порт с подключенным сервером MikroBILL и созданный ранее EoIP туннель:

      /interface bridge
      add name=mikrobill-b
      /interface bridge port
      add bridge=mikrobill-b interface=mbGW1
      add bridge=mikrobill-b interface=Имя интерфейса с подключенным MikriBILL

Назначаем на бридж ip адрес 172.16.30.1/24:

      /ip address
      add address=172.16.30.1/24 interface=mikrobill-b network=172.16.30.0

На GW1 создаём EoIP туннель:

      /interface eoip
      add !keepalive name=mikrobill remote-address=195.54.2.1 tunnel-id=1

Назначаем на него ip адрес 172.16.30.3/24:

      /ip address
      add address=172.16.30.3/24 interface=mikrobill network=172.16.30.0

Теперь если мы попингуем с сервера MikroBILL ip адрес 172.16.30.3, он будет пинговаться (если у вас не блокирует фаервол). Что даёт свободный доступ MikroBILL к шлюзу GW1 который «продаёт» интернет.

Далее на GW1 создаю отдельного пользователя для подключения MikroBILL. Разрешаю пользователю подключаться с конкретного ip адреса (я везде прописывал адрес сервера MikroBILL 172.16.30.2.

На GW1 что бы потом не запутаться перед подключением к MikroBILL я удалял все свои правила фаервола, правила NAT, правила Queues и адрес листы. Далее MikroBILL их создаст сам. Этого будет достаточно что бы абоненты продолжили работать.

Так же не забываем включить сервис API (если он у вас выключено) так как MikroBILL работает именно через него. IP>Services>api Открываем MikroBILL нажимаем «настройки», на вкладке «Программа» > «MikroTik» нажимаем «+» и попадаем в окно добавления MikroTik.

Ris35.jpg

В поле «Сервер» вводим ip адрес нашего GW1 – 172.16.30.3, логин и пароль ранее созданного пользователя и комментарий – для удобства. Здесь же ставил «Получать скорость от Simple Queues» и убираем галочку «Использовать PCQ» Нажимаем кнопку «Объекты, которыми управляет MikroBILL»

Ris36.jpg
Ris37.jpg
Ris38.jpg
Ris39.jpg
Ris40.jpg

У меня настройки такие, думаю вдаваться в подробности не стоит, так как написано всё понятно. Я только поясню свой выбор. Я отключил всё в PPP так как не использую данную технологию для предоставления доступа, для Wi-Fi она не вариант. Адресные листы – кроме «отключенных клиентов» и «динамических» отключил, так как не нашёл для них применения.

На счёт управления DHCP, создания IP пулов, маршрутов и HotSpot – это ничего не используется, в данном сегменте сети. Нажимаем OK и ещё раз OK. Программа ругнётся на то что для MikroTik не выбраны тарифные планы, которые он будет обслуживать, я проигнорировал, потом можно добавить (просто в голове их не держу).

Всё MikroTik добавлен в правом нижнем углу основного окна программы отображается какие на текущий момент MikroTik подключены. Нажимаем «Настройки» и создаём группу. Как писал выше, для каждого GW будем создавать отдельную группу, что бы программа знала на каком устройстве создавать правила для конкретного абонента (рисунок ниже).

Здесь вводим название группы, выбираем ранее подключенный MikroTik. На вкладке «Другое» выбираем нужные галочки и ставим в поле «Тип ограничений Simple Queues» параметр PFIFO.

Тарифы создавайте на свой вкус, так как это большая тема, при наведении на параметры есть подсказки.

Ris41.jpg
Ris42.jpg

Теперь начинаем заводить пользователей (рисунок ниже): Имя – имя абонента; Логин – логин для доступа в личный кабинет; Пароль - для доступа в личный кабинет;

Ris43.jpg

IP – тут мы вводим ip адрес АС. Так как для абонента АС является шлюзом, то все запросы, приходящие от него на GW1, будут от IP адреса АС. И правила ограничения скорости будет срабатывать на все устройства, находящиеся за его АС; MAC – определяется по ip адресу при нажатии на кнопку; Интерфейс – выбрать интерфейс к которой подключена БС; Авторизация – IP+MAC; Приоритет – устанавливается в правиле Queues для абонента; Дата 1 – дата с которой подключился абонент; Дата 2 – дата до которой работает абонент. Если установить эту дату, то не зависимо от его баланса абонент будет остановлен Ограничение Вх./Исх. – подставляется из тарифа либо можно ввести вручную. Единица измерения Kbit/s; Бурст – увеличение пропускной способности на определённое время; Тариф – выбираем ранее созданный; Группа – выбираем ранее созданную; Про персональные данные скажу только про мобильный телефон и Email. Если заполнен номер телефона, то будет возможна отправка SMS сообщений. С Email то же самое. Так же после подключения MikroTik к биллингу, будут созданы правила фаервола.

Понемногу о каждом правиле:

Ris44.jpg
  1. 0 и #1 это личные правила;
  2. 3 и #4 правило разрешают доступ к ip адресу который указывался при настройке WEB заглушки;
  3. 5 и #6 правило разрешает всем заведённым в программу абонентам доступ в интернет, по адрес листу. Если абонент заблокирован за неуплату, он попадает в другой адрес лист;
  4. 7 и #8 правило запрещает все остальные соединения из подсети пользователей.

Ещё создаются правила NAT:

  1. 0 Правило перенаправления на страницу заглушку если абонент отключен;
  2. 1 Правило перенаправляет не абонентов на другую заглушку (не абонент);
  3. 3 Собственно само правило маскарада для доступа пользователей в интернет.
Ris45.jpg

И создаются правила Queues (представлены ниже).

Ris46.jpg

Аналогично заводим остальных абонентов которых обслуживает GW1. Для всех остальных GW2, GW3, GW4, GW-n создаём свою группу и при со-здании абонента не забываем указывать группу (GW) которой принадлежит данный абонент.

5. Эпизод пятый. Услуга SMS-информирование, Турбо-кнопка и Интернет в долг.

Тут всё оказалось проще простого. Был выбран вариант рассылки SMS сообщений с GSM модема. Модем и оператор был выбран МТС. Единственный недостаток, для меня не критичный, это то что SMS сообщения с GSM модема отправляются транслитом.

Ris47.jpg

Создаём услугу SMS-информирование, настраиваем её под свои нужды. Не забываем выбрать тарифы или группы которые могут подключать эту услугу. Далее в «Оповещения SMS и Email» добавляем карточку.

Ris48.jpg

Тип карты выбираем USB-модем в MikroTik, выбираем его IP адрес (внимание! В списке отображаются только подключенные к MikroBILL устройства и соответственно оно должно быть с USB портом в который заранее был вставлен USB модем), указываем номер порта. Вуаля! Всё заработало! Жмём кнопку «Тестовое сообщение» вводим номер в формате +7 1234567890.

Теперь настроим текст сообщений. Нажимаем настройки. Тут сразу присутствуют готовые шаблоны. Редактируем под свой вкус

Ris49.jpg

После настройки, подключаем услугу выбранному абоненту в главном окне программы – встаём на абонента нажимаем Ctrl+Y и в появившемся окне ставим галочку на нужную услугу. Там же есть и настройки почтового аккаунта. Я поступил очень просто. Прикрепил к купленному домену услугу от Yandex – Яндекс почта для вашего домена. В итоге имеем почтовые ящики вида имя@вашдомен.ru. Создаём ящик и вписываем сюда его данные. На мой взгляд правильней рассылать почту со своего домена.

Ris50.jpg

С турбо-кнопкой так же всё просто.

Ris51.jpg

Но что бы добавить абоненту услугу по нажатию Ctrl+Y, её нужно разрешить в свойствах тарифа, установленного у этого абонента.

Ris52.jpg

Обещанный платёж настраивается под свои требования. И так же, сначала, разрешается в свойствах тарифа.

6. Эпизод шестой. Личный кабинет абонента

В личном кабинете всё скромно, но информации достаточно. Абонент может просмотреть информацию по своему договору – номер, скорость, кредит, абонентскую плату, тариф и т.д. Из MikroBILL возможно создавать новости для абонентов. Ещё абонент сам может подключать услуги доступные его тарифному плану.

Ris53.jpg

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

Ris54.jpg

На данный момент всё работает стабильно, все настроенные функции работают.