Версия документа | Дата выпуска | Содержание изменений |
Версия 1.0 | 21.08.2017 | Первая публикация. |
Версия 1.1 | 21.09.2017 | Выгрузка в СОРМ-3 изменений в записях пользователей Wi-Fi |
Версия 1.3 | 24.10.2017 | Добавление данных оператора в выгрузку СОРМ-3 |
Версия 1.4 | 07.12.2017 | Добавление параметра sorm3.enabled |
Версия 1.6 | 27.02.2018 | Корректировка п.6.3.3 |
Версия 1.7 | 20.04.2018 | Формата даты приведен к виду yyyy-MM-dd HH:mm:ss |
| Версия 1.8 | 14.05.2019 | Добавлен DPI |
| Версия 1.9 | 04.02.2021 | |
| Версия 1.10 | 06.06.2022 | Корректировка формулировок п.5.1.3 Удаление информации об увеличении буфера сетевых соединений |
| Версия 1.11 | 09.11.2022 | Обновление и дополнение информации в п. 5.6 Настройка IP-адресов региональных съемников в ЛК B2B |
Модули Eltex-sorm2-replicator и Eltex-radius-sorm3 формируют выгрузки для внешних системы. По выгружаемым данным можно определить местоположение точки доступа.
![]()
Рисунок 1 – Общая сетевая топология решения
Между ESR и точками доступа поднимаются SoftGRE-туннели сквозь L3-инфраструктуру оператора. От каждой точки доступа формируется два туннеля: Management-туннель для передачи трафика управления и Data-туннель для передачи абонентского трафика.
Внутри Management-туннеля передается трафик управления точкой доступа в отдельной сети управления. Данная подсеть невидима для L3-сегмента оператора, скрываясь за заголовками GRE-туннеля. Внутри Data-туннеля передается абонентский трафик. Этот трафик терминируется на ESR и далее маршрутизируется в сеть оператора (в сторону его NAT).

Рисунок 3 – Порядок прохождения трафика в схеме ТД «Элтекс»
Данная схема актуальна:
При прохождении авторизации на WEB портале, HTTP запросы пользователя проксируются в ТД. После прохождения авторизации весь трафик клиента будет идти с IP-адреса (User IP), который он получил по DHCP.

Рисунок 2 – Порядок прохождения трафика в схеме BRAS
Данная схема актуальна:
Клиент, подключается к открытому SSID, отправляет DHCP запрос. Этот запрос проходя через ESR-10 инкапсулируется в GRE туннель и передается к ESR. На ESR DHCP-relay перенаправляет запросы к серверу SoftWLC. Ответ проходит в обратном направлении до клиента. Клиенту выдается IP адрес.
При прохождении авторизации на WEB портале, HTTP запросы пользователя проксируются в ESR, при этом происходит замена Source адреса (USER IP) клиента на адрес ESR (PROXY IP). Поэтому между ESR и SoftWLC весь HTTP(S) трафик будет идти с IP адресом ESR а не клиента. Весь остальной трафик будет идти с USER IP адресом.
После прохождения авторизации, весь трафик пользователя в сторону NAT, будет идти без подмены Source адреса (USER IP). Если используется функционал URL фильтрация, то после прохождения авторизации HTTP(S) трафик пользователя проксируются в ESR, при этом происходит замена Source адреса (USER IP) клиента на адрес ESR (PROXY IP). Поэтому между ESR и NAT весь HTTP(S) трафик будет идти с IP адресом ESR а не клиента. Весь остальной трафик будет идти с USER IP адресом. При прохождении через NAT, для трафика пользователя будет устанавливаться «Белый» IP адрес NAT.
При снятии трафика СОРМ, должна учитываться эта реализация.
На ТД «Элтекс» настроены SSID с авторизацией Enterprise, данные RADIUS accounting передаются с ТД в GRE туннеле до ESR (в VRF AP), а затем к SoftWLC в (VRF Baskbone).
На ТД «Элтекс» c Hotspot авторизацией данные RADIUS accounting передаются с ТД в GRE туннеле до ESR (в VRF AP), а затем к SoftWLC в (VRF Baskbone).
На ТД «Элтекс» c Hotspot авторизацией и интеграцией с HotWiFi данные RADIUS accounting формируются на ESR (BRAS), а затем передаются к SoftWLC в (VRF Baskbone).
На ТД других производителей, включенных через ESR в режиме client, с Hotspot авторизацией, данные RADIUS accounting формируются на ESR (BRAS), а затем передаются к SoftWLC в (VRF Baskbone).
Таким образом весь accounting трафик проходит через VRF Backbone, от регионального ESR к SoftWLC.
![]()
Рисунок 4 – Порядок прохождения RADIUS accounting через сеть оператора

