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

Содержание



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

Дата выпуска

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

Версия 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.915.09.2021Актуализация документации


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

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

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

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


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

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


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

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

  • Для ТД ELTEX работающих c Hotspot авторизацией;
  • Для ТД ELTEX работающих с авторизацией 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 через сеть

На ТД ELTEX настроены SSID с авторизацией Enterprise, данные RADIUS accounting передаются с ТД в GRE туннеле до ESR (в VRF AP), а затем к SoftWLC в (VRF Baskbone).
На ТД ELTEX c Hotspot авторизацией данные RADIUS accounting передаются с ТД в GRE туннеле до ESR (в VRF AP), а затем к SoftWLC в (VRF Baskbone).
На ТД ELTEX 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 Описание цепочки восстановления местоположения ТД

Задача: восстановить точное положение точки доступа для определённой сессии пользователя по RADIUS Accounting в любой схеме включения. 

Для восстановления информации о базовой станции используется две сущности: аккаунтинг (СОРМ-2) и справочники (СОРМ-3). Аккаунтинг по протоколу RADIUS высылает точка доступа ELTEX или станционный сервисный маршрутизатор с функцией BRAS, далее аккаунтинг снимается региональным СОРМ-2 съёмником и отправляется на пульт СОРМ. Параллельно модуль ядра платформы Eltex-sorm-2-replicator сохраняет копию аккаунтинга в текстовые файлы формата csv и  периодически отправляет  данные на FTP-сервер принимающей стороны.  Сервис Eltex-radius-sorm3-federal периодически  формирует и загружает на FTP- сервер справочники базовых станций (СОРМ-3)  в формате csv.

Идентификатором пользователя в данных аккаунтинга является поле USER-NAME, куда вносится номер телефона, сохранённый платформой идентификации (при идентификации через Госуслуги там будет уникальный идентификатор учётной записи, предоставленный системой Госуслуг).

Для системы СОРМ идентификационной связкой является совпадение полей или их значащих частей  в: 

  1. Онлайн RADIUS accounting поля CALLED-STATION-ID и CELL, ;
  2. Сохранённый аккаунтинг (файлы IP_ACC). Поля  WL_MAC_END, WL_MAC_END, WL_CELL_START,  WL_CELL_END;
  3. Справочник WRL (файлы BASE_STATION_WRL). Поля MAC, CELL_WIRELESS.

1.5.1 Схема предоставления услуг на точках доступа Eltex

Ниже рассмотрен пример соответствия полей в классической схеме предоставления Wi-Fi B2B с точками доступа ELTEX.

Пример заполнения поля CALLED-STATION-ID в RADIUS Accounting для точек доступа устройством  ELTEX (WEP-2AC, WEP-12AC и т.д.):

...

CALLED-STATION-ID

...


A8-F9-4B-B6-FE-40:bank

В поле Called-Station-Id помещается MAC точки доступа и наименование SSID, что полностью соответствует полям AP_MAC:CELL в выгрузке IP_ACCT и  справочниках BASE_STATION_WRL.

СОРМ-2 съёмник не производит преобразование данных RADIUS-трафика.

Сегмент выгрузки аккаунтинг для точек доступа ELTEX. Файла IP_ACCT:

...

WL_CELL_START

WL_MAC_START

WL_CELL_END

WL_MAC_END

...


A8-F9-4B-B6-FE-40:bankA8F94BB6FE40A8-F9-4B-B6-FE-40:bankA8F94BB6FE40

A8-F9-4B-B6-FE-41:bank-corpA8F94BB6FE40A8-F9-4B-B6-FE-40:bank-corpA8F94BB6FE40


Пример справочника BASE_STATION_WRL для точек доступа ELTEX:

ID

BASE_STATION_ID

CELL_WIRELESS

MAC

REGION_ID

3807938079A8-F9-4B-B6-FE-40:bankA8F94BB6FE4065
3807938079A8-F9-4B-B6-FE-41:bank-corpA8F94BB6FE4065
3807938079A8-F9-4B-B6-FE-50:bankA8F94BB6FE4065
3807938079A8-F9-4B-B6-FE-51:bank-corpA8F94BB6FE4065

