<div class="aui-message error aui-message-error">
<p class="title">
<span class="aui-icon icon-error"></span>
<strong>Comala Metadata License Details</strong>
</p>
<p>Invalid commercial evaluation license with a expired error. Please click <a href="https://marketplace.atlassian.com/plugins/org.andya.confluence.plugins.metadata" target="_blank">here</a> to purchase a commercial license.</p>
</div>
Описание
Модуль выполняет функции:
- Авторизации, аутентификации пользователей Wi-Fi, подключающихся при помощи BRAS (позволяет обслуживать пользователей, используя точки доступа сторонних производителей).
- Сбор аккаунтинга для всех механизмов авторизации и передача его в базу данных.
- Контроль за количеством одновременных сессий пользователей Wi-Fi для всех механизмов авторизации.
- Деаутентификация пользователей Wi-Fi , авторизующихся в режимах WPA-enterprise и через BRAS.
- Контроль за лицензией и сообщение о приближении к лимиту по времени использования (каждый день после истечения 90%) или по количеству сессий (каждый час при превышении 90% сессий) администратору.
Доступ к технической консоли можно получить по ссылке 'http://<ip address pcrf>:7070/pcrf'.
Управление сервисом
Действие | Команда | Ответ |
---|---|---|
Проверка состояния | service eltex-pcrf status | Сервис работает * eltex-pcrf process is running Сервис не работает * eltex-pcrf process is not running |
Запуск сервиса | service eltex-pcrf start | Сервис запустился * Starting eltex-pcrf Сервис уже работает * eltex-pcrf is already running |
Остановка сервиса | service eltex-pcrf stop | Сервис успешно остановлен * Stopping eltex-pcrf Сервис не остановлен, т.к. не был запущен * eltex-pcrf is not running |
Перезапуск сервиса | service eltex-pcrf restart | Сервис успешно перезапущен * Stopping eltex-pcrf * Starting eltex-pcrf * eltex-pcrf is not running * Starting eltex-pcrf |
Конфигурация
/etc/default/eltex-pcrf
Содержит базовые параметры для запуска приложения. Пример дефолтной конфигурации:
Параметры | Описание |
---|---|
# Location of java binary JAVA=/usr/bin/java | Расположение Java машины |
JAVA_INIT_HEAP=256m JAVA_MAX_HEAP=512m | Количество памяти, выделяемой на работу приложения |
/etc/eltex-pcrf/eltex-pcrf.json
{ "auth.address" : "0.0.0.0", "auth.port" : 31812, "auth.mac.open.timeout.s" : 3600, "auth.mac.welcome.service" : "WELCOME", "acct.address" : "0.0.0.0", "acct.ports" : [1813, 31813], "lease.saver.address" : "0.0.0.0", "lease.saver.port" : 4381, "aaa.instances" : 5, "aaa.host" : "127.0.0.1", "aaa.secret" : "testing123", "aaa.auth.port" : 1812, "aaa.acct.port" : 1813, "aaa.rest.port" : 7080, "aaa.timeout" : 10, "aaa.attempts" : 1, "web.monitoring.port" : 7070, "cluster.enable" : false, "cluster.eventBusPort" : 5801, "radius" : { "url": "jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false", "user": "javauser", "password": "javapassword", "max_pool_size": 16 }, "mongo.pcrf" : { "connection_string": "mongodb://localhost:27017/pcrf?waitQueueMultiple=500&connectTimeoutMS=10000&socketTimeoutMS=0", "db_name": "pcrf" }, "mongo.ott" : { "connection_string": "mongodb://localhost:27017/ott?waitQueueMultiple=500&connectTimeoutMS=10000&socketTimeoutMS=0", "db_name": "ott" }, "session.storage" : { "session.check.period.s" : 300, "unauth.store.time.s" : 600, "interval.number.expired" : 3, "min.interval.s" : 45, "default.interval.s" : 600 }, "bras.coa" : { "coa.timeout" : 10, "coa.attempts" : 1, "remote.coa.port" : 3799, "executor.size" : 100, "log.clean.period.s" : 600, "log.store.period" : { "period" : 14, "unit" : "D" } }, "sql.ems" : { "url": "jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false", "user": "javauser", "password": "javapassword", "max_pool_size": 16 }, "sql.wireless" : { "url": "jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false", "user": "javauser", "password": "javapassword", "max_pool_size": 16 }, "sql.auth.service" : { "url": "jdbc:mysql://localhost/eltex_auth_service?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&useSSL=false", "user": "javauser", "password": "javapassword", "max_pool_size": 4 }, "language" : "en", "radius.nbi" : { "wdsl.url" : "http://localhost:8080/axis2/services/RadiusNbiService?wsdl", "username" : "softwlc_service", "password" : "softwlc", "connection.timeout.ms" : 30000, "request.timeout.ms" : 120000 }, "tariffs.update.interval" : { "interval" : 1, "unit" : "hours" }, "bras.cron.update.interval": { "interval" : 1, "unit": "hours" }, "filters.cache.dir" : "/var/lib/eltex-pcrf/filters/", "clickhouse": { "url": "jdbc:clickhouse://localhost:8123/radius", "user_name": "javauser", "user_password": "javapassword" }, "accounting.options": { "use_clickhouse": false, "use_mysql": true, "batch_interval_ms": 300000, "max_queue_load": 100 } "generic.ap.registrar": { "max_aps_in_queue": 30, "ap_register_interval_ms": 60000, "added_ap_cache_ttl_ms": 600000, "host": "localhost", "port": 8080, "worker_pool_size": 8 } }
Параметры | Описание |
---|---|
Настройки авторизации | |
auth.address | Интерфейс сервера, ожидающий запросы на авторизацию |
auth.port | Порт сервера, на который принимаются запросы на атворизацию |
auth.mac.open.timeout.s | Длительность "открытой авторизации", используемая, если не переопределено в настройках портала |
auth.mac.welcome.service | Сервис доступа, используемый если не переопределен в настройках тарифа |
Настройки сбора аккаунтинга | |
acct.address | Интерфейс сервера, ожидающий аккаунтинг |
acct.port | Порт сервера, на который принимаются пакеты аккаунтинга |
Настройки для проведения авторизации Wi-Fi пользователей через BRAS | |
aaa.instances | |
aaa.host | Адрес сервиса Eltex.RADIUS |
aaa.secret | RADIUS key |
aaa.auth.port | порт на который отправляются запросы авторизации |
aaa.acct.port | порт на который отправляться пакеты аккаунтинга |
aaa.rest.port | Порта для обмена служебными командами с Eltex.RADIUS |
aaa.timeout | Время ожидания ответа |
aaa.attempts | количество попыток отправки пакетов |
Порт мониторинга | |
web.monitoring.port | Порт для работы технологической консоли и мониторинга |
Включение кластеризации | |
cluster.enable | Запуск кластеризации |
cluster.eventBusPort | Порт для обмена данными с нодами в кластере |
Настройки коннектов к БД MySQL ('radius', 'eltex_ems', 'wireless','sql.auth.service') | |
url | Строка подключения к базе данных Mysql |
user | Логин для подключения к БД |
password | Пароль для подключения к БД |
max_pool_size | Максимальное количество коннектов, которое можно открыть сервис для подключения |
Подключение к БД Mongo( 'pcrf', 'ott') | |
connection_string | URI для подключения к Mongo |
db_name | Название базы, к которой производится подключение (необходимо продублировать то, что указано в URI) |
Параметры хранения активных сессий в Mongo | |
session.check.period.s | Период проверки актуальности хранимых сессий. Если сессия закрыта во время проверки или время ее хранения истекло, она удаляется из базы. |
unauth.store.time.s | Период хранения сессий пользователей, созданных на BRAS, авторизация которых не была выполнена. |
interval.number.expired | Количество пропущенных интервалов аккаунтинга, после которого сессия считается "зависшей" и подлежит закрытию. |
min.interval.s | Минимальное значение интервала аккаунтига, которое используется для расчета зависших сессий. |
default.interval.s | Начальное значение интервала аккаунтига, которое сохраняется в сессию сразу после ее создания. |
Параметры отправки CoA | |
coa.timeout | время ожидания ответа на команду |
coa.attempts | количество повторных отправок |
remote.coa.port | порт, на который будут отправляться команды |
executor.size | количество одновременно выполняемых команд |
log.store.period | время хранения результатов |
log.store.period | время хранения логов выполнения команд |
Настройка языка для отображения ошибок | |
language | Язык, используемый пи логировании, дефолтное значение "en". Можно использовать "ru", однако логи переведены не все. |
Настройка подключения к сервису NBI | |
wdsl.url | Адрес для обращения на сервис NBI |
username | Логин от учетной записи |
password | Пароль от учетной записи |
connection.timeout.ms | Время ожидания при подключении к сервису |
request.timeout.ms | Время ожидания ответа при выполнении запроса на сервис |
Интервал обновления тарифных планов | |
interval | Интервал обновления тарифных планов |
unit | Единицы измерения интервала (по дефолту измеряется в часах "hours") |
Путь к директории с временными файлами списков URL | |
filters.cache.dir | Путь к директории |
Настройки коннектов к БД Yandex ClickHouse | |
url | Строка подключения к базе данных Yandex ClickHouse |
user_name | Логин от учетной записи |
user_password | Пароль от учетной записи |
Параметры сохранения аккаунтинга | |
use_clickhouse | Сохранять аккаунтинг в базу данных Yandex ClickHouse |
use_mysql | Сохранять аккаунтинг в базу данных MySQL |
batch_interval_ms | Интервал сохранения аккаунтинга в базу данных |
max_queue_load | Размер очереди при достижение которого запускается сохранение аккаунтинга в базу данных |
Параметры выгрузки generic AP, полученных из аккаунтинга по option 82 | |
max_aps_in_queue | Максимальное число generic AP в очереди на добавление, по достижении которого начнется их выгрузка в EMS |
ap_register_interval_ms | Интервал времени (мс), по достижении которого начнется выгрузка generic AP в EMS, находящихся в очереди |
added_ap_cache_ttl_ms | Интервал времени (мс), в течение которого для выгруженных или обновленных generic AP не будет выполняться попытка выгрузить их в EMS |
host | IP-адрес, на котором находиться EMS-NBI |
port | порт, на котором находится EMS-NBI |
worker_pool_size | Количество выделенных потоков, задействованных для добавления GenericAP |
/etc/eltex-pcrf/hazelcast-cluster-network.xml
В данном файле содержится его конфигурация кластера Hazelcast, используемого для объединения отдельных нод PCRF.
Пример дефолтной конфигруации разделов group и network (содержащих параметры для подключения к соседним нодам PCRF):
<hazelcast> <!-- You can separate your clusters in a simple way by specifying group names. --> <group> <name>dev</name> </group> <network> <!-- Write here public address of the node --> <public-address>192.168.0.1</public-address> <port auto-increment="false" port-count="100">5701</port> <outbound-ports> <ports>0</ports> </outbound-ports> <join> <multicast enabled="false"/> <tcp-ip enabled="true"> <!-- Write here IP of all members of the cluster (including this) --> <member>192.168.0.1</member> <member>192.168.0.2</member> </tcp-ip> <discovery-strategies> </discovery-strategies> </join> <interfaces enabled="true"> <!-- Write here IP of the interface to use for cluster --> <interface>192.168.0.1</interface> </interfaces> <ssl enabled="false"/> <socket-interceptor enabled="false"/> <symmetric-encryption enabled="false"> <algorithm>PBEWithMD5AndDES</algorithm> <!-- salt value to use when generating the secret key --> <salt>thesalt</salt> <!-- pass phrase to use when generating the secret key --> <password>thepass</password> <!-- iteration count to use when generating the secret key --> <iteration-count>19</iteration-count> </symmetric-encryption> </network> </hazelcast>
Параметры | Описание |
---|---|
<name>dev</name> | Имя ноды, должно быть одинаковым на всех устройствах. Если узлы с разными именами, то в кластер не обьединяются. |
<public-address>192.168.0.1</public-address> | Собственный адрес ноды в кластере |
<member>192.168.0.1</member> <member>192.168.0.2</member> | Список нод, состоящик в кластере(указывать как собственный адрес, так и всех нод состоящих в кластере) |
<interface>192.168.0.1</interface> | Адрес интерфейса ноды в кластере (как правило равен public-address) |