Рисунок 5 – Порядок прохождения RADIUS accounting в системе SoftWLC
Точка доступа отправляет RADIUS трафик в SoftWLC. В процессе инициализации точка доступа получает имя домена в котором она расположена. Данный параметр передается в VSA атрибуте Eltex-AP-Domain. Пример трафика:
Frame 1: 504 bytes on wire (4032 bits), 504 bytes captured (4032 bits)
Ethernet II, Src: fa:16:3e:58:4b:2a (fa:16:3e:58:4b:2a), Dst: CheckPoi_40:60:11 (00:1c:7f:40:60:11)
Internet Protocol Version 4, Src: 101.162.18.73, Dst: 102.64.72.47
User Datagram Protocol, Src Port: 45104, Dst Port: 1813
RADIUS Protocol
Code: Accounting-Request (4)
Packet identifier: 0x92 (146)
Length: 462
Authenticator: 3d3f046a69a6139085332513faf1cd84
Attribute Value Pairs
AVP: t=Acct-Session-Id(44) l=19 val=1AEE23D5-4650EBAB
AVP: t=Framed-IP-Address(8) l=6 val=101.109.144.137
AVP: t=Acct-Status-Type(40) l=6 val=Interim-Update(3)
AVP: t=User-Name(1) l=14 val=908d6c222fdb
AVP: t=Service-Type(6) l=6 val=Framed(2)
AVP: t=Vendor-Specific(26) l=74 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=NAS-IP-Address(4) l=6 val=10.21.128.245
AVP: t=Event-Timestamp(55) l=6 val=Sep 01, 2021 17:58:58.000000000 +07
AVP: t=NAS-Port-Id(87) l=3 val=1
AVP: t=Called-Station-Id(30) l=33 val=E0-D9-E3-8C-93-40:UK_SF_142
AVP: t=Calling-Station-Id(31) l=19 val=90-8D-6C-22-2F-DB
AVP: t=NAS-Port-Type(61) l=6 val=Wireless-802.11(19)
AVP: t=Acct-Session-Time(46) l=6 val=2401
AVP: t=Acct-Input-Packets(47) l=6 val=3875
AVP: t=Acct-Output-Packets(48) l=6 val=3875
AVP: t=Acct-Input-Octets(42) l=6 val=928215
AVP: t=Acct-Input-Gigawords(52) l=6 val=0
AVP: t=Acct-Output-Octets(43) l=6 val=950863
AVP: t=Acct-Output-Gigawords(53) l=6 val=0
AVP: t=Vendor-Specific(26) l=9 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=9 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=9 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=9 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=9 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=74 vnd=Eltex Enterprise, Ltd.(35265)
Type: 26
Length: 74
Vendor ID: Eltex Enterprise, Ltd. (35265)
VSA: t=Eltex-AP-Domain(24) l=68 val=142-023_office_15.Dzerzhinsk.Nizhegorodskaya_obl.access_point.root
AVP: t=Acct-Authentic(45) l=6 val=Local(2)
AVP: t=NAS-Identifier(32) l=19 val=00-00-00-00-00-00
AVP: t=NAS-Port(5) l=6 val=0
AVP: t=Connect-Info(77) l=23 val=CONNECT 0Mbps 802.11a
AVP: t=Vendor-Specific(26) l=12 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=17 vnd=Eltex Enterprise, Ltd.(35265) |
Eltex-sorm2-replicator ищет параметры заданного домена в базе данных для определения: гео данных, адрес съемника и т.д.. RADIUS пакет экспортируется в csv файл и дополняется полученными данными из базы данных
Если в RADIUS трафике отсутствует поле Eltex-AP-Domain, то поиск ведет по поля NAS-IP-Address, аналогично прошлому пункту.
BRAS может перекладывать option82 из DHCP пакетов в RADIUS, дополнительно формируется VSA атрибут CELL. Обогащение RADIUS трафика выполняется в формате, определенном в RFC4679.
CELL это md5sum двух VSA атрибутов l2-interface и option82 (если присутствует). Атрибуты l2-interface и option82 неизменны в рамах одной локации. Для определения локации можно анализировать один атрибут CELL постоянной длины.
|
Добавление GenericAP происходит автоматически, PCRF получает пакет c option82, находит SSID и проверять необходимость в option82. Если опция включена в SSID, то добавление новой GenericAP ставится в очередь. GenericAP попадает в "песочницу",
Eltex-sorm2-replicator является дополнительным модулем системы SoftWLC. Основные задачи данного модуля:
На серверах принимающих RADIUS accounting в системе SoftWLC, средствами iptables нужно настроить пересылку всего потока RADIUS accounting c DST портов 1813 и 31813 в сторону Eltex-sorm2-replicator на DST порт 41813. Eltex-sorm2-replicator принимает данный поток, извлекает данные RADIUS протокола формирует csv выгрузку и определяет адрес съемника для дальнейшей пересылки пакета. Адрес съемника задается в настройках домена в системе SoftWLC (ЛК B2B). Поиск съемника осуществляется вверх по дереву (от домена точки доступа во всех родительских узлах). Таким образом настроить съемник нужно только в доменах уровня МРФ или только в корневом домене, если съемник используется один. Можно задать глобальный адрес съемника в конфигурации сервиса Eltex-sorm2-replicator.federated
Информация о домене может быть найдена (в порядке уменьшения приоритета):
После получения данных формируется пакет и отправлять на IP-адрес регионального съёмника, IP-адрес, DST порт и ключ RADIUS берутся из настроек съемника (ЛК B2B). Таким образом в регион уходит трафик предназначенный только для него, а не весь поток RADIUS accounting. Если настроена глобальная пересылка, то пакет уходит на съемник из конфигурации сервиса тоже.
Информация по соединениям абонентов выгружается в файл:
где N ‐ IP‐адрес Eltex-sorm2-replicator в HEX, с которого выгружается данный файл.
При выставлено флаге DPI в EMS, Eltex-sorm2-replicator добавляется атрибут Eltex-DPI-Step-logic и отправляет обогащенный трафик на указанный съемник, далее по данному флагу будет происходить анализ трафика на стороне DPI.
| Если ни одним из способов не удалось найти Ap-Domain точки доступа, то трафик не может быть отправлен на Региональный съемник (привязки которых настраиваются в пункте 4.6). Однако, в этом случае трафик все равно может быть отправлен на Глобальный съемник (global.clients в eltex-sorm2-replicator.json), если хотя бы один из них настроен в конфигурации. Глобальный съемник получает весь трафик, обрабатываемый sorm2-relicator'ом. |
Eltex-radius-sorm3 является дополнительным модулем системы SoftWLC. Основная задача данного модуля – подготовка и выгрузка данных об абонентах и базовых станциях на FTP сервер для системы ИС СОРМ «Январь» (МФИ-СОФТ). Работу данного модуля можно разделить на две части:
Доступ к базе данных, в которой хранится информация об абонентах осуществляется через общий Northbound-интерфейс системы, по протоколу SOAP/XML (спецификация представлена в отдельном документе). Доступ к данному API – это обязательное условие работы модуля Eltex-radius-sorm3. Настройка доступа (URL) производится в системных настройках модуля. Запрос информации производится раз в сутки в 04:00.
Информация об hotspot абонентах выгружается в файлы:
Информация об enterprise абонентах выгружается в файлы:
Информация о ваучерах выгружается в файлы:
Информация о WIFI-базовых станциях выгружается в файлы:
Тип выгрузки – инкрементальный. В первой выгрузке содержатся все записи, в последующих измененные и новые записи. Данные о базовых станциях выгружаются каждый раз в полном объеме.
2. Загрузка сформированных данных на FTP сервер.
Добавление ключа
# sudo wget -O - http://archive.eltex.org/wireless/repo.gpg.key | sudo apt-key add - |
Добавление softwlc-1.35-common:
# echo "deb http://archive.eltex.org/wireless/ softwlc-1.35-common main" >> /etc/apt/sources.list.d/eltex.list |
Установку нужно производить на ОС: Linux Ubuntu Server 18.04 x64 LTS. Для корректного формирования выгрузок, нужно настроить время и часовой пояс. Для работы модуля необходимо установить Oracle JDK8.
Для установки Oracle JDK8 нужно выполнить следующие команды:
$ sudo apt install openjdk-8-jdk |
Проверяем версию java:
tester@ubuntu:~$ java -version openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode) |
Установка пакета:
Обновляем список пакетов
# apt update |
Устанавливаем пакет
# apt install eltex-sorm2-replicator |
После установки пакет нужно настроить и перезапустить сервис. При обновление пакета требуется ручной запуск. Конфигурационный файл лежит в директории /etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json
{
"acct.address" : "0.0.0.0",
"acct.port" : [41813],
"acct.receive.buffer.byte" : 134217728,
"web.monitoring.port" : 7071,
"cluster.enable" : false,
"cluster.eventBusPort" : 5802,
"radius" : {
"url": "jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"sql.ems" : {
"url": "jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&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&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"sql.sorm2" : {
"url": "jdbc:mysql://localhost/eltex_sorm2?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"sql.pcrf" : {
"url": "jdbc:mysql://localhost/eltex_pcrf?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"global.clients" : {
"enabled" : false,
"clients" : [
{ "host" : "127.0.0.1", "port" : 11813, "secret": "eltex" }
]
},
"sorm3" : {
"enabled" : true,
"host" : "127.0.0.1",
"port" : 21,
"period_s" : 900,
"user" : "ftp",
"pass" : "ftp",
"acct_dir" : null
},
"sorm2" : {
"enabled" : true,
"federated" : false
},
"dpi.step.logic" : {
"enabled" : false,
"verbose" : false
}
}
|
enabled=false - не вычитывает SSID, высылает все пакеты, не подставляет новые статусы
enabled=true - вычитывает SSID, подcтавляет аргументы dpi и cms в radius
verbose=false - высылает пакет только если dpi = 1 (точка и ссид)
verbose=true - всегда высылает пакет, в пакете значения dpi 0 или 1
Для корректной работы модуля нужно изменить адреса подключения к БД и FTP серверу.
Eltex-sorm2-replicator распределяет файл в папках FTP сервера по дням, чтобы не столкнуться с проблемой Все файлы в одной директории на FTP. Имя директории имеет вид yyyyMMdd (годМесяцДень). Если бы все файлы сохранялись в одной директории, то рано или позно мы бы уперлись в Maximum number of files per directory, значение которого варьируется в зависимости от типа файловой системы, или банальные неудобства (задержки) при навигации по файлам. Таким образом путь к файлу будет иметь вид yyyyMMdd/file.csv. Корневую директорию для файлоы на FTP сервере можно изменить в параметре acct_dir. Например, acct_dir: ACCO. Тогда путь к файлу будет иметь вид ACCO/yyyyMMdd/file.csv. По умолчанию acct_dir: null, путь к файлу yyyyMMdd/file.csv.
Для изменения списка колонок нужно внести изменения в конфигурационный файл /etc/eltex-sorm2-replicator/sorm3-columns.json и перезапустить сервис Eltex-sorm2-replicator.
Содержимое файла /etc/eltex-sorm2-replicator/sorm3-columns.json :
{
"CONNECTION_TIME": true,
"REGION_ID": true,
"POINT_ID": true,
"LOGIN_TYPE": true,
"SESSION_ID": true,
"ALLOCATED_IPV4": true,
"ALLOCATED_IPV6": true,
"USER_NAME": true,
"CONNECT_TYPE": true,
"CALLING_NUMBER": true,
"CALLED_NUMBER": true,
"NAS_IPV4": true,
"NAS_IPV6": true,
"NAS_IP_PORT": true,
"IN_BYTES_COUNT": true,
"OUT_BYTES_COUNT": true,
"USER_PASSWORD": true,
"USER_EQ_MAC": true,
"USER_EQ_VPI": true,
"USER_EQ_VCI": true,
"APN": true,
"SGSN_IPV4": true,
"SGSN_IPV6": true,
"GGSN_IPV4": true,
"GGSN_IPV6": true,
"SERVICE_AREA_CODE": true,
"LAC_START": true,
"CELL_START": true,
"TA_START": true,
"WL_CELL_START": true,
"WL_MAC_START": true,
"LAC_END": true,
"CELL_END": true,
"TA_END": true,
"WL_CELL_END": true,
"WL_MAC_END": true,
"PHONE_CARD_NUMBER": true,
"IMSI": true,
"IMEI": true,
"ESN": true,
"POOL": true,
"L2_INTERFACE": false
} |
По умолчанию включены все колонки кроме "L2_INTERFACE".
Устанавливаем пакет mailutils ssmtp. Настраиваем адрес smtp сервера и логин/пароль для доступа к нему в /etc/ssmtp/ssmtp.conf
hostname=vagrant-ubuntu-xenial-64
mailhub=mail.eltex.nsk.ru
AuthUser=tester@eltex.nsk.ru
AuthPass=tester
UseTLS=NO
UseSTARTTLS=NO
Настраиваем адрес отправителя в /etc/ssmtp/revaliases:
root:tester@eltex.nsk.ru:mail.eltex.nsk.ru:25
Настраиваем адрес назначения в /etc/default/eltex-sorm2-replicator
#Send notification
NOTIFICATION_ADDR= "email@tester.ru"
Для проверки нужно остановить eltex-sorm2-replicator
service eltex-sorm2-replicator stop
Выполнить скрипт /usr/lib/eltex-sorm2-replicator/check.sh, сервис должен запустится, на адрес назначения придет уведомление.
| Начиная с версии 1.32 в сервисе eltex-pcrf поддержана пересылка RADIUS accounting на указанный адрес:порт. Такой способ настройки проще, чем пересылка с помощью IP-tables и не вызывает конфликтов с правилами IP-tables для Docker (при установке SoftWlC в докере) |
Для настройки пересылки аккаунтинга с помощью eltex-pcrf нужно включить пересылку в конфигурации сервиса и выполнить перезапуск сервиса.
Если pcrf установлен как deb-пакет:
"acct.sorm.address" : "<IP Адрес хоста с sorm2 replicator>", "acct.sorm.port" : 41813, "acct.sorm.mirroring.enabled" : true, |
Если сервис eltex-pcrf запущен в виде докер-контейнера
PCRF_acct.sorm.address=<IP хоста Sorm2> PCRF_acct.sorm.port=41813 PCRF_acct.sorm.mirroring.enabled=true |
Далее нужно выполнить перезапуск сервиса
sudo service eltex-pcrf restart |
sudo ./eltex-softwlc-helper-docker_1.34.sh --recreate-service eltex-pcrf |
На серверах принимающих RADIUS accounting нужно настроить пересылку в Eltex-sorm2-replicator, при помощи набора правил iptables. Данные правила копируют оригинальный пакет пришедший на DST порт 1813 или 31813 и отправляют его на DST порт 41813 в Eltex-sorm2-replicator. У исходящего пакета производится подмена SRC и DST IP-адресов.
Настройку производим на RADIUS-серверах SoftWLC (Eltex-pcrf и Eltex-radius). Создаем файл IPTables-sorm2 с содержимым:
*raw #-A OUTPUT -p udp --sport 1813 -j LOG --log-prefix "raw output : " # отключаем обработку пакетов от локальных процессов conntrack`ом -A OUTPUT -p udp --sport 1813 -j NOTRACK -A OUTPUT -p udp --sport 31813 -j NOTRACK COMMIT *mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -p udp --dport 1813 -m mark --mark 1 -j MARK --set-mark 2 -A PREROUTING -p udp --dport 31813 -m mark --mark 1 -j MARK --set-mark 2 -A PREROUTING -p udp --dport 1813 -m mark --mark 0 -j MARK --set-mark 1 -A PREROUTING -p udp --dport 31813 -m mark --mark 0 -j MARK --set-mark 1 -A PREROUTING -p udp --dport 1813 -m mark --mark 1 -j TEE --gateway 127.0.0.1 -A PREROUTING -p udp --dport 31813 -m mark --mark 1 -j TEE --gateway 127.0.0.1 #-A OUTPUT -p udp --dport 1813 -j LOG --log-prefix "mangle output : " COMMIT *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] # Подменяет destination в маркированном пакете для sorm2 # send to other host # 211 - сорм2 # 213 - этот хост -A PREROUTING -p udp --dport 1813 -m mark --mark 1 -j DNAT --to 192.168.107.211:41813 -A PREROUTING -p udp --dport 31813 -m mark --mark 1 -j DNAT --to 192.168.107.211:41813 -A POSTROUTING -p udp --dport 41813 -m mark --mark 1 -j SNAT --to 192.168.107.213 COMMIT |
Где:
192.168.107.211 – IP-адрес Eltex-sorm2-replicator
192.168.107.213 – IP-адрес RADIUS-сервера SoftWLC
Корректируем IP-адреса и загружаем правила из файла IPtables-sorm2:
# iptables-restore < IPTables-sorm2 |
Для сохранения изменений после перезагрузки сервера, нужно установить пакет, а затем выполнить команду:
# apt-get install iptables-persistent # service iptables-persistent save |
Для включения маршрутизации ip пакетов нужно в файле /etc/sysctl.conf раскомментировать строку
sysctl net.ipv4.ip_forward=1 |
Применить изменения
# sudo sysctl -p |
Для активации подключения к БД SORM2 и подключения к API интерфейсу Eltex-sorm2-replicator, в конфигурационном файле "radius_nbi_config.txt" необходимо исправить следующие строки:
/etc/eltex-radius-nbi/radius_nbi_config.txt
Нужно активировать подключение к БД SORM2 и подключение к API интерфейсу Eltex-sorm2-replicator
# Eltex.SORM2.replicator MariaDB 'sorm2' connect sorm2.jdbc.driver=org.gjt.mm.mysql.Driver sorm2.jdbc.dbUrl=jdbc:mysql://localhost:3306/eltex_sorm2?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 sorm2.jdbc.username=javauser sorm2.jdbc.password=javapassword sorm2.jdbc.maxPoolSize=48 sorm2.jdbc.inUse=yes # Eltex.SORM2.replicator host to use API sorm2.enabled=true sorm2.url=http://100.110.3.80:7071 sorm2.username=admin sorm2.password=password |
Для применения конфигурации нужно перезапустить nbi:
sudo service eltex-radius-nbi restart |
Для корректно работы Eltex-sorm2-replicator, для всех доменов в которых расположены RADIUS клиенты, нужно задать IP-адреса съёмников, данная настройка производится в Личном кабинете B2B.
Для активации меню настройки нужно перейти в меню Настройки-> Система-> Система и активировать настройку «Настройка СОРМ-2 в «Дереве доменов»». Для применения, перезайти в Личный кабинет B2B.
Создаем профиль. Переходим во вкладу "СОРМ-2" и нажимаем кнопку "Добавить"

