Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Содержание



Версия документа

Дата выпуска

Содержание изменений

Версия 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
Изменен период запуска eltex-radius-sorm3-federal с раз в 15 минут на раз в сутки, п.6.2.

Версия 1.814.05.2019

Добавлен DPI
Изменилась структура съемников

Версия 1.804.02.2021


Общая архитектура

Модули  Eltex-sorm2-replicator и Eltex-radius-sorm3-federal формируют выгрузки для  внешних системы. По выгружаемым  данным  можно  определить  местоположение  точки доступа.

1.1 Сетевая архитектура решения

Рисунок 1 – Общая сетевая топология решения


Между ESR и точками доступа поднимаются SoftGRE-туннели сквозь L3-инфраструктуру оператора. От каждой точки доступа формируется два туннеля: Management-туннель для передачи трафика управления и Data-туннель для передачи абонентского трафика.
Внутри Management-туннеля передается трафик управления точкой доступа в отдельной сети управления. Данная подсеть невидима для L3-сегмента оператора, скрываясь за заголовками GRE-туннеля. Внутри Data-туннеля передается абонентский трафик. Этот трафик терминируется на ESR и далее маршрутизируется в сеть оператора (в сторону его NAT).

1.2 Порядок прохождения трафика в схеме ТД «Элтекс»


Рисунок 3 – Порядок прохождения трафика в схеме ТД «Элтекс»

Данная схема актуальна:

  • Для ТД «Элтекс» работающих c Hotspot авторизацией;
  • Для ТД «Элтекс» работающих с авторизацией Enterprise.

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

1.3 Порядок прохождения трафика в схеме BRAS



Рисунок 2 – Порядок прохождения трафика в схеме BRAS

Данная схема актуальна:

  • Для ТД других производителей, включенных через ESR/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.
При снятии трафика СОРМ, должна учитываться эта реализация.

1.4 Передача трафика RADIUS accounting через сеть

На ТД «Элтекс» настроены 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


1.5 Описание цепочки восстановления местоположения ТД

1.5.1 Поиск по  Eltex-AP-Domain

Точка доступа  отправляет 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 файл  и дополняется  полученными данными из базы данных 

1.5.2 Поиск по nas ip

Если в RADIUS трафике отсутствует поле  Eltex-AP-Domain, то  поиск  ведет   по поля  NAS-IP-Address, аналогично прошлому  пункту.

1.5.3 Поиск по option82/cell

BRAS может перекладывать   option82 из DHCP пакетов  в RADIUS, дополнительно  формируется VSA атрибут CELL. Обогащение RADIUS трафика выполняется в формате, определенном в RFC4679.

CELL это  md5sum двух VSA атрибутов l2-interface и option82 (если присутствует). Атрибуты l2-interface и option82 неизменны в рамах одной локации. Для определения локации можно анализировать один атрибут CELL постоянной длины.   

CELL=md5sum(l2-inerface+option82)

Добавление  GenericAP происходит  автоматически, PCRF получает  пакет c option82, находит SSID и проверять необходимость в option82. Если  опция  включена в SSID, то добавление  новой  GenericAP ставится в очередь. GenericAP попадает в "песочницу", 




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 протокола формирует csv выгрузку  и определяет адрес съемника для дальнейшей пересылки пакета. Адрес съемника задается в настройках  домена в системе SoftWLC (ЛК B2B). Поиск съемника осуществляется вверх по дереву (от домена точки доступа во всех родительских узлах). Таким образом настроить съемник нужно только в доменах уровня МРФ или только в корневом домене, если съемник используется один. Можно задать  глобальный адрес  съемника в конфигурации сервиса  Eltex-sorm2-replicator.

Информация о домене может быть найдена (в порядке уменьшения приоритета):

  • По option82 в RADIUS пакете;
  • В 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.

Важно!

Если ни одним из способов не удалось найти Ap-Domain точки доступа, то трафик не может быть отправлен на Региональный съемник (привязки которых настраиваются в пункте 4.6).
Однако, в этом случае трафик все равно может быть отправлен на Глобальный съемник (global.clients в eltex-sorm2-replicator.json), если хотя бы один из них настроен в конфигурации. Глобальный съемник получает весь трафик, обрабатываемый sorm2-relicator'ом.

3 Описание пакета Eltex-radius-sorm3-federal


