В данном примере MikroTik выступает в роли DHCP-сервера, шейпера и файерволла. Поддержка IPoE-сессий у RouterOS отсутствует, поэтому пакетов RADIUS-аккаунтинга сервер доступа не отправляет, только запросы авторизации. Сбор данных о потреблённом абонентом трафике при такой схеме доступа можно выполнять, например, через агрегацию NetFlow.
Настройка провижининга
Теги
В разделе Справочники → Теги добавляем новые записи:
- Тег абонентский_порт для маркировки спецификаций номенклатурных позиций коммутаторов доступа.
- Тег интернет-тариф для маркировки пакетов услуг, оказываемых с использованием DHCP-сервера.
Операторское оборудование
В разделе Справочники → Номенклатура, в группе Все → ТМЦ → Активное оборудование → Коммутатор добавляем позицию для коммутатора доступа:
- Указываем модель коммутатора в полях Код и Наименование, например Cisco WS-C2950-24.
- Ставим флаги Может быть объектом и Операторское оборудование.
- Нажимаем Добавить.
Заполняем раздел Спецификация:
- В поле Тип выбираем позицию спецификации, например Порт.
- Поля Наименование и Кол-во заполняем в соответствии с используемой моделью оборудования.
- В поле Теги указываем созданный ранее тег абонентский_порт.
С помощью кнопки Добавить в разделе Оборудование → Активное оборудование создаём коммутатор доступа, к портам которого будет привязываться абонентское оборудование. На форме создания активного оборудования:
- В лукапе Тип выбираем созданную на предыдущем этапе номенклатурную позицию Cisco WS-C2950-24.
- Нажимаем кнопку Добавить — форма создания сменится формой редактирования, на которой в разделе Адреса указываем IP-адрес этого коммутатора:
- На вкладке Состав добавляем компоненты — порты, к которым будет привязываться абонентское оборудование:
Шаблон профилей операторского оборудования
В разделе Оборудование → Шаблоны профилей (необходимо право Провижининг → Редактирование шаблонов профилей) переходим на вкладку Операторское оборудование и создаём новый шаблон:
- В поле Теги номенклатурных позиций оборудования указываем тег абонентский_порт, которым ранее промаркировали спецификацию номенклатурных позиций коммутаторов доступа.
- Заполняем Наименование.
- Устанавливаем флаг Отправлять профили в очередь: профили по данному шаблону будут использоваться агентом HARD.
- Нажимаем на кнопку Добавить — форма создания шаблона сменится формой его редактирования:
Наполняем шаблон атрибутами с помощью кнопки Добавить на форме его редактирования:
Подстановка | Наименование | Параметры |
---|---|---|
Оборудование | Switch-Port-Number |
|
Адрес основного оборудования | Switch-IP-Address |
|
Профили будут формироваться для компонентов (портов), для которых коммутатор с привязанным к нему IP-адресом является основным оборудованием.
Автонумератор по умолчанию для кода компонентов активного оборудования — это Номер по порядку в разрезе спецификации и родительского объекта учета. Таким образом код компонента активного оборудования соответствует номеру порта реального коммутатора.
Меняем состояние шаблона на Активен и нажимаем Сохранить, после чего переформировываем профили по новому шаблону.
Открываем вкладку Профили операторского оборудования и убеждаемся, что профили сформировались корректно. Периоды действия профилей определяются периодами действия участвующих в них привязок адресов к оборудованию, поэтому в данном случае у каждого компонента должно быть два профиля:
Шаблон профилей абонентского оборудования
Маркируем в разделе Справочники → Номенклатура тегом интернет-тариф все пакеты услуг, оказываемые с использованием MikroTik IPoE:
В разделе Оборудование → Шаблоны профилей (необходимо право Провижининг → Редактирование шаблонов профилей) создаём новый шаблон:
- В поле Тип оборудования указываем номенклатурную позицию абонентского оборудования, например Оконечное оборудование.
- В поле Теги услуг выбираем тег, которым промаркировали на предыдущем этапе интернет-тарифы.
- Заполняем Наименование.
- В блоке Состояние услуги отмечаем все состояния: DHCP-сервер должен выдавать активным абонентам параметры доступа к сети при любом состоянии услуги. Единственным исключением является технологическое состояние Услуга заказана.
- Нажимаем на кнопку Добавить — форма создания шаблона сменится формой его редактирования:
Наполняем шаблон атрибутами с помощью кнопки Добавить на форме его редактирования:
Подстановка | Наименование | Параметры |
---|---|---|
Адрес компонента оборудования | IP-Address |
|
Состояние услуги | Service-Status |
|
Дочерняя строка приказа по ценам | Speed-Download-kbps |
|
Дочерняя строка приказа по ценам | Speed-Upload-kbps |
|
- В данном примере предполагается, что IP-адреса у всех абонентов статические.
Профили будут формироваться для Оконечного оборудования, а IP-адрес привязывается к его компоненту — используем подстановку Адрес компонента оборудования.
- Атрибуты с подстановкой Дочерняя строка приказа по ценам могут быть вычислены системой только когда по услуге выставлен инвойс — необходимо учитывать это при настройке агента HARD и команд управления MikroTik.
Абонентское оборудование (Оконечное оборудование) должно быть привязано к операторскому (порт коммутатора). При обработке DHCP-запроса будет подбираться профиль операторского оборудования по данным опции 82, а из него будет извлекаться привязанный профиль абонентского оборудования.
Меняем состояние шаблона на Активен и нажимаем Сохранить, после чего переформировываем профили по новому шаблону.
Открываем вкладку Профили абонентского оборудования, подписанного на промаркированный тегом интернет-тариф пакет услуг, и убеждаемся, что профили сформировались корректно. Периоды действия профилей определяются периодами действия участвующих в них привязок адресов к оборудованию, поэтому в данном случае у каждого оборудования с одним привязанным IP-адресом должно быть два профиля:
Шаблон конфигураций
В разделе Оборудование → Шаблоны конфигураций создаём новый шаблон:
- Заполняем Наименование, например IPoE-доступ через MikroTik.
- В поле Шаблон абонентского профиля выбираем созданный на предыдущем этапе шаблон MikroTik IPoE.
- В поле Шаблон операторского профиля выбираем ранее настроенный шаблон Абонентский порт коммутатора.
- В поле Тип привязки выбираем Сетевое соединение — именно с этим типом необходимо будет абонентское оборудование привязывать к портам коммутаторов.
- Устанавливаем флаг Удалять подстановки без значений из команд.
В разделе Команды вводим шаблоны команд для управления доступом абонента к сети Интернет через MikroTik:
Подключение/usr/local/hydra-scripts/mikrotik_control.py --action=activate --ip-address={NEXT.IP-Address} --next-down-speed-kbps={NEXT.Speed-Download-kbps} --next-up-speed-kbps={NEXT.Speed-Upload-kbps} --next-serv-status={NEXT.Service-Status}
Отключение/usr/local/hydra-scripts/mikrotik_control.py --action=drop --ip-address={PREV.IP-Address} --prev-down-speed-kbps={PREV.Speed-Download-kbps} --prev-up-speed-kbps={PREV.Speed-Upload-kbps} --prev-serv-status={PREV.Service-Status}
Изменение/usr/local/hydra-scripts/mikrotik_control.py --action=change --ip-address={NEXT.IP-Address} --prev-down-speed-kbps={PREV.Speed-Download-kbps} --next-down-speed-kbps={NEXT.Speed-Download-kbps} --prev-up-speed-kbps={PREV.Speed-Upload-kbps} --next-up-speed-kbps={NEXT.Speed-Upload-kbps} --prev-serv-status={PREV.Service-Status} --next-serv-status={NEXT.Service-Status}
Если необходимо в отдельных случаях дополнительно управлять коммутатором доступа, например включать и отключать абонентский порт, в данные шаблоны команд можно добавить подстановки с атрибутами
Switch-IP-Address
иSwitch-Port-Number
профилей операторского оборудования.- Нажимаем кнопку Добавить и форма создания шаблона сменяется формой его редактирования:
- Меняем состояние шаблона на Активен и нажимаем Сохранить.
На вкладке Привязки формы редактирования абонентского оборудования добавляем прямую привязку к нужному порту коммутатора:
В результате создания привязки при наличии активных профилей абонентского и операторского оборудования автоматически создаётся конфигурация по настроенному ранее шаблону. Проверяем её на вкладке Конфигурации формы редактирования оборудования:
Настройка брокера ActiveMQ
Установку и настройку производим в соответствии со статьёй Настройка брокера ActiveMQ.
Настройка агента HARD
Установку агента выполняем в соответствии со статьёй Установка агента HARD.
Общие параметры
Редактируем общий конфигурационный файл агента в соответствии с примером:
В данной конфигурации меняем значения параметров с паролями:
- Пароль базовой аутентификации модулей
hard.pm
иhard-dhcp.pm
сервера FreeRADIUS: ключfilters
→agent.basic_auth
→main
→password
. - Пароль пользователя базы данных кэша: ключ
connection_pools
→mongo
→main
→password
. - Пароль пользователя базы данных провижининга: ключ
connection_pools
→database
→main
→password
. - Пароль пользователя Гидры для доступа к приложению RADIUS-сервер: ключ
connection_pools
→database
→main
→hydra
→password
. - Пароль пользователя ActiveMQ: ключ
syncer
→stomp
→password
.
В MongoDB добавляем базу данных hard_cache
и пользователя hard
для неё в соответствии с описанным в статье Настройка агента HARD примером.
Экземпляр плагина base
Добавляем конфигурационный файл экземпляра mikrotik-ipoe-option82
плагина base
агента HARD в соответствии с примером:
Настройка сервера FreeRADIUS
Установку и настройку сервера FreeRADIUS выполняем в соответствии со статьёй Установка и настройка сервера FreeRADIUS. В модуле hard.pm
(файл /etc/freeradius/hard.pm
) указываем следующие параметры взаимодействия с агентом HARD:
# Параметры для связи с HARD my @HARD_API_URLS = ( # Пул API URL для запросов "http://127.0.0.1:11080/base/mikrotik-ipoe-option82" ); use constant HARD_AUTH_USER => "freeradius"; # Логин use constant HARD_AUTH_PASSWORD => "freeradius_password"; # Пароль
Пароль в константе HARD_AUTH_PASSWORD
укажите тот же, что задан в ключе filters
→ agent.basic_auth
→ main
→ password
конфигурации агента HARD.
Настройка агента HEX
Установку агента выполняем в соответствии со статьёй Настройка агента HEX. Конфигурационный файл приводим в соответствие с примером:
Добавляем на сервер указанный ранее в шаблонах команд скрипт /usr/local/hydra-scripts/mikrotik_control.py
для управления сервером MikroTik. Данный скрипт может быть написан на любом языке (расширение .py
указано здесь только для примера) — важно только, чтобы он мог выполняться агентом HEX локально на сервере. Агент HEX работает под пользователем hex
(hex-testing
для тестового экземпляра) — данному пользователю выдаём права на исполнение добавленного скрипта.
Сервером MikroTik скрипт может управлять через API RouterOS или же через консоль, подключаясь к серверу по SSH с аутентификацией по DSA или RSA ключу. Во втором случае ключ должен быть настроен для пользователя hex
(hex-testing
для тестового экземпляра агента).
В данной схеме изменения скорости доступа абонента к сети Интернет, а также блокировки и разблокировки, могут быть выполнены путём помещения IP-адресов абонентского оборудования в соответствующие адресные списки, использующиеся в конфигурации файерволла MikroTik.
Результат
Данные DHCP-опции 82 формируются коммутаторами доступа, которые передают DHCP-запросы абонентских устройств на MikroTik, выступающий в роли DHCP-сервера. MikroTik при получении DHCP-запроса, если подходящая запись об аренде IP-адреса в его кэше отсутствует или просрочена, выполняет RADIUS-запрос к серверу Гидры. В качестве RADIUS-сервера используется FreeRADIUS с Perl-модулем hard.pm
, который передаёт полученный запрос на обработку агенту HARD. Агент выполняет идентификацию абонентского оборудования по полученной DHCP-опции 82 и авторизует его в соответствии с состоянием оказания услуг на данном оборудовании.
В ответе для активного абонента серверу MikroTik отправляется статический IP-адрес, максимальный срок DHCP-аренды и наименование адресного списка, в который сервер должен включить выдаваемый IP. Наименование назначаемого адресного списка для активных абонентов формируется агентом динамически в соответствии с указанными в приказах по ценам Гидры значениями скорости трафика. Адресные списки определяются заранее в конфигурации сервера MikroTik и используются им для ограничения скорости доступа абонента к сети Интернет.
Если услуга абоненту не оказывается в связи с временной блокировкой или из-за нехватки средств, то в ответе серверу MikroTik отправляется IP-адрес и специальный адресный список alist_blocked
, для которого в MikroTik настроена переадресация HTTP-запросов абонента на страницу с информацией о блокировке.
При регистрации нового абонента, изменении состояния оказания услуги или ограничений скорости доступа (например, при превышении порога трафика для «турбобезлимитного» тарифа), а также при прекращении действия подписки на услугу по конфигурации провижинингом формируются команды для изменения параметров доступа абонентского IP-адреса: удаления записи о DHCP-аренде, перемещении IP-адреса в другой адресный список и т. д.