Далее заполняем все поля. "Кодовое слово" - кодовое слово radius, будет передаваться вместе с атрибутами radius. Данные профилей сохраняются в БД eltex_sorm2.profiles.

1. "Имя" : имя съемника, обязательный параметр, после сохранения его изменить нельзя.
2. "Описание" : произвольное описание, не обязательно.
3. "Домен" : домен видимости, обязательный параметр.
4. "IP" : IP адрес назначения, обязательный параметр.
5. "Порт" : порт назначения, обязательный параметр.
6. "Кодовое слово" : кодовое слово radius, не обязательный параметр.
Далее необходимо наш профиль закрепить в "Дереве доменов" за доменом. Выбираем домен за которым хотим закрепить профиль и нажимаем справа на иконку
в колонке "СОРМ-2":
В открывшемся окне выбираем ранее добавленный съемник съемник:
и нажимаем "Сохранить". Данные привязок профилей к доменам сохраняются в БД eltex_sorm2.links. Один съемник может быть использован многократно в различных доменах.
После назначения съемника на домен он не может быть удален. При попытке удалить съемник возникнет ошибка:
Перед удалением съемника необходимо отвязать его от всех доменов, где он используется. |
Установку нужно производить на ОС: Linux Ubuntu Server 18.04 x64 LTS. Для корректного формирования выгрузок, нужно настроить время и часовой пояс. Для работы модуля необходимо установить Oracle JDK8.
Для установки Oracle JDK8 нужно выполнить следующие команды:
$ sudo apt install openjdk-8-jdk |
Проверяем версию java:
tester@ubuntu:~$ java -version openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode) |
Увеличиваем размер буфера сетевых соединений и применяем изменения:
Установка пакета:
Обновляем список пакетов
# apt update |
Устанавливаем пакет
# apt install eltex-radius-sorm3 |
6.2 Настройка Eltex-radius-sorm3
Конфигурационный файл лежит в директории
/etc/eltex-radius-sorm/eltex-radius-sorm3.conf
Содержимое конфигурационного файла:
[radius-data] app_name=eltex-radius-sorm3-federal.jar nbi_ip=localhost nbi_port=8080 auth_username=admin auth_password=password export_path=/var/log/eltex-radius-sorm3/export_data domain= ftp_url=ftp://admin:password@192.168.0.1:/ftp/ start_count=128 max_count=1024 skip_with_regionId_eq_0=true |
Где:
Выгрузка запускается раз в сутки в 04:00.
Для изменения интервала выгрузки нужно отредактировать задание в CRON:
cat /etc/cron.d/sorm_export MAILTO="" 00 4 * * * root /usr/share/eltex-radius-sorm3/export_sorm.sh |
Рекомендуется выбрать период наименьшей загрузки сети и минимизировать возможность пересечения с другими мониторами EMS и cron softwlc. |
Для корректной выгрузки поля REGION_ID в справочники, нужно заполнить поле «Регион» в свойствах домена. Для данного поля работает наследование сверху вниз. Поиск региона проходит от нижестоящего узла к вышестоящему, при нахождение первого узла с заполненным регионом поиск прекращается. Для заполнения поля регион нужно перейти в меню «Домены», Администрирование-> Права и пользователи-> Домены, и отредактировать домен.
Заполнение нужно произвести до запуска первой выгрузки, так как полный список абонентов выгружается при первой выгрузке, в последующих выгрузкаx только измененные и новые записи. Если поле заполнить после первой выгрузки, то для выгруженных записей оно будет пустым.
Для выполнение требований по СОРМ нужно заполнить адрес установки и географические координаты у ТД.
В привязках правил инициализации ТД добавлены новые поля «Широта» и «Долгота», при добавление нового правила эти поля обязательные для заполнения. Координаты нужно вводить в формате «37.587614». Для заполнения адреса можно воспользоваться функционалом заполнения по КЛАДРу (кнопка «Заполнить местоположение»), если адрес уже заполнен и нужны только географические координаты можно воспользоваться функционалом заполнения геокоординат (кнопка «Заполнения геокоординаты»). Функционал автоматического заполнения местоположения и геокоординат требует доступ до одного серверов:
так как запросы идут с сервера EMS. Выбор системы для геокодирования осуществляется в системных модулях EMS, по умолчанию используется Google.
Альтернативный способ получение координаты через https://yandex.ru/maps или https://www.google.ru/maps
Для активации, геоданных объектов и сделать поля обязательным для заполнения. необходимо выставить флаги «Включить геоданные объектов» и «Включить обязательность геоданных объектов» в системных модулях EMS 
Информация в Привязках инициализации и вкладке Доступ меняется синхронно. Изменение в одном месте, автоматически изменяет данные в другом. Повторная инициализация ТД, добавленных до включения блока геоданных, не требуется.
Для заполнения поля Framed-IP-Address в start пакетах RADIUS accounting нужно включить опцию «Accounting wait IP» в настройках SSID с типом авторизации WPA Enterprise. Данная опция активирует отправку start пакет только после получения IP-адреса клиентом.