Eltex-radius-sorm3-federal является дополнительным модулем системы SoftWLC. Основная задача данного модуля – подготовка и выгрузка данных об абонентах и базовых станциях на FTP сервер для системы ИС СОРМ «Январь» (МФИ-СОФТ). Работу данного модуля можно разделить на две части:

  1. Выгрузка данных об абонентах и 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 сервер.

Подключение репозитория

Добавление ключа

# sudo wget -O - http://archive.eltex.org/wireless/repo.gpg.key | sudo apt-key add -

Добавление softwlc-1.20-xenial:

# echo "deb http://archive.eltex.org/wireless/ softwlc-1.20-xenial main" >> /etc/apt/sources.list.d/eltex.list

5 Настройка Eltex-sorm2-replicator

5.1 Установка и настройка Eltex-sorm2-replicator

Установку нужно производить на ОС: 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)

Увеличиваем размер буфера сетевых соединений и применяем изменения:

# echo net.core.rmem_max=134217728 >> /etc/sysctl.conf
# echo net.core.rmem_default=134217728 >> /etc/sysctl.conf
# sysctl -p

Установка пакета:

  1. Обновляем  список пакетов

    # apt update
  2. Устанавливаем пакет 

    # apt install eltex-sorm2-replicator
  3. После установки пакет нужно настроить и перезапустить сервис. При обновление пакета требуется ручной запуск. Конфигурационный файл лежит в директории /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
      },
    
      "mongo.sorm2" : {
        "connection_string": "mongodb://localhost:27017/sorm2"
      },
    
      "mongo.pcrf" : {
        "connection_string": "mongodb://localhost:27017/pcrf"
      },
    
      "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
      }
    }
    
  • Блок «radius» содержит адрес подключения к БД radius в MySQL;
  • Блок «sql.ems» содержит адрес подключения к БД eltex_ems в MySQL;
  • Блок «sql.wireless» содержит адрес подключения к БД wireless в 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 в radius

    • verbose=false - высылает пакет только если dpi = 1 (точка и ссид)
      verbose=true - всегда высылает пакет, в пакете значения dpi 0 или 1


Для корректной работы модуля нужно изменить адреса подключения к БД и FTP серверу. Для подключения к кластеру MongoDB нужно указать адреса серверов через запятую, пример:

"connection_string": "mongodb://100.110.22.36:27017,100.110.22.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.

5.2 Настройка состава  колонок в выгрузке IP_ACC_N_yyyyMMdd_Hhmm.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".

5.3 Настройка уведомлений при перезапуске сервиса Eltex-sorm2-replicator

Устанавливаем пакет 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, сервис должен запустится, на адрес назначения придет уведомление.

5.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

5.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 tomcat8 restart

5.6 Настройка IP-адресов региональных съемников в ЛК B2B

Для корректно работы Eltex-sorm2-replicator, для всех доменов в которых расположены RADIUS клиенты, нужно задать IP-адреса съёмников, данная настройка производится в Личном кабинете B2B.
Для активации меню настройки нужно перейти в меню Настройки-> Система-> Система и активировать настройку «Настройка СОРМ-2 в «Дереве доменов»». Для применения, перезайти в Личный кабинет B2B.

Создаем профиль. Переходим во вкладу "СОРМ-2" и нажимаем кнопку "Добавить"

 

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

Далее необходимо наш профиль закрепить в "Дереве доменов"  за доменом.  Нажимаем иконку и выбираем тот домен за которым хотим закрепить профиль. 
Данные привязок профилей к доменам сохраняются MongoDB sorm2.links.

6 Настройка Eltex-radius-sorm3-federal

6.1 Установка Eltex-radius-sorm3-federal

Установку нужно производить на ОС: 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)

Увеличиваем размер буфера сетевых соединений и применяем изменения:

Установка пакета:

  1. Обновляем  список пакетов

    # apt update
  2. Устанавливаем пакет 

    # apt install eltex-radius-sorm3

6.2 Настройка Eltex-radius-sorm3-federal

Конфигурационный файл лежит в директории

/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

Где:

  • nbi_ip – IP-адрес сервера с Eltex-radius-nbi;
  • nbi_port – порт SOAP/XML Eltex-radius-nbi;
  • auth_username – логин;
  • auth_password – пароль;
  • ftp_url – настройки доступа до ftp серверам;
  • start_count –  начальное число записей  запрашиваемых  при  старте,  если  скорость  получения данные   высокая  число  увеличивается  в процессе работы;
  • max_count  – максимальное число   записей  запрашиваемых за один  запрос;
  • skip_with_regionId_eq_0 - пропускать  домены с пустым полем REGION_ID.