В поле "CELL_WIRELESS" находится AP_MAC:SSID_NAME, что полностью соответствует формату AP_MAC:SSID_NAME в полях WL_CELL_START и WL_CELL_END в выгрузке аккаунтинга, содержащей сессии абонентов.

Значение поля BASE_STATION_ID прямо указывает на идентификатор точки доступа  ELTEX в справочнике BASE_STATION, в котором находится полный адрес установки точки доступа, включая гео-координаты.

Пример RADIUS  трафика:

Frame 7: 362 bytes on wire (2896 bits), 362 bytes captured (2896 bits)
Ethernet II, Src: EltexEnt_d8:f2:03 (e0:d9:e3:d8:f2:03), Dst: 02:00:ef:41:23:8c (02:00:ef:41:23:8c)
Internet Protocol Version 4, Src: 10.102.14.216, Dst: 10.10.5.50
User Datagram Protocol, Src Port: 34118, Dst Port: 1813
RADIUS Protocol
    Code: Accounting-Request (4)
    Packet identifier: 0x2 (2)
    Length: 320
    Authenticator: d9c2aeb0c3f1f5d175a0be0d89c33a3d
    [The response to this request is in frame 8]
    Attribute Value Pairs
        AVP: t=Acct-Session-Id(44) l=19 val=619EF07B-74FF3AAE
        AVP: t=Framed-IP-Address(8) l=6 val=172.10.191.149
        AVP: t=Acct-Status-Type(40) l=6 val=Interim-Update(3)
        AVP: t=User-Name(1) l=13 val=79123456987
        AVP: t=Service-Type(6) l=6 val=Unknown(0)
        AVP: t=Vendor-Specific(26) l=49 vnd=Eltex Enterprise, Ltd.(35265)
            Type: 26
            Length: 49
            Vendor ID: Eltex Enterprise, Ltd. (35265)
            VSA: t=Eltex-Domain(13) l=43 val=Guest.ELTEX.Novosibirsk.Sibir.Clietn.root
        AVP: t=NAS-IP-Address(4) l=6 val=10.102.14.216
        AVP: t=Event-Timestamp(55) l=6 val=Jan  5, 2000 14:15:33.000000000 +06
        AVP: t=NAS-Port-Id(87) l=4 val=17
        AVP: t=Called-Station-Id(30) l=30 val=E0-D9-E3-73-07-60:SSID_guest
            Type: 30
            Length: 30
            Called-Station-Id: E0-D9-E3-73-07-60:SSID_guest
        AVP: t=Calling-Station-Id(31) l=19 val=C6-1A-A8-C9-D1-B4
        AVP: t=NAS-Port-Type(61) l=6 val=Wireless-802.11(19)
        AVP: t=Acct-Session-Time(46) l=6 val=42
        AVP: t=Acct-Input-Packets(47) l=6 val=121
        AVP: t=Acct-Output-Packets(48) l=6 val=620
        AVP: t=Acct-Input-Octets(42) l=6 val=16699
        AVP: t=Acct-Input-Gigawords(52) l=6 val=0
        AVP: t=Acct-Output-Octets(43) l=6 val=102030
        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=43 vnd=Eltex Enterprise, Ltd.(35265)
            Type: 26
            Length: 43
            Vendor ID: Eltex Enterprise, Ltd. (35265)
            VSA: t=Eltex-AP-Domain(24) l=37 val=ELTEX.Novosibirsk.Sibir.Clietn.root

Дамп трафика: Hotspot_ELTEX_AP.pcap

1.5.2 Схема предоставления услуг через BRAS

1.5.2.1 Идентификация  по L2-interface

Ниже рассмотрен пример соответствия полей для случая когда пользовательский трафик передаётся со всех точек доступа сторонних производителей в одном VLAN. Такая схема обеспечивает детализацию с точностью до локации ESR-10, т.е. до здания или до офиса. Если нужна детализация до каждой  точки доступа, то  для каждой  точки нужно  выделить отдельный VLAN.

Пример заполнения значащего поля пакетов RADIUS Accounting сервисным маршрутизатором с функциями BRAS:

...

CALLED-STATION-ID

L2-interface

CELL

A8-F9-4B-AB-B4-40:APUSER2NODE.12968.2408acd982c6c0f4954f4d3862c3a02c4017

A8-F9-4B-AB-B4-40:APUSER3gi1/0/1.200db02d043336ae07058d34a4dfc912751

В поле Called-Station-Id помещается MAC сервисного маршрутизатора и служебная информация bridge-location из конфигурации BRAS.

В поле L2-interface помещается идентификатор интерфейса L2, на котором предоставляется услуга. 

В схеме  включения  L2 интерфейс  представлен в виде InterfaceU/S/P.VLAN (пример: gi1/0/1.200), где:

  • Interface - тип интерфейса;
  • U -  UNIT
  • S - SLOT
  • P - PORT
  • VLAN - это номер VLAN в котором идёт абонентский трафик от ТД сторонних производителей.

В схеме  включения  L3 интерфейс  примет вид NODE.ID.VLAN (пример: NODE.12968.2408), где:

  • NODE - ключевое слово;
  • ID - уникальный идентификатор устройства ESR-10 в пределах платформы SoftWLC в числовом формате;
  • VLAN - это номер VLAN в котором идёт абонентский трафик от ТД сторонних производителей, включенных в клиентский ESR-10.

В поле CELL помещается  md5sum от  L2-interface.

В текущей версии eltex-radius-sorm3 полноценно поддержана  схема  включения L3, для схемы L2 нельзя определить расположение точки доступа. 

Сегмент выгрузки аккаунтинга файл IP_ACC:

...

WL_CELL_START

WL_MAC_START

WL_CELL_END

WL_MAC_END

L2_INTERFACE...

da5cf1504ab138035426050822df05f8A8F94BABB440da5cf1504ab138035426050822df05f8A8F94BABB440NODE.12886.2410

В поля "WL_CELL_START"/"WL_CELL_END" помещается значение CELL.

В поле "WL_MAC_START"/"WL_MAC_END" помещается BRAS MAC.

Пример справочника BASE_STATION_WIFI_WRL для схемы с идентификацией по l2-intarface:

ID

BASE_STATION_ID

CELL_WIRELESS

MAC

REGION_ID

1288612886NODE.12886.2410A8F94BAB664054
1288612886NODE.12886.2410A8F94BABB44054

Справочник    BASE_STATION_WIFI_WRL содержит  избыточные данные. Выгружаются все комбинации  CELL_WIRELESS и MAC для данной локации,   так как    в схеме с резервированием клиентский  ESR можете  перейти на другой  станционный ESR и произойдет  смена  WL_MAC_ и других параметров  в RADIUS Accounting.

Взятый для примера MAC="A8F94BABB440" - это BRAS MAC.

Значение поля BASE_STATION_ID указывает на идентификатор ESR-10 в справочнике BASE_STATION, в котором находится полный адрес установки ESR. Что обеспечивает точность "до здания" или "до офиса". Для корректного формирования справочника базовых станций для устройств ESR-10 (и других клиентских ESR) необходимо полностью заполнить геоданные.

Пример  справочника  BASE_STATION:

IDBEGIN_TIMEEND_TIMESTATION_TYPEADDRESSSECTOR_TYPELACCELLCELL_SIGNADDRESS_TYPE_IDADDRESS_TYPEZIPCOUNTRYREGIONZONECITYSTREETBUILDINGBUILD_SECTAPARTEMENTUNSTRUCT_INFOLATITUDE_GRADELONGITUDE_GRADEPROJECTION_TYPEREGION_ID
128862000-12-31 23:59:592024-12-31 23:59:593Russia Новосибирская Новосибирск Окружная 29в1


30630068RussiaНовосибирская

Новосибирск

Окружная29в
55
55.0836382.93833
54

Пример RADIUS  трафика:

Frame 9: 527 bytes on wire (4216 bits), 527 bytes captured (4216 bits)
Ethernet II, Src: EltexEnt_d8:f2:03 (e0:d9:e3:d8:f2:03), Dst: 02:00:ef:41:23:8c (02:00:ef:41:23:8c)
Internet Protocol Version 4, Src: 10.10.11.1, Dst: 10.10.5.50
User Datagram Protocol, Src Port: 53852, Dst Port: 31813
RADIUS Protocol
    Code: Accounting-Request (4)
    Packet identifier: 0xf0 (240)
    Length: 485
    Authenticator: c2fdde92305b2fb7c6b650583f511697
    [The response to this request is in frame 10]
    Attribute Value Pairs
        AVP: t=User-Name(1) l=13 val=79123456789
        AVP: t=Vendor-Specific(26) l=36 vnd=ciscoSystems(9)
        AVP: t=Acct-Session-Id(44) l=21 val=1873497444986126498
        AVP: t=Acct-Status-Type(40) l=6 val=Interim-Update(3)
        AVP: t=Vendor-Specific(26) l=24 vnd=ciscoSystems(9)
        AVP: t=Event-Timestamp(55) l=6 val=Sep 17, 2021 14:29:09.000000000 +07
        AVP: t=NAS-Port-Id(87) l=18 val=location APUSER5
        AVP: t=Called-Station-Id(30) l=27 val=A8-F9-4B-AB-B4-40:APUSER5
        AVP: t=Vendor-Specific(26) l=47 vnd=ciscoSystems(9)
        AVP: t=Vendor-Specific(26) l=29 vnd=Eltex Enterprise, Ltd.(35265)
            Type: 26
            Length: 29
            Vendor ID: Eltex Enterprise, Ltd. (35265)
            VSA: t=Eltex-Domain(13) l=23 val=ESRAP1.LOADSTEND.root
        AVP: t=Vendor-Specific(26) l=47 vnd=ciscoSystems(9)
            Type: 26
            Length: 47
            Vendor ID: ciscoSystems (9)
            VSA: t=Cisco-AVPair(1) l=41 val=subscriber:l2-interface=NODE.12886.2410
        AVP: t=Vendor-Specific(26) l=56 vnd=ciscoSystems(9)
            Type: 26
            Length: 56
            Vendor ID: ciscoSystems (9)
            VSA: t=Cisco-AVPair(1) l=50 val=subscriber:CELL=da5cf1504ab138035426050822df05f8
        AVP: t=Vendor-Specific(26) l=28 vnd=ciscoSystems(9)
        AVP: t=NAS-Identifier(32) l=14 val=ESR1700-ALFA
        AVP: t=Framed-IP-Address(8) l=6 val=172.12.70.75
        AVP: t=Calling-Station-Id(31) l=19 val=14-58-D0-C5-2A-36
        AVP: t=Vendor-Specific(26) l=16 vnd=ciscoSystems(9)
        AVP: t=Vendor-Specific(26) l=16 vnd=ciscoSystems(9)
        AVP: t=Acct-Input-Gigawords(52) l=6 val=0
        AVP: t=Acct-Input-Octets(42) l=6 val=665497
        AVP: t=Acct-Output-Gigawords(53) l=6 val=0
        AVP: t=Acct-Output-Octets(43) l=6 val=6426598
        AVP: t=Acct-Session-Time(46) l=6 val=120
        AVP: t=NAS-IP-Address(4) l=6 val=10.10.11.1


Дамп  трафика: Hotspot_ELTEX_BRAS_L2-int_.pcap

1.5.2.1 Идентификация по option 82

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

Добавление  GenericAP происходит  автоматически, PCRF RADIUS получает  пакет c option 82, находит SSID и проверять необходимость в option 82. Если  опция  включена в SSID, новая  GenericAP ставится в очередь EMS на добавление. GenericAP попадает в "песочницу" и ожидает инициализации. Инициализация проходит автоматические если создана  привязка инициализации.

Пример заполнения значащих полей RADIUS Accounting сервисным маршрутизатором с функциями BRAS:

...

CALLED-STATION-ID

L2-interface

CELLBroadband Forum (previously 'DSL Forum')(3561)....

A8-F9-4B-AB-B4-40:APUSER2NODE.12968.24083a6700ae8a413d665ea4ee88910c8f3e

VSA: t=ADSL-Agent-Circuit-Id(1) l=33 val=Mes2324_ALEX-DEN eth 100/8:2408