Для корректной выгрузки информации о базовых станциях, должен работать монитор синхронизации устройств.
Чтобы включить DPI, необходимо активировать его на точке доступа и на SSID.
Активация DPI на точке доступа.




После этого на всех выбранных точках доступа будет включен DPI, далее необходимо включить его на SSID.
Активация DPI в SSID

2. Выбираем SSID на котором хотим включить DPI, и нажимает "Редактировать"

3. Включаем "DPI (Step Logic)" и применяем изменения.

4. Далее необходимо обновить информацию на точках доступа, перейдем в "Привязки SSID", выберем SSID в котором мы установили флаг и нажмем ![]()

Способ создания SSID с включенным DPI через NBI
Данный способ подходит для группового включения на точках с помощью скриптов, путем создания SSID с включенным параметром DPI Step Logic с помощью API NBI.
В данном примере создается SSID с режимом безопасности wpa personal.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:nbi="http://nbi.radius.eltex.org" xmlns:xsd="http://response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:CreateSSID>
<!--Optional:-->
<nbi:name>Test_wpa</nbi:name>
<!--Optional:-->
<nbi:domain>root</nbi:domain>
<!--Optional:-->
<nbi:descr></nbi:descr>
<!--Zero or more repetitions:-->
<nbi:params>
<xsd:name>DPI_Step_Logic</xsd:name>
<xsd:value>true</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>Security_Type</xsd:name>
<xsd:value>1</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>Broadcast_Key_Refresh_Rate</xsd:name>
<xsd:value>0</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>VAP_Status</xsd:name>
<xsd:value>up</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>Radio</xsd:name>
<xsd:value>ALL</xsd:value>
</nbi:params>
</nbi:CreateSSID>
</soapenv:Body>
</soapenv:Envelope> |
Подробнее про NBI можете прочесть по ссылке: http://ubuntu:8080/eltex-radius-nbi/asciidoc/
Настройка DPI на этом заканчивается.
Примеры настройки:
|
Пример трафика с включенным и выключенным DPI
DPI выключен.