Выгрузка запускается раз в сутки в 04:00.
Для изменения интервала выгрузки нужно отредактировать задание в CRON:

cat /etc/cron.d/sorm_export
MAILTO=""
00 4 * * * root /usr/share/eltex-radius-sorm3/export_sorm.sh

Важно!

Рекомендуется выбрать период наименьшей загрузки сети и минимизировать возможность пересечения с другими мониторами EMS и cron softwlc.


6.3 Настройка системы управления EMS

6.3.1 Настройка поля «Регион»

Для корректной выгрузки поля REGION_ID в справочники, нужно заполнить поле «Регион» в свойствах домена. Для данного поля работает наследование сверху вниз. Поиск региона проходит от нижестоящего узла к вышестоящему, при нахождение первого узла с заполненным регионом поиск прекращается. Для заполнения поля регион нужно перейти в меню «Домены», Администрирование-> Права и пользователи-> Домены, и отредактировать домен.

Заполнение нужно произвести до запуска первой выгрузки, так как полный список абонентов выгружается при первой выгрузке, в последующих выгрузкаx только измененные и новые записи. Если поле заполнить после первой выгрузки, то для выгруженных записей  оно будет пустым. 

6.3.2 Заполнение геоданных объектов

Для выполнение требований по СОРМ нужно заполнить адрес установки и географические координаты у ТД.
В привязках правил инициализации ТД добавлены новые поля «Широта» и «Долгота», при добавление нового правила эти поля обязательные для заполнения. Координаты нужно вводить в формате «37.587614». Для заполнения адреса можно воспользоваться функционалом заполнения по КЛАДРу (кнопка «Заполнить местоположение»), если адрес уже заполнен и нужны только географические координаты можно воспользоваться функционалом заполнения геокоординат (кнопка «Заполнения геокоординаты»). Функционал автоматического заполнения местоположения и геокоординат требует доступ до одного серверов:

так как запросы идут с сервера EMS. Выбор системы для геокодирования осуществляется в системных модулях EMS, по умолчанию используется Google.
Альтернативный способ получение координаты через https://yandex.ru/maps или https://www.google.ru/maps
Для активации, геоданных объектов и сделать поля обязательным для заполнения. необходимо выставить флаги «Включить геоданные объектов» и «Включить обязательность геоданных объектов» в системных модулях EMS


Информация в Привязках инициализации и вкладке Доступ меняется синхронно. Изменение в одном месте, автоматически изменяет данные в другом. Повторная инициализация ТД, добавленных до включения блока геоданных, не требуется.

6.3.3 Заполнение поля Framed-IP-Address для WPA Enterprise на ТД «Элтекс»


Для заполнения поля Framed-IP-Address в start пакетах RADIUS accounting нужно включить опцию «Accounting wait IP» в настройках SSID с типом авторизации WPA Enterprise. Данная опция активирует отправку start пакет только после получения IP-адреса клиентом. Опция «Accounting wait IP» отображается если выставлен флаг «Режим суперпользователя» в настройках апплета.


6.3.4 Активация монитора синхронизации устройств

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

6.3.5 Настройка DPI (Step Logic)

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

Активация DPI на точке доступа.

  • Первый способ
    Включить DPI на конкретной точке доступа, для этого необходимо:
    1. Выбрать точку доступа и перейти во вкладку "Доступ"
    2. Нажать кнопку "Редактировать"  и установить флаг DPI (Step Logic), затем "Принять"  установленные изменения


  • Второй способ
    Данный способ подходит для группового включения на нескольких точках.
    1. Перейти в необходимы домен (в примере addr1)
    2. Затем во вкладке "Список устройств", выбрать устройства на которых нужно включить DPI. Для удобства выборки устройств, их можно отсортировать по типу.
    3. Далее в "Групповых операциях"  находим "Смена параметров Доступ''  и нажимаем "Выполнить" 

    4. Устанавливаем 2 флага и жмем "Применить
        DPI Включен
          DPI Выключен

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

Активация DPI в SSID

  1. Переходим в "Менеджер 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 на этом заканчивается.


