Содержание
Версия документа | Дата выпуска | Содержание изменений |
Версия 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 | Корректировка п.5.3.3 |
Версия 1.7 | 20.04.2018 | Формата даты в выгрузках приведен к виду yyyy-MM-dd HH:mm:ss |
Версия 1.8 | 14.05.2019 | Добавлен DPI |
Версии программного обеспечения | ESR-1000 1.4.1 |
Общая архитектура для релиза SoftWLC 1v13
1.1 Сетевая архитектура решения
Рисунок 1 – Общая сетевая топология решения
Между ESR-1000 и точками доступа поднимаются SoftGRE-туннели сквозь L3-инфраструктуру оператора. От каждой точки доступа формируется два туннеля: Management-туннель для передачи трафика управления и Data-туннель для передачи абонентского трафика.
Внутри Management-туннеля передается трафик управления точкой доступа в отдельной сети управления. Данная подсеть невидима для L3-сегмента оператора, скрываясь за заголовками GRE-туннеля. Внутри Data-туннеля передается абонентский трафик. Этот трафик терминируется на ESR-1000 и далее маршрутизируется в сеть оператора (в сторону его NAT).
1.2 Порядок прохождения трафика в схеме BRAS
Рисунок 2 – Порядок прохождения трафика в схеме BRAS
Данная схема актуальна:
- Для ТД «Элтекс» работающих c Hotspot авторизацией и интеграцией с HotWiFi;
- Для ТД других производителей, включенных через ESR-10, с Hotspot авторизацией.
Клиент, подключается к открытой 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.
При снятии трафика СОРМ, должна учитываться эта реализация.
1.3 Порядок прохождения трафика в схеме ТД «Элтекс»
Рисунок 3 – Порядок прохождения трафика в схеме ТД «Элтекс»
Данная схема актуальна:
- Для ТД «Элтекс» работающих c Hotspot авторизацией;
- Для ТД «Элтекс» работающих с авторизацией Enterprise.
При прохождении авторизации на WEB портале, HTTP запросы пользователя проксируются в ТД. После прохождения авторизации весь трафик клиента будет идти с IP-адреса (User IP), который он получил по DHCP.
1.4 Передача трафика RADIUS accounting через сеть
На ТД «Элтекс» настроены SSID с авторизацией Enterprise, данные RADIUS accounting передаются с ТД в GRE туннеле до ESR (в VRF AP-core), а затем к SoftWLC в (VRF- Baskbone).
На ТД «Элтекс» c Hotspot авторизацией данные RADIUS accounting передаются с ТД в GRE туннеле до ESR (в VRF AP-core), а затем к SoftWLC в (VRF- Baskbone).
На ТД «Элтекс» c Hotspot авторизацией и интеграцией с HotWiFi данные RADIUS accounting формируются на ESR-1000 (BRAS), а затем передаются к SoftWLC в (VRF- Baskbone).
На ТД других производителей, включенных через ESR-10, с Hotspot авторизацией, данные RADIUS accounting формируются на ESR-1000 (BRAS), а затем передаются к SoftWLC в (VRF- Baskbone).
Таким образом весь accounting трафик проходит через VRF Backbone, от регионального ESR к SoftWLC.
Рисунок 4 – Порядок прохождения RADIUS accounting через сеть оператора
Рисунок 5 – Порядок прохождения RADIUS accounting в системе SoftWLC
2 Описание пакета Eltex-sorm2-replicator
Eltex-sorm2-replicator является дополнительным модулем системы SoftWLC. Основные задачи данного модуля:
- Пересылка копии RADIUS трафика в региональные съемники с учетом регионального признака;
- Формирование выгрузки по соединениям абонентов (RADIUS accounting) для СОРМ-3,
- Загрузка данных по соединениям абонентов (RADIUS accounting) на FTP сервер для системы ИС СОРМ «Январь» (МФИ-СОФТ).
- Обогащение трафика, в RADIUS трафик добавляется флаг . Eltex-DPI-Step-Logic 0/1, который сообщает о том что трафик установлен на контроль
На серверах принимающих RADIUS accounting в системе SoftWLC, средствами IPTables нужно настроить пересылку всего потока RADIUS accounting c DST портов 1813 и 31813 в сторону Eltex-sorm2-replicator на DST порт 41813. Eltex-sorm2-replicator принимает данный поток, извлекает данные RADIUS протокола и определяет адрес съемника для дальнейшей пересылки пакета. Адрес съемника задается в настройках домена в системе SoftWLC (ЛК B2B). Поиск съемника осуществляется вверх по дереву (от домена точки доступа во всех родительских узлах). Таким образом настроить съемник нужно только в доменах уровня МРФ, или вообще только в корнеом домене, если съемник используется один.
Информация о домене может быть из (в порядке уменьшения приоритета):
- RADIUS пакета от ТД «Элтекс», если он содержит Eltex-Ap-Domain;
- Свойств L2 подсети (ЛК B2B), если присутствует nas ip и L2 интерфейс;
- Дерева объектов в EMS, если присутствует устройство с IP-адресом совпадающим с nas ip.
После получения данных формируется пакет и отправлять на IP-адрес регионального съёмника, IP-адрес, DST порт и ключ RADIUS берутся из настроек съемника (ЛК B2B). Таким образом в регион уходит трафик предназначенный только для него, а не весь поток RADIUS accounting.
Информация по соединениям абонентов выгружается в файл:
- IP_ACC_N_yyyyMMdd_Hhmm.csv;
где N ‐ IP‐адрес Eltex-sorm2-replicator в HEX, с которого выгружается данный файл.
При выставлено флаге DPI в EMS, Eltex-sorm2-replicator добавляется атрибут Eltex-DPI-Step-logic и отправляет обогащенный трафик на указанный съемник, далее по данному флагу будет происходить анализ трафика на стороне DPI.
Важно!
Однако, в этом случае трафик все равно может быть отправлен на Глобальный съемник (global.clients в eltex-sorm2-replicator.json), если хотя бы один из них настроен в конфигурации. Глобальный съемник получает весь трафик, обрабатываемый sorm2-relicator'ом.
3 Описание пакета Eltex-radius-sorm3-federal
Eltex-radius-sorm3-federal является дополнительным модулем системы SoftWLC. Основная задача данного модуля – подготовка и выгрузка данных об абонентах и базовых станциях на FTP сервер для системы ИС СОРМ «Январь» (МФИ-СОФТ). Работу данного модуля можно разделить на две части:
- Выгрузка данных об абонентах и WIFI-базовых станциях из системы SoftWLC.
Доступ к базе данных, в которой хранится информация об абонентах осуществляется через общий Northbound-интерфейс системы, по протоколу SOAP/XML (спецификация представлена в отдельном документе). Доступ к данному API – это обязательное условие работы модуля Eltex-radius-sorm3-federal. Настройка доступа (URL) производится в системных настройках модуля. Запрос информации производится раз в сутки в 04:00.
Информация об hotspot абонентах выгружается в файлы:
- ABONENTS_yyyyMMdd_Hhmm.csv;
- ABONENTS_ID_yyyyMMdd_Hhmm.csv.
Информация об enterprise абонентах выгружается в файлы:
- ABONENTS_ ENTERPRISE_yyyyMMdd_Hhmm.csv;
- ABONENTS_ ENTERPRISE_ID_yyyyMMdd_Hhmm.csv.
Информация о ваучерах выгружается в файлы:
- ABONENTS_ VOUCHER_yyyyMMdd_Hhmm.csv
- ABONENTS_ VOUCHER_ID_yyyyMMdd_Hhmm.csv.
Информация о WIFI-базовых станциях выгружается в файлы:
- BASE_STATION yyyyMMdd_Hhmm.csv;_
- BASE_STATION_IP yyyyMMdd_Hhmm.csv;_
- BASE_STATION_WIFI_ANTENNA yyyyMMdd_Hhmm.csv;_
- BASE_STATION_WIFI_WRL yyyyMMdd_Hhmm.csv._
Тип выгрузки – инкрементальный. В первой выгрузке содержатся все записи, в последующих выгрузках измененные и новые записи. Данные о базовых станциях выгружаются каждый раз в полном объеме.
2. Загрузка сформированных данных на FTP сервер.
4 Настройка Eltex-sorm2-replicator
4.1 Установка и настройка Eltex-sorm2-replicator
Установку нужно производить на ОС: Linux Ubuntu Server 14.04 x64 LTS. Для корректного формирования выгрузок, нужно настроить время и часовой пояс. Для работы модуля необходимо установить следующий пакет:
‒ Oracle JDK8.
Для установки Oracle JDK8 нужно выполнить следующие команды:
- Скачиваем необходимую версию (рассмотрим пример установки на jre-8u211-linux-x64.tar.gz)
- Создаем директорию для java и распаковываем.
mkdir /usr/lib/jvm tar -zxf /root/jre-8u211-linux-x64.tar.gz -C /usr/lib/jvm
3. Java машина должна расположиться в директории /usr/lib/jvm/jre1.8.0_211. Теперь нам необходимо создать символьные ссылки на установленную версию java. Делаем это с помощью update-alternatives.
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jre1.8.0_211/bin/java" 1500 update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jre1.8.0_211/bin/javaws" 1500
4. Зададим переменную JAVA_HOME, которую используют некоторые приложения. Для этого добавляем в файл /etc/environment следующую строку.
JAVA_HOME="/usr/lib/jvm/jre1.8.0_211"
5. Сохраняем его и применяем изменение.
source /etc/environment
6. Проверяем версию.
java -version echo $JAVA_HOME
7. Увеличиваем размер буфера сетевых соединений и применяем изменения
sudo echo net.core.rmem_max=134217728 >> /etc/sysctl.conf
sudo echo net.core.rmem_default=134217728 >> /etc/sysctl.conf
sudo sysctl -p
Установка пакета
Устанавливаем пакет Eltex-sorm2-replicator sudo dpkg -i eltex-sorm2-replicator_X.X-XXX_all.deb
После установки пакет нужно настроить и запустить сервис. При обновление пакета требуется ручной запуск. Конфигурационный файл лежит в директории /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&autoReconnect=true", "user" : "javauser", "password" : "javapassword", "max_pool_size" : 16 }, "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 }, "mongo.sorm2" : { "connection_string": "mongodb://localhost:27017/sorm2" }, "mongo.pcrf" : { "connection_string": "mongodb://localhost:27017/pcrf" }, "global.clients" : { "enabled" : true, "clients" : [ { "host" : "192.168.84.100", "port" : 11813, "secret": "eltex" } ] }, { "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&autoReconnect=true", "user" : "javauser", "password" : "javapassword", "max_pool_size" : 16 }, "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 }, "mongo.sorm2" : { "connection_string": "mongodb://localhost:27017/sorm2" }, "mongo.pcrf" : { "connection_string": "mongodb://localhost:27017/pcrf" }, "global.clients" : { "enabled" : true, "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" : true, "verbose" : true } }
- Блок «radius» содержит адрес подключения к БД radius в MySQL;
- Блок «sql.ems» содержит адрес подключения к БД eltex_ems в MySQL;
- Блок «mongo.sorm2» содержит адрес подключения к БД sorm2 в MongoDB;
- Блоке «mongo.pcrf» содержит адрес подключения к БД pcrf в MongoDB;
- Блок «global.clients» активирует пересылку входящего потока RADIUS accounting на дополнительный сервер;
- Блок «sorm3» содержит настройки для подключения к FTP серверу;
- Блок «sorm2» активирует пересылку копии RADIUS accounting на региональные съемники. Активация требуется если оригинальные RADIUS accounting не проходит через съемник.
- "federated" : true/false, при включенной опции ищет съемники которые были заданны в личном кабинете в "Настройки" , затем вкладка "СОРМ-2"
- Блок «dpi.step.logic» активирует обогащение траффика для DPI.
enabled=false - не вычитывает SSID, высылает все пакеты, не подставляет новые статусы
enabled=true - вычитывает SSID, подcтавляет аргументы dpi и cms в radiusverbose=false - высылает пакет только если dpi = 1 (точка и ссид)
verbose=true - всегда высылает пакет, в пакете значения dpi 0 или 1
Для корректной работы модуля нужно изменить адреса подключения к БД и FTP серверу. Для подключения к кластеру MongoDB нужно указать адреса серверов через запятую, пример:
"connection_string": "mongodb://10.62.18.36:27017,10.62.18.37:27017/pcrf?replicaSet=WIFI"
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.
4.2 Настройка состава колонок в выгрузке IP_ACC_N_yyyyMMdd_Hhmm.csv
Для изменения списка колонок нужно внести изменения в конфигурационный файл /etc/eltex-sorm2-replicator/sorm3-columns.json и перезапустить сервис Eltex-sorm2-replicator.
Содержимое файла sorm3-columns.json:
tester@tester-6:~$ cat /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".
4.3 Настройка уведомлений при перезапуске сервиса Eltex-sorm2-replicator
Устанавливаем пакет mailutils ssmtp. Настраиваем адрес smtp сервера и логин/пароль для доступа к нему в /etc/ssmtp/ssmtp.conf
hostname=vagrant-ubuntu-trusty-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, сервис должен запустится, на адрес назначения придет уведомление.
4.4 Настройка пересылки RADIUS accounting
На серверах принимающих 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
4.5 Настройка Eltex-radius-nbi
Для активировации подключения к БД mongo SORM2 и подключения к API интерфейсу Eltex-sorm2-replicator, в конфигурационном файле "radius_nbi_config.txt" необходимо исправить следующие строки:
/etc/eltex-radius-nbi/radius_nbi_config.txt
Нужно активировать подключение к БД mongo SORM2 и подключение к API интерфейсу Eltex-sorm2-replicator
#Eltex.SORM2.replicator MongoDB 'sorm2' connect* sorm2.mongodb.enabled=true sorm2.mongodb.uri=mongodb://localhost:27017/sorm2 #Eltex.SORM2.replicator host to use API* sorm2.enabled=true sorm2.url=http://192.168.107.211:7071 sorm2.username=admin sorm2.password=password #Для подключения к кластеру MongoDB нужно указать адреса серверов через запятую, пример: sorm2.mongodb.uri=mongodb://10.62.18.36:27017,10.62.18.37:27017/sorm2?replicaSet=WIFI
Для применения конфигурации нужно перезапустить Tomcat7
service tomcat7 restart
4.6Настройка IP-адресов региональных съемников в ЛК B2B
Для корректно работы Eltex-sorm2-replicator, для всех доменов в которых расположены RADIUS клиенты, нужно задать IP-адреса съёмников, данная настройка производится в Личном кабинете B2B.
Для активации меню настройки нужно перейти в меню Настройки-> Система-> Система и активировать настройку «Настройка СОРМ-2 в «Дереве доменов»». Для применения, перезайти в Личный кабинет B2B.
Сначала необходимо создать профиль. Переходим во владку "СОРМ-2" и нажимаем кнопку "Добавить"
Далее заполняем все поля. "Кодовое слово" - кодовое слово radius, будет передаваться вместе с атрибутами radius. Данные профилей сохраняются MongoDB sorm2.profiles.
Далее необходимо наш профиль закрепить в "Дереве доменов" за доменом. Нажимаем иконку и вибираем тот домен за которым хотим закрепить профиль.
Данные привязок профилей к доменам сохраняются MongoDB sorm2.links.
5 Настройка Eltex-radius-sorm3-federal
5.1 Установка Eltex-radius-sorm3-federal
Установку нужно производить на ОС: Linux Ubuntu Server 14.04 x64 LTS. Для корректного формирования выгрузок, нужно настроить время и часовой поя. Для работы модуля необходимо установить следующие пакеты:
‒ Oracle JDK8;
Установка JDK8 описана в пункте 4.1 https://docs.eltex-co.ru/pages/viewpage.action?pageId=36480442#id-СОРМ.v2-_Toc4967248094.1УстановкаинастройкаEltex-sorm2-replicator
Запуск установки:
dpkg -i eltex-radius-sorm3-federal_X.X-XXX_all.deb.deb
Пример успешного выполнения:
root@vagrant-ubuntu-trusty-64:~$ sudo dpkg -i eltex-radius-sorm3-federal_1.8-248_all.deb
Selecting previously unselected package eltex-radius-sorm3.
(Reading database ... 63224 files and directories currently installed.)
Preparing to unpack eltex-radius-sorm3-federal_1.8-248_all.deb ...
Unpacking eltex-radius-sorm3 (1.8-248) ...
Setting up eltex-radius-sorm3 (1.8-248) ...
root@vagrant-ubuntu-trusty-64:/home/vagrant#
5.2 Настройка Eltex-radius-sorm3-federal
Конфигурационный файл лежит в директории
/etc/eltex-radius-sorm/eltex-radius-sorm3.conf
Содержимое конфигурационного файла:
app_name=eltex-radius-sorm3-1.8-federal.jar nbi_ip=192.168.26.205 nbi_port=8080 auth_username=admin auth_password=password export_path=/var/log/eltex-radius-sorm3/export_data domain= ftp_url=ftp://acs:acs@192.168.26.26:/ftp/ start_count=128 max_count=1000
Где:
- nbi_ip – IP-адрес сервера с Eltex-radius-nbi;
- nbi_port – порт SOAP/XML Eltex-radius-nbi;
- auth_username – логин;
- auth_password – пароль;
- ftp_url – настройки доступа до ftp серверам;
- start_count – начальное число записей запрашиваемых при старте, если скорость получения данные высокая число увеличивается в процессе работы;
- max_count – максимальное число записей запрашиваемых за один запрос.
В домашней директории FTP сервера, нужно создать директории:
- BTS – директория выгрузки справочника базовых станций;
- ABON – директория выгрузки справочника абонентов;
Выгрузка запускается раз в сутки в 04:00.
Для изменения инетервала выгрузки нужно отредактировать задание в CRON:
cat /etc/cron.d/sorm_export
MAILTO=""
00 4 * * * root /usr/share/eltex-radius-sorm3/export_sorm.sh
Важно!
Рекомендутся выбрать период наименьшей загрузки сети и минимизировать возможность пересечения с другими мониторами EMS и cron softwlc.
5.3 Настройка системы управления EMS
5.3.1 Настройка поля «Регион»
Для корректной выгрузки поля REGION_ID в справочники, нужно заполнить поле «Регион» в свойствах домена. Для данного поля работает наследование сверху вниз. Поиск региона проходит от нижестоящего узла к вышестоящему, при нахождение первого узла с заполненным регионом поиск прекращается. Для заполнения поля регион нужно перейти в меню «Домены», Администрирование-> Права и пользователи-> Домены, и отредактировать домен.
Заполнение нужно произвести до запуска пакетов, так как полный список абонентов выгружается при первой выгрузке, в последующих выгрузках только измененные и новые записи. Если поле заполнить после запуска Eltex-radius-sorm3-federal, то в первой выгрузке оно будет пустым. Если поле заполнить после запуска Eltex-sorm2-replicator, то в выгрузки RADIUS accounting оно будет пустым.
5.3.2 Заполнение геоданных объектов
Для выполнение требований по СОРМ нужно заполнить адрес установки и географические координаты у ТД.
В привязках правил инициализации ТД добавлены новые поля «Широта» и «Долгота», при добавление нового правила эти поля обязательные для заполнения. Координаты нужно вводить в формате «37.587614». Для заполнения адреса можно воспользоваться функционалом заполнения по КЛАДРу (кнопка «Заполнить местоположение»), если адрес уже заполнен и нужны только географические координаты можно воспользоваться функционалом заполнения геокоординат (кнопка «Заполнения геокоординаты»). Функционал автоматического заполнения местоположения и геокоординат требует доступ до одного серверов:
- КЛАДР (http://kladr-api.ru/api.php);
- Google(https://maps.googleapis.com/maps/api/geocode/json);
- Yandex(https://geocode-maps.yandex.ru/1.x/);
так как запросы идут с сервера EMS. Выбор системы для геокодирования осуществляется в системных модулях EMS, по умолчанию используется Google.
Альтернативный способ получение координаты через https://yandex.ru/maps или https://www.google.ru/maps
Для активации, геоданных объектов и сделать поля обязательным для заполнения. необходимо выставить флаги «Включить геоданные объектов» и «Включить обязательность геоданных объектов» в системных модулях EMS
Информация в Привязках инициализации и вкладке Доступ меняется синхронно. Изменение в одном месте, автоматически изменяет данные в другом. Повторная инициализация ТД, добавленных до включения блока геоданных, не требуется.
5.3.3 Заполнение поля Framed-IP-Address для WPA Enterprise на ТД «Элтекс»
Для заполнения поля Framed-IP-Address в start пакетах RADIUS accounting нужно включить опцию «Accounting wait IP» в настройках SSID с типом авторизации WPA Enterprise. Данная опция активирует отправку start пакет только после получения IP-адреса клиентом. Опция «Accounting wait IP» отображается если выставлен флаг «Режим суперпользователя» в настройках апплета.
5.3.4 Активация монитора синхронизации устройств
Для корректной выгрузки информации о базовых станциях, должен работать монитор синхронизации устройств.
5.3.5 Настройка DPI (Step Logic)
Чтобы включить DPI, необходимо активировать его на точке доступа и на SSID.
Активировать возможно двумя способами.
Первый способ
Включить DPI на конкретной точке доступа, для этого необходимо:
- Выбрать точку доступа и перейти во вкладку "Доступ"
- Нажать кнопку "Редактировать" и установить флаг DPI (Step Logic), затем "Принять" установленные изменения
Второй способ
Данный способ подходит для группового включения на нескольких точках.
- Перейти в необходимы домен (в примере addr1)
2. Затем во вкладке "Список устройств", выбрать устройства на которых нужно влючить DPI. Для удобства выборки устройств, их можно отсортировать по типу.
3. Далее в "Групповых операциях" находим "Смена параметров Доступ'' и нажимаем "Выполнить"
4. Устанавливаем 2 флага и жмем "Применить"
DPI Включен
DPI Выключен
После этого на всех выбранных точках доступа будет включен DPI, далее необходимо включить его на SSID.
Это можно сделать через менеджер ssid.
- Переходим в "Менеджер SSID"
2. Выбираем SSID на котором хотим включить DPI, и нажимает "Редактировать"
3. Включаем "DPI (Step Logic)" и применяем изменения.
4. Далее необходимо обновить информацию на точках доступа, перейдем в "Привязки SSID", выберем SSID в котором мы установили флаг и нажмем
Настройка DPI на этом заканчивается.
Примеры настройки:
- Включить DPI для всех SSID на всех точках доступа.
- Через "Cписок устройств" в домене выбрать все точки доступа и включить на них DPI.
- Через "Менеджер SSID" включить на всех SSID DPI, и нажать кнопку исправить.
- Включить DPI для конкретных SSID на всех точках доступа.
- Через "Cписок устройств" в домене выбрать все точки доступа и включить на них DPI.
- Через "Менеджер SSID" выбрать необходимый SSID, включить DPI, и нажать кнопку исправить.
- Включить DPI для всех SSID на конкретных точках доступа клиента.
- Через "Cписок устройств" в домене выбрать нужнфые точки доступа и включить на них DPI, или во вкладке "Доступ" на каждой точке включить DPI.
- Через "Менеджер SSID" включить на всех SSID DPI, и нажать кнопку исправить.
- Включить DPI для конкретного SSID на конкретных ТД.
- Через "Cписок устройств" в домене выбрать нужнфые точки доступа и включить на них DPI, или во вкладке "Доступ" на каждой точке включить DPI.
- Через "Менеджер SSID" выбрать необходимый SSID, включить DPI, и нажать кнопку исправить.
Пример трафика с включенным и выключненным DPI
DPI выключен.
DPI включен.
5.4 Настройка Eltex-radius-nbi
В конфигурационном файле
/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 tomcat7 restart
Этот параметр активирует:
- Выгрузку изменений в учетных записях пользователей Wi-Fi
- Проверку наличия данных об операторе (ФИО) при создании и редактировании учетных записей пользователей Wi-Fi
5.5 Настройка Конструктора порталов
После активации параметра sorm3.enabled, взаимодействие с NBI под учетной записью по умолчанию (admin) будет запрещено, если у записи не заполнены обязательные поля. Для корректной работы портала нужно использовать служебную запись softwlc_service/softwlc для взаимодействие с NBI. Для изменения данных доступа к NBI, нужно в конструкторе порталом перейти на вкладку «Доступ к NBI» и прописать новые данные.
5.5 Настройка Личного кабинета B2B
5.6.1 Заполнение обязательных полей у администраторов ЛК B2B
Поля ФИО и номер телефона стали обязательными у учетных записей администраторов ЛК B2B. При создании/редактировании пользователей Wi-Fi, фиксируются данные администратора, который внес изменения в учетную запись. Если поля не заполнены, то администратор не сможет редактировать и создавать учетные записи пользователей Wi-Fi.
Для заполнения данных нужно перейти на вкладку Настройка->Системные пользователи, выбрать учетную запись и заполнять обязательные поля.
5.6.2 Заполнение обязательных полей у пользователей Enterprise
Для выполнения требования по СОРМу, необходимо заполнить обязательные поля у учетных записей пользователей Enterprise. Для корректирования текущих записей нужно в личном кабинете B2B открыть запись для редактирования и заполнить соответствующие поля.
6 Рекомендации по распределению модулей
Модули Eltex-sorm2-replicator и Eltex-radius-sorm3 можно расположить на одном сервере. Для высоконагруженных систем нужно использовать кластер из двух и более нод Eltex-sorm2-replicator. В кластере весь RADIUS трафик приходит на определенную ноду Eltex-sorm2-replicator , а обработка делится между остальными участниками. Eltex-radius-sorm3 нужно запускать только на одной ноде.
7 Настройка кластера Eltex-sorm2-replicator
Для настройки кластера нужно подготовить второй сервер аналогично первому, настройка описана в п. 4. Между серверами Eltex-sorm2-replicator нужно открыть порты 5701 tcp, 5801 tcp На серверах в файлах конфигурации /etc/eltex-sorm2-replicator/hazelcast-cluster.xml нужно указать адреса сетевых интерфейсов (в строках 3 и 24 в примере - адрес самого сервера, в строке 8 адрес сети, где нужно искать участников кластера, в строках 16-17 - список всех членов кластера ), отключить multicast и включить tcp-ip режим обнаружения.
<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="false"> <trusted-interfaces> <interface>192.168.0.*</interface> </trusted-interfaces> </multicast> <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>
В конфигурации /etc/eltex-sorm2-replicator/eltex-sorm2-replicator.json нужно разрешить запуск кластера:
"cluster.enable" : true,
Для проверки кластера, нужно перейти в открыть веб интерфейс Eltex-sorm2-replicator http://server_ip: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 должны присутствовать все ноды.
Важно!
Большая часть параметров кэшируется и инвалидируется только по времени.
таблица | time to live (TTL) в кэшэ | инвалидация кэша по запросу |
MongoDB sorm2.profiles | 1200 с | evict после редактирования, удаления в NBI |
MongoDB sorm2.links | 1200 с | evict после добавления, удаления в NBI |
информация об объекте (ap domain, dpi, cms) MySQL eltex-ems.ELTEX_OBJ_GEO | 600 c | нет |
информация о домене (region_id) MySQL eltex-ems.DOMAINS, DOMAIN_PARAMS | 600 с | нет |
подсети (ap domain) MongoDB pcrf.subnets | 600 с | нет |
ssid (dpi) MySQL wireless.SSID, SSID_PARAMS | 600 c | нет |
Там где инвалидации кэша по запросу нет, запись будет жить со старыми параметрами в течение TTL, потом удалиться и при следующем обращении заново закачается из БД с новыми параметрами. То есть параметры DPI например, применяются не мгновенно, а в ближайшие 600 секунд.