DPI включен.
В конфигурационном файле
/etc/eltex-radius-nbi/radius_nbi_config.txt
Нужно активировать параметр sorm3.enabled
#It enables records export to SORM3 while editing wifi users sorm3.enabled=true |
Для применения конфигурации нужно перезапустить Tomcat7
# service tomcat8 restart |
Этот параметр активирует:
После активации параметра sorm3.enabled, взаимодействие с NBI под учетной записью по умолчанию (admin) будет запрещено, если у записи не заполнены обязательные поля(ФИО, номер телефона). Для корректной работы портала нужно использовать служебную запись softwlc_service/softwlc для взаимодействие с NBI. Для изменения данных доступа к NBI, нужно в конструкторе порталом перейти на вкладку «Доступ к NBI» и прописать новые данные.
Поля ФИО и номер телефона стали обязательными у учетных записей администраторов ЛК B2B. При создании/редактировании пользователей Wi-Fi, фиксируются данные администратора, который внес изменения в учетную запись. Если поля не заполнены, то администратор не сможет редактировать и создавать учетные записи пользователей Wi-Fi.
Для заполнения данных нужно перейти на вкладку Настройка->Системные пользователи, выбрать учетную запись и заполнять обязательные поля.
Для выполнения требований СОРМ, необходимо заполнить обязательные поля у учетных записей пользователей Enterprise. Для корректирования текущих записей нужно в личном кабинете B2B открыть запись для редактирования и заполнить соответствующие поля.
Модули Eltex-sorm2-replicator и Eltex-radius-sorm3 можно расположить на одном сервере. Для высоконагруженных систем нужно использовать кластер из двух и более нод Eltex-sorm2-replicator. В кластере весь RADIUS трафик приходит на определенную ноду Eltex-sorm2-replicator , а обработка делится между остальными участниками. Eltex-radius-sorm3 нужно запускать только на одной ноде.
Для настройки кластера нужно подготовить второй сервер аналогично первому, настройка описана в п. 4. Между серверами Eltex-sorm2-replicator нужно открыть порты 5701 tcp, 5801 tcp На серверах в файлах конфигурации /etc/eltex-sorm2-replicator/hazelcast-cluster.xml нужно:
<network>
<!-- Write here public address of the node -->
<public-address>192.168.0.1</public-address>
<port auto-increment="false" port-count="100">5702</port>
<outbound-ports>
<ports>0</ports>
</outbound-ports>
<join>
<multicast enabled="true">
<trusted-interfaces>
<interface>192.168.26.*</interface>
</trusted-interfaces>
</multicast>
<tcp-ip enabled="false">
<!-- 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> |
В конфигурации /etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json нужно разрешить запуск кластера:
"cluster.enable" : true, |
Для проверки кластера, нужно перейти в открыть веб интерфейс Eltex-sorm2-replicator http://ubuntu:7071/system. Пример вывода:
{
"key" : "PcrfErrorCode.success",
"message" : "Success",
"code" : 0,
"args" : [ ],
"data" : {
"version" : "1.8-162 (20171017-1233)",
"java_memory" : {
"used" : 40,
"free" : 267,
"total" : 308,
"max" : 455
},
"java" : {
"vendor" : "Oracle Corporation",
"title" : "Java Runtime Environment",
"version" : "1.8.0_144"
},
"system" : {
"cpu" : 6
},
"vertx" : {
"clustered" : true
},
"hazelcast" : {
"cluster" : {
"members" : {
"192.168.107.211" : {
"local" : true
},
"192.168.107.212" : {
"local" : false
}
},
"state" : "ACTIVE"
}
}
}
} |
В списке hazelcast должны присутствовать все ноды.
Большая часть параметров кэшируется и инвалидируется только по времени.
Там где инвалидации кэша по запросу нет, запись будет жить со старыми параметрами в течение TTL, потом удалиться и при следующем обращении заново закачается из БД с новыми параметрами. То есть параметры DPI например, применяются не мгновенно, а в ближайшие 600 секунд. |