Описание
Модуль Eltex-APB предназначен для обмена информацией между точками доступа. Обеспечивает:
- Роуминг пользователей, подключившихся при помощи авторизации на WEB-портале
- Настройку и передачу списков белых адресов при портальной авторизации
Управление сервисом
Установка сервиса
apt-get install eltex-apb
Способ запуска/остановки:
Действие | Команда | Ответ |
---|---|---|
Проверка состояния | service eltex-apb status | Сервис работает eltex-apb is running with pid <pid> Сервис не работает eltex-apb is not running |
Запуск сервиса | service eltex-apb start | Сервис запустился Starting eltex-apb ... eltex-apb started Сервис уже работает eltex-apb is already running |
Остановка сервиса | service eltex-apb stop | Сервис успешно остановлен Stopping eltex-apb ... eltex-apb stopped Сервис не остановлен, т.к. не был запущен eltex-apb is not running rm: cannot remove '/var/run/eltex-apb.pid': No such file or directory |
Перезапуск сервиса | service eltex-apb restart | Сервис успешно перезапущен Stopping eltex-apb ... eltex-apb stopped Starting eltex-apb ... eltex-apb started |
Просмотр точек доступа, которые находятся под управлением сервиса:
http://localhost:8090/apb/ap.jsp
Просмотр пользователей, которые находятся под управлением сервиса:
http://localhost:8090/apb/users.jsp
Конфигурация
/etc/default/eltex-apb
Содержит параметры, необходимые для инициализации сервиса.
- Слушаемый порт:
PORT=8090
- Длина очереди запросов. При заполнении очереди, новые запросы будут игнорироваться сервером, пока старые запросы не будут обработаны (по дефолту очередь не будет накапливаться):
ACCEPT_QUEUE_SIZE=0
- Максимальный размер буфера сообщения, в байтах:
MAX_TEXT_MESSAGE_BUFFER_SIZE=262144
Настройка памяти, выделяемой на работу сервиса (память выделяется на сам процесс, а не на кэш, прописанный в /etc/eltex-apb/ehcache.xml):
JAVA_INIT_HEAP=128m JAVA_MAX_HEAP=2048m
/etc/eltex-apb/apb.properties
Содержит основные настройки сервиса.
- Настройки для подключения к сервису Mercury:
mercury.host=localhost mercury.port=6565 mercury.pool.size=100
- Расположение необходимых файлов:
# Config filePath to cache cache.config=/etc/eltex-apb/ehcache.xml # list of permitted files to hosts.file=/etc/eltex-apb/hosts.json
- Время ожидания запроса подписки после подключения точки доступа к серверу, в секундах:
# Timeout waiting for subscribe-request after connecting the access point to the server, in seconds subscribe.idle.timeout=60
- Время, в течение которого сессия остается открытой без отправки сообщений:
# Timeout during that the session will stay opened without receiving any message message.idle.timeout=9
- Интервал отправки пингов:
# Interval of ping to be sent to the websocket session ping.idle.timeout=30
- Максимальное количество исходящих сообщений для очереди на каждый сеанс:
# Maximum count of outgoing messages to queue for each session session.outgoingQueue=100
- Данные для учетной записи NBI:
nbi.client.login=admin nbi.client.password=password
/etc/eltex-apb/ehcache.xml
Содержит системные настройки хранения данных о Wi-Fi-пользователях, подключенных на портале. При необходимости название и расположение файла может быть изменено в /etc/eltex-apb/apb.properties.
- Количество оперативной памяти, выделяемое для хранения таблицы авторизованных пользователей настраивается параметром "maxBytesLocalHeap" в разделе:
<cache name="users" maxBytesLocalHeap="200M" eternal="false" timeToLiveSeconds="43200" memoryStoreEvictionPolicy="LRU"> . . . </cache>
- Количество оперативной памяти, выделяемое для хранения таблицы с белыми списками настраивается параметром "maxBytesLocalHeap" в разделе:
<cache name="hosts" maxBytesLocalHeap="128M" eternal="true"> <persistence strategy="none"/> </cache>
/etc/eltex-apb/hosts.json
Cодержит набор списков белых адресов. В данном конфигурационном файле выполняется настройка белых списков (списки IP-адресов, на который можно перейти до авторизации на портале). При необходимости название и расположение файла может быть изменено в /etc/eltex-apb/apb.properties. По умолчанию данный список является пустым.
Пример заполнения файла:
[ { "mobility-domain-list": [ { "mobility-domain": "nsk.ru", "radius-domain": "root", "ssid": "Eltex-Local" } ], "permitted-ip-list": [ "eltex.nsk.ru", "eltex.org" ] }, { "permitted-ip-list": [ "esia-portal1.test.gosuslugi.ru", "esia.gosuslugi.ru", ] } ]
- Белый список, общий для всех подключенных точек задается в формате:
[{ "permitted-ip-list": [ "esia-portal1.test.gosuslugi.ru", "esia.gosuslugi.ru", ] }]
- Белый список, который назначается на точки с определенным SSID и доменом, записывается в следующем формате:
[{ "mobility-domain-list": [ { "mobility-domain": "nsk.ru", "radius-domain": "root", "ssid": "Eltex-Local" } ], "permitted-ip-list": [ "eltex.nsk.ru", "eltex.org" ] }]
Запись в приведенном выше конфигурационном файле говорит о том, что если на сервис поступит информация о пользователе, чьим mobility-domain является nsk.ru, radius-domain является root, а ssid – Eltex-Local, то данному пользователю до авторизации на портале помимо адресов из общего белого списка, будут доступны адреса eltex.nsk.ru и eltex.org. Другими словами, адреса, находящиеся в «permitted-ip-list», будут доступны пользователю, в случае полного совпадения всех ключей, описанных в рамках одного «mobility-domain-list».
Если параметры пользователя удовлетворяют критериям нескольких правил, ему будут разрешены для доступа IP-адреса из всех таких правил.
В параметр "mobility-domain" вносится значение параметра "ap-location" точки доступа, который находится в разделе сетевых настроек.
/etc/eltex-apb/log4j2.xml
Содержит настройки логирования.
- Автоматическое перечитывание конфигурации логгера:
<Configuration status="OFF" monitorInterval="10">
- Уровень логирования:
<Property name="rootLevel">${env:LOG_LEVEL:-INFO}</Property>
- Базовая директория хранения логов:
<Property name="baseDir">/var/log/eltex-apb</Property>
- Максимально допустимый размер файла (при его превышении создается новый файл. а старый архивируется):
<Property name="maxFileSize">20 MB</Property>
- Суммарный размер логов (текущий файл + архивные). При его превышении наиболее старые файлы будут удаляться:
<Property name="accumulatedFileSize">100 MB</Property>
- Срок хранения логов, файлы модифицированные раннее этого срока будут удаляться:
<Property name="lastModified">4d</Property>
- Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
<Property name="maxCount">7</Property>
- Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
<Property name="gelfLevel">${env:GELF_LEVEL:-OFF}</Property> <Property name="gelfHost">${env:GELF_HOST:-udp:lab3-test.eltex.loc}</Property> <Property name="gelfPort">${env:GELF_PORT:-12201}</Property>
Настройка подключения точек доступа к сервису APB
Подключение к сервису APB на точке доступа можно настроить через GUI EMS.
Для настройки роуминга пользователей при портальной авторизации необходимо перейти в раздел Конфигурация → Captive Portal.Global, указать адрес Roaming Service URL в формате: "<IP-aдрес_apb>:8090". IP-aдрес APB должен быть доступным из сети управления точками доступа.
Также настройте «Roaming no action timeout» (время, через которое ТД удалит устаревшие/неактивные записи о клиентах в роуминге). Параметр «Roaming no action timeout» должен быть не меньше максимальной длительности тарифного плана.
Затем во вкладке «Виртуальные точки доступа» необходимо открыть настраиваемый SSID и в блоке настроек Captive Portal указать «User Mobility Domain» (должен быть одинаковым для всех точек доступа, которые будут участвовать в роуминге).