Примеры настройки:

  1. Включить DPI для всех SSID на всех точках доступа.
    1.  Через "Список устройств" в домене выбрать все точки доступа и  включить на них DPI. 
    2. Через "Менеджер SSID" включить на всех SSID DPI, и нажать кнопку исправить.
  2. Включить DPI для конкретных SSID на всех точках доступа.
    1.  Через "Список устройств" в домене выбрать все точки доступа и  включить на них DPI. 
    2. Через "Менеджер SSID" выбрать необходимый SSID, включить DPI, и нажать кнопку исправить.
  3. Включить DPI для всех SSID на конкретных точках доступа клиента.
    1.  Через "Список устройств" в домене выбрать нужные точки доступа и включить на них DPI,  или во вкладке "Доступ" на каждой точке включить DPI. 
    2. Через "Менеджер SSID" включить на всех SSID DPI, и нажать кнопку исправить.
  4. Включить DPI для конкретного SSID на конкретных ТД.
    1. Через "Список устройств" в домене выбрать нужные точки доступа и включить на них DPI,  или во вкладке "Доступ" на каждой точке включить DPI. 
    2. Через "Менеджер SSID" выбрать необходимый SSID, включить DPI, и нажать кнопку исправить.


Пример трафика с включенным и выключенным DPI

DPI выключен.

DPI включен.

6.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 tomcat8 restart


Этот параметр активирует:

  • Выгрузку изменений в учетных записях пользователей Wi-Fi
  • Проверку наличия данных об операторе (ФИО) при создании и редактировании учетных записей пользователей Wi-Fi

6.5 Настройка Конструктора порталов

После активации параметра sorm3.enabled, взаимодействие с NBI под учетной записью по умолчанию (admin) будет запрещено, если у записи не заполнены обязательные поля(ФИО, номер телефона). Для корректной работы портала нужно использовать служебную запись softwlc_service/softwlc для взаимодействие с NBI. Для изменения данных доступа к NBI, нужно в конструкторе порталом перейти на вкладку «Доступ к NBI» и прописать новые данные.

6.5 Настройка Личного кабинета B2B

6.6.1 Заполнение обязательных полей у администраторов ЛК B2B

Поля ФИО и номер телефона стали обязательными у учетных записей администраторов ЛК B2B. При создании/редактировании пользователей Wi-Fi, фиксируются данные администратора, который внес изменения в учетную запись. Если поля не заполнены, то администратор не сможет редактировать и создавать учетные записи пользователей Wi-Fi.
Для заполнения данных нужно перейти на вкладку Настройка->Системные пользователи, выбрать учетную запись и заполнять обязательные поля.

6.6.2 Заполнение обязательных полей у пользователей Enterprise

Для выполнения требований СОРМ, необходимо заполнить обязательные поля у учетных записей пользователей Enterprise. Для корректирования текущих записей нужно в личном кабинете B2B открыть запись для редактирования и заполнить соответствующие поля.

7 Рекомендации по распределению модулей

Модули Eltex-sorm2-replicator и Eltex-radius-sorm3 можно расположить на одном сервере. Для высоконагруженных систем нужно использовать кластер из двух и более нод Eltex-sorm2-replicator. В кластере весь RADIUS трафик приходит на определенную ноду Eltex-sorm2-replicator , а обработка делится между остальными участниками. Eltex-radius-sorm3 нужно запускать только на одной ноде.

8 Настройка кластера Eltex-sorm2-replicator

Для настройки кластера нужно подготовить второй сервер аналогично первому, настройка описана в п. 4. Между серверами Eltex-sorm2-replicator нужно открыть порты 5701 tcp, 5801 tcp На серверах в файлах конфигурации /etc/eltex-sorm2-replicator/hazelcast-cluster.xml нужно:

  • указать адреса сетевых интерфейсов в блоке network:
    public-address - адрес самого сервера;
    interface - адрес сети, где нужно искать участников кластера в режиме multicast;
    member - адрес всех членов кластера ).
  • Отключить  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="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 должны присутствовать все ноды.


Важно!

Большая часть параметров кэшируется и инвалидируется только по времени. 

таблицаtime to live (TTL) в кэшеинвалидация кэша по запросу
MongoDB sorm2.profiles1200 сevict после редактирования, удаления в NBI
MongoDB sorm2.links1200 с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 секунд.



  • Нет меток