Интеграция АСР LANBilling и оборудования Mikrotik (PPPoE)
Рассмотрим одну из самых распространенных технологий предоставления доступа в интернет - PPPoE. В качестве PPPoE сервера будет выступать популярное среди небольших ISP оборудование вендора Mikrotik.
Схема рассматриваемой сети представлена на Рис.1
Рис. 1 (Схема сети)
1. Базовая настройка АСР
Предполагается, что была выполнена установка и базовая настройка АСР. В противном случае необходимо обратиться к нашей документации, подробно описывающей данные процессы, а так же общую архитектуру системы: Документация.
2. Выдача IP адресов клиентам
В данной статье будут описаны настройки, при которых задача управления выдачей IP адресов ложится на сторону АСР. Стоит заметить, что в связи со спецификой реализации RADIUS в RouterOS, а именно отсутствующим атрибутом ID сессии (Acct-Session-Id) в пакетах Access-Request, мы не рекомендуем использовать динамическое распределение IP адресов. Поэтому здесь будет рассмотрен вариант выдачи статического IP адреса, указанного в свойствах учетной записи абонента.
В свою очередь, более простой вариант - с выдачей IP адресов средствами внутреннего DHCP сервера Mikrotik, так же возможен, но нами рассмотрен не будет.
3. Настройка RADIUS-агента
Приступим к настройке RADIUS-агента АСР (LBarcd). Основная конфигурация показана на Рис. 2
Рис. 2 (Настройка агента)
Обратим внимание на параметры:
«Интервал между Interim-UPDATE запросами аккаунтинга» - интервал в секундах между Accounting-Update пакетами.
«Тайм-аут зависшей сессии (сек)» - интервал в секундах между временем обработки последнего Accounting-Update пакета и текущим временем, при превышении которого сессия считается устаревшей. Минимально допустимым значением считается удвоенный интервал Interim-UPDATE. Максмимально допустимым - 86400 сек., т.е. 1 день.
«Запускать script_stop для зависших сессий» - необходим для запуска внешнего скрипта с целью принудительного разрыва устаревших сессий или отправки Disconnect-Request через внутренний механизм CoA.
«Запускать script_stop при изменении текущей скорости» - необходим для запуска внешнего скрипта с целью изменения скорости доступа или отправки через внутренний механизм CoA скоростных атрибутов для изменения текущей скорости без разрыва сессии.
Для настройки взаимодействия между RADIUS-агентом и роутером необходимо добавить Mikrotik в качестве сервера доступа (NAS). Для этого в форме редактирования настроек RADIUS-агента открыть раздел «Серверы доступа» и добавить новый сервер доступа. Требуется указать IP адрес и RADIUS secret которые будут использоваться при общении NAS и биллинга. Методом аутентификации будет выступать login (Рис.3).
Рис. 3 (Управление серверами доступа)
Следующим шагом будет создание IP подсети PPPoE клиентов в АСР. Для этого откроем раздел «Управление сетями» и добавим желаемую подсеть, указав адрес самой сети, маску и шлюз (Рис.4).
Рис. 4 (Управление сетями)
4. Настройка CoA (Change of Authorization)
Управление параметрами сессии абонента реализуется через запуск внешнего скрипта. Возможности его применения в АСР достаточно обширны, мы будем использовать только установку скорости доступа в момент старта сессии, изменение скорости без разрыва сесии и разрыв PPPoE соединения по таймауту или команде менеджера АСР.
Путь к скрипту handler указывается в конфигурационном файле RADIUS-агента (например, handler = /usr/local/billing/handler_mikrotik_pppoe.sh). Код handler можно написать на любом скриптовом языке программирования, минимальный рабочий пример на shell можно скачать по ссылке.
5. Завершение настройки АСР
Для завершения настройки АСР требуется создать учетную запись. Не забываем указать в настройках сети для учетной записи статический IP. О том, как это сделать, можно прочесть в стандартной документации: в разделе "Учетные записи".
6. Настройка Mikrotik
Создадим отдельный логический интерфейс Bridge, в который в последующем включим физический порт, направленный в сторону абонентской домовой сети. (Рис.5).
Рис. 5 (Настройка Bridge для PPPoE)
В нашем случае, абоненты будут располагаться за интерфейсом ether4. Исключим его из стандартного bridge-local и перенесем в только что созданный pppoe_bridge (Рис.6).
Рис. 6 (Настройка Ethernet интерфейса)
Перейдем к настройке RADIUS клиента. Необходимо указать IP адрес агента LBarcd, secret и порты для отправки запросов авторизации и аккаунтинга. В качестве сервисов необходимо выбрать ppp.
Рис. 7 (Настройка RADIUS клиента)
Дополнительно необходимо активировать прием RADIUS клиентом Mikrotik запросов CoA (Рис.7)
Рис. 8 (Настройка приемы RADIUS CoA)
Добавим профиль для PPPoE сервера(Рис.9) В качестве Local Address должен быть указан шлюз по умолчанию, ранее внесенный нами в настройки пула адресов в АСР. В параметре Bridge укажем созданный ранее логический интерфейс
Мы намеренно отключили часть протоколов, поскольку в нашей схеме они использоваться не будут. С целью минимизации нагрузки на роутер были отключены так же сжатие и шифрование
Рис. 9 (Настройка профиля PPPoE сервиса)
Создадим новый PPPoE сервер для интерфейса pppoe_bridge (Рис.10) Зададим значения MTU и созданный ранее профиль сервиса. Форма редактирования позволяет так же выбрать желаемые методы аутентификации.
Рис. 10 (Настройка профиля PPPoE сервера)
Поскольку базово RouterOS предполагает создание локальных PPPoE пользователей, необходимо дополнительно активировать RADIUS авторизацию. Сделать это можно на вкладке PPP - Secrets в форме «PPP Authentication&Accounting» (Рис.11) Указываем использование RADIUS, аккаунтинг и Interim-UPDATE.
Рис. 11 (Настройка аутентификации и аккаунтинга)
7. Заключение
На этом настройку можно считать законченной. При желании возможно дополнить конфигурацию сбором Netflow статистики, правилами редиректа на страницу-заглушку при отрицательном балансе, добавить поддержку IPv6 адресации.
Более полно об оборудовании Mikrotik и его настройке можно узнать из официальной документации.