VSA: t=ADSL-Agent-Remote-Id(2) l=8 val=������


В поле Called-Station-Id помещается MAC сервисного маршрутизатора и служебная информация bridge-location из конфигурации BRAS.

В поле Broadband Forum помещается значение  option 82 из DHCP пакета. 

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

CELL=md5sum(l2-inerface+option 82)

Сегмент выгрузки аккаунтинга файл IP_ACC:

...

WL_CELL_START

WL_MAC_START

...

WL_CELL_END

WL_MAC_END

...

L2_INTERFACE

3a6700ae8a413d665ea4ee88910c8f3eA8F94BABB440
3a6700ae8a413d665ea4ee88910c8f3eA8F94BABB440
NODE.12886.2408

В поля "WL_CELL_START"/"WL_CELL_END" помещается значение CELL.

В поле "WL_MAC_START"/"WL_MAC_END" помещается BRAS MAC.

Пример справочника BASE_STATION_WIFI_WRL для схемы с идентификацией по option 82:

ID

BASE_STATION_ID

CELL_WIRELESS

MAC

REGION_ID

13457134573a6700ae8a413d665ea4ee88910c8f3eA8F94BABB44054

В поле "CELL_WIRELESS" расположен CELL,  которое обеспечивает консистентность при поиске базовой станции.

Взятый для примера MAC="A8F94BABB440" - это BRAS MAC.

Значение поля BASE_STATION_ID указывает на идентификатор GenericAP в справочнике BASE_STATION, в котором находится полный адрес установки точки доступа.

Условие работы: Для корректного формирования справочника базовых станций для устройств GenericAP необходимо полностью заполнить геоданные.

Пример  справочника  BASE_STATION:

IDBEGIN_TIMEEND_TIMESTATION_TYPEADDRESSSECTOR_TYPELACCELLCELL_SIGNADDRESS_TYPE_IDADDRESS_TYPEZIPCOUNTRYREGIONZONECITYSTREETBUILDINGBUILD_SECTAPARTEMENTUNSTRUCT_INFOLATITUDE_GRADELONGITUDE_GRADEPROJECTION_TYPEREGION_ID
134572000-12-31 23:59:592024-12-31 23:59:593Russia Новосибирская Новосибирск Нарымская 11 1 301


30
RussiaНСО
НовосибирскНарымская11130
55.0393682.90998
54

Пример RADIUS трафика:

