Page tree
Skip to end of metadata
Go to start of metadata

<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-pcr

Сервис не остановлен, т.к. не был запущен

 * 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


Содержит базовые параметры для запуска приложения. Пример дефолтной конфигурации:

# Eltex.PCRF Server daemon parameters

# Location of java binary
JAVA=/usr/bin/java

# Initial size of Java heap
JAVA_INIT_HEAP=256m
# Maximum size of Java heap
JAVA_MAX_HEAP=512m

# To monitor via JMX - jconsole to host:port
#JMX_OPTS="-Dcom.sun.management.jmxremote \
#-Dcom.sun.management.jmxremote.port=8085 \
#-Dcom.sun.management.jmxremote.authenticate=false \
#-Dcom.sun.management.jmxremote.ssl=false \
#-Djava.rmi.server.hostname=127.0.0.1"

# Options for Java Garbage Collector
GC_OPTS="-XX:+UseParallelGC \
-XX:+PrintGCDateStamps \
-XX:+PrintGCDetails \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=7 \
-XX:GCLogFileSize=5M \
-Xloggc:/var/log/eltex-pcrf/gc.log"
# Without log
#GC_OPTS="-XX:+UseParallelGC"

# Additional arguments to pass to java
HEAP_DUMP_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-pcrf"

# Summary JAVA_OPTS used by daemon
JAVA_OPTS="$JMX_OPTS $GC_OPTS $HEAP_DUMP_OPTS"

# Send notification
#NOTIFICATION_ADDR="admin@mail.loc"
ПараметрыОписание
# 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&relaxAutoCommit=true&connectTimeout=5000&autoReconnect=true",
    "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&relaxAutoCommit=true&connectTimeout=5000&autoReconnect=true",
    "user" : "javauser",
    "password" : "javapassword",
    "max_pool_size" : 16
  },

  "sql.wireless" : {
    "url" : "jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&autoReconnect=true",
    "user" : "javauser",
    "password" : "javapassword",
    "max_pool_size" : 16
  },

  "ngw" : {
    "host" : "localhost",
    "port" : 8040
  },

  "language" : "en",

  "radius.nbi" : {
    "wdsl.url" : "http://localhost:8080/axis2/services/RadiusNbiService?wsdl",
    "username" : "admin",
    "password" : "password",
    "connection.timeout.ms" : 30000,
    "request.timeout.ms" : 120000
  },

  "tariffs.update.interval" : {
    "interval" : 1,
    "unit" : "hours"
  }

}


ПараметрыОписание
Настройки авторизации
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')
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

время хранения логов выполнения команд

Параметры взаимодействия с NGW
host
Адрес сервиса Notification GW
port

Порт, на который принимаются запросы уведомлений

Настройка языка для отображения ошибок
language
Язык, используемый пи логировании, дефолтное значение "en". Можно использовать "ru", однако логи переведены не все.
Настройка подключения к сервису NBI
wdsl.url
Адрес для обращения на сервис NBI
username
Логин от учетной записи
password
Пароль от учетной записи
connection.timeout.ms
Время ожидания при подключении к сервису
request.timeout.ms
Время ожидания ответа при выполнении запроса на сервис
Интервал обновления тарифных планов  (функционал не полностью поддержан в релизе 1.9)
interval
Интервал обновления тарифных планов
unit
единицы измерения интервала (по дефолту измеряется в часах "hours")



/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)


  • No labels