Frame 15: 572 bytes on wire (4576 bits), 572 bytes captured (4576 bits)
Ethernet II, Src: EltexEnt_d8:f2:03 (e0:d9:e3:d8:f2:03), Dst: 02:00:ef:41:23:8c (02:00:ef:41:23:8c)
Internet Protocol Version 4, Src: 10.10.11.1, Dst: 10.10.5.50
User Datagram Protocol, Src Port: 46239, Dst Port: 31813
RADIUS Protocol
    Code: Accounting-Request (4)
    Packet identifier: 0x10 (16)
    Length: 530
    Authenticator: a2ad5e1d850039ebbb456c038c5d77a5
    [The response to this request is in frame 16]
    Attribute Value Pairs
        AVP: t=User-Name(1) l=13 val=79123456789
        AVP: t=Vendor-Specific(26) l=36 vnd=ciscoSystems(9)
        AVP: t=Acct-Session-Id(44) l=21 val=1873497444986126452
        AVP: t=Acct-Status-Type(40) l=6 val=Interim-Update(3)
        AVP: t=Vendor-Specific(26) l=24 vnd=ciscoSystems(9)
        AVP: t=Event-Timestamp(55) l=6 val=Sep 10, 2021 16:42:14.000000000 +07
        AVP: t=NAS-Port-Id(87) l=18 val=location APUSER2
        AVP: t=Called-Station-Id(30) l=27 val=A8-F9-4B-AB-B4-40:APUSER2
        AVP: t=Vendor-Specific(26) l=47 vnd=ciscoSystems(9)
        AVP: t=Vendor-Specific(26) l=29 vnd=Eltex Enterprise, Ltd.(35265)
            Type: 26
            Length: 29
            Vendor ID: Eltex Enterprise, Ltd. (35265)
            VSA: t=Eltex-Domain(13) l=23 val=ESRAP1.LOADSTEND.root
        AVP: t=Vendor-Specific(26) l=47 vnd=Broadband Forum (previously 'DSL Forum')(3561)
            Type: 26
            Length: 47
            Vendor ID: Broadband Forum (previously 'DSL Forum') (3561)
            VSA: t=ADSL-Agent-Circuit-Id(1) l=33 val=Mes2324_ALEX-DEN eth 100/8:2408
            VSA: t=ADSL-Agent-Remote-Id(2) l=8 val=������
        AVP: t=Vendor-Specific(26) l=47 vnd=ciscoSystems(9)
            Type: 26
            Length: 47
            Vendor ID: ciscoSystems (9)
            VSA: t=Cisco-AVPair(1) l=41 val=subscriber:l2-interface=NODE.12886.2408
        AVP: t=Vendor-Specific(26) l=56 vnd=ciscoSystems(9)
            Type: 26
            Length: 56
            Vendor ID: ciscoSystems (9)
            VSA: t=Cisco-AVPair(1) l=50 val=subscriber:CELL=3a6700ae8a413d665ea4ee88910c8f3e
        AVP: t=Vendor-Specific(26) l=28 vnd=ciscoSystems(9)
        AVP: t=NAS-Identifier(32) l=14 val=ESR1700-ALFA
        AVP: t=Framed-IP-Address(8) l=6 val=172.11.247.246
        AVP: t=Calling-Station-Id(31) l=19 val=C6-EF-86-E8-7B-BF
        AVP: t=Vendor-Specific(26) l=15 vnd=ciscoSystems(9)
        AVP: t=Vendor-Specific(26) l=15 vnd=ciscoSystems(9)
        AVP: t=Acct-Input-Gigawords(52) l=6 val=0
        AVP: t=Acct-Input-Octets(42) l=6 val=66757
        AVP: t=Acct-Output-Gigawords(53) l=6 val=0
        AVP: t=Acct-Output-Octets(43) l=6 val=82787
        AVP: t=Acct-Session-Time(46) l=6 val=180
        AVP: t=NAS-IP-Address(4) l=6 val=10.10.11.1

0000   02 00 ef 41 23 8c e0 d9 e3 d8 f2 03 08 00 45 00   ...A#.........E.
0010   02 2e 4a 11 40 00 3f 11 cb 67 0a 0a 0b 01 0a 0a   ..J.@.?..g......
0020   05 32 b4 9f 7c 45 02 1a 5f 72 04 10 02 12 a2 ad   .2..|E.._r......
0030   5e 1d 85 00 39 eb bb 45 6c 03 8c 5d 77 a5 01 0d   ^...9..El..]w...
0040   37 39 31 32 33 34 35 36 37 38 39 1a 24 00 00 00   79123456789.$...
0050   09 01 1e 73 75 62 73 63 72 69 62 65 72 3a 63 6f   ...subscriber:co
0060   6d 6d 61 6e 64 3d 75 73 65 72 2d 61 75 74 68 2c   mmand=user-auth,
0070   15 31 38 37 33 34 39 37 34 34 34 39 38 36 31 32   .187349744498612
0080   36 34 35 32 28 06 00 00 00 03 1a 18 00 00 00 09   6452(...........
0090   01 12 73 75 62 73 63 72 69 62 65 72 3a 76 72 66   ..subscriber:vrf
00a0   3d 31 37 06 61 3b 28 76 57 12 6c 6f 63 61 74 69   =17.a;(vW.locati
00b0   6f 6e 20 41 50 55 53 45 52 32 1e 1b 41 38 2d 46   on APUSER2..A8-F
00c0   39 2d 34 42 2d 41 42 2d 42 34 2d 34 30 3a 41 50   9-4B-AB-B4-40:AP
00d0   55 53 45 52 32 1a 2f 00 00 00 09 01 29 73 75 62   USER2./.....)sub
00e0   73 63 72 69 62 65 72 3a 64 6f 6d 61 69 6e 3d 45   scriber:domain=E
00f0   53 52 41 50 31 2e 4c 4f 41 44 53 54 45 4e 44 2e   SRAP1.LOADSTEND.
0100   72 6f 6f 74 1a 1d 00 00 89 c1 0d 17 45 53 52 41   root........ESRA
0110   50 31 2e 4c 4f 41 44 53 54 45 4e 44 2e 72 6f 6f   P1.LOADSTEND.roo
0120   74 1a 2f 00 00 0d e9 01 21 4d 65 73 32 33 32 34   t./.....!Mes2324
0130   5f 41 4c 45 58 2d 44 45 4e 20 65 74 68 20 31 30   _ALEX-DEN eth 10
0140   30 2f 38 3a 32 34 30 38 02 08 e0 d9 e3 d2 cc 80   0/8:2408........
0150   1a 2f 00 00 00 09 01 29 73 75 62 73 63 72 69 62   ./.....)subscrib
0160   65 72 3a 6c 32 2d 69 6e 74 65 72 66 61 63 65 3d   er:l2-interface=
0170   4e 4f 44 45 2e 31 32 38 38 36 2e 32 34 30 38 1a   NODE.12886.2408.
0180   38 00 00 00 09 01 32 73 75 62 73 63 72 69 62 65   8.....2subscribe
0190   72 3a 43 45 4c 4c 3d 33 61 36 37 30 30 61 65 38   r:CELL=3a6700ae8
01a0   61 34 31 33 64 36 36 35 65 61 34 65 65 38 38 39   a413d665ea4ee889
01b0   31 30 63 38 66 33 65 1a 1c 00 00 00 09 01 16 73   10c8f3e........s
01c0   75 62 73 63 72 69 62 65 72 3a 76 65 72 73 69 6f   ubscriber:versio
01d0   6e 3d 32 20 0e 45 53 52 31 37 30 30 2d 41 4c 46   n=2 .ESR1700-ALF
01e0   41 08 06 ac 0b f7 f6 1f 13 43 36 2d 45 46 2d 38   A........C6-EF-8
01f0   36 2d 45 38 2d 37 42 2d 42 46 1a 0f 00 00 00 09   6-E8-7B-BF......
0200   fd 09 49 3b 50 3b 32 38 39 1a 0f 00 00 00 09 fd   ..I;P;289.......
0210   09 4f 3b 50 3b 32 37 32 34 06 00 00 00 00 2a 06   .O;P;2724.....*.
0220   00 01 04 c5 35 06 00 00 00 00 2b 06 00 01 43 63   ....5.....+...Cc
0230   2e 06 00 00 00 b4 04 06 0a 0a 0b 01               ............


 

Расчет CELL с option82:

  • Берем значение  l2-interface в hex:

    4e4f44452e31323838362e32343038
  • Берем значение option82 в hex без параметров VSA (Type, Length, Vendor ID ):

    01214d6573323332345f414c45582d44454e20657468203130302f383a323430380208e0d9e3d2cc80
  • Складываем  l2-interface+option82:

    4e4f44452e31323838362e3234303801214d6573323332345f414c45582d44454e20657468203130302f383a323430380208e0d9e3d2cc80
  • Сохраняем  полученную строку в файл cell через hex редактор

    00000000   4E 4F 44 45  2E 31 32 38  38 36 2E 32  34 30 38 01  21 4D 65 73  32 33 32 34  5F 41 4C 45  58 2D 44 45  4E 20 65 74  68 20 31 30  NODE.12886.2408.!Mes2324_ALEX-DEN eth 10
    00000028   30 2F 38 3A  32 34 30 38  02 08 E0 D9  E3 D2 CC 80                                                                                0/8:2408........
  • Получаем  CELL: 

    $ md5sum cell
    3a6700ae8a413d665ea4ee88910c8f3e  cell

Дамп  трафика: Hotspot_ELTEX_BRAS_option82.pcap

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.

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

  • По option 82 в RADIUS пакете;
  • В RADIUS пакета от ТД ELTEX, если он содержит 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 на ТД ELTEX


Для заполнения поля 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 секунд.




  • Нет меток