Версия | 1.4 |
---|---|
Дата модификации | 17.12.2019 |
Автор | Абаренов ВП |
Описание задачи
Требуется обеспечить сбор MAC-адресов всех пользовательских устройств, попадающих в зону действия точек доступа, работающих в режиме "Радар".
Вся информация о МАС адресах должна быть направлена в МАС коллектор партнёрской компании Hot-WiFi. Функция фильтрации фиктивных (рэндомных) МАС адресов, которые могут выдавать некоторые клиентские устройства, возложена на МАС коллектор компании Hot-WiFi.
Техническое решение
В качестве точек доступа для услуги "Радар" используются точки доступа производства Элтекс WEP-2ac в особом режиме, который определяется конфигурацией точки доступа.
В качестве ядра для управления сетью точек доступа в режиме "Радар" развёртывается отдельное решение (отдельная Платформа), состоящая из сокращённого количества приложений (исключаются все приложения, отвечающие за услугу Wi-Fi).
Работоспособность решения гарантируется в сети провайдера Ростелеком по классической схеме включения (стандартное тех.решение для услуги Wi-Fi): построение GRE туннелей от ТД к транспортным маршрутизаторам ESR, внутри туннеля идёт только трафик управления (management). При этом Data-tunnel и доступ к сети Интернет точкам доступа не требуется.
При установке ТД на сети, сотрудники РТК (ДЭФИР) выполняют типовую процедуру для инициализации ТД в системе управления, т.е. создают привязку инициализации по MAC-адресу точки доступа. В привязке инициализации указывается почтовый адрес установки и домен узла, который определяет географическое положение ТД (AP Loacation). Данный параметр (AP Location) вписывается в ТД через протокол SNMP при процедуре инициализации. Эту информация ТД передаёт в качестве идентификации локации в коллектор МАС. Таким образом, все ТД одной локации передают информацию с одинаковым параметром 'radar_id', и при этом различаются собственным MAC адресом, параметр 'ap_id'. В такой схеме не требуется обогащение трафика коллектором в ядре Элтекс.
Для централизации трафика и снижения количества транспортных туннелей в два раза, в федеральном ядре Ростелеком, в состав Платформы добавляется промежуточный МАС коллектор производства Элтекс (функции МАС коллектора см. ниже).
На платформе Элтекс должна быть настроена маршрутизация таким образом, чтобы MAC коллектор Элтекс из ядра Ростелеком мог выполнять обращение в МАС коллектору Hot-WiFi, находящемуся за пределами ядра. Это может быть работа через NAT (односторонний выход в интернет по инициативе МАС коллектора Элтекс) или организация VPN между серверами (на усмотрение РТК/ДЭФИР).
Примечания и ограничения
- В режиме сканера точка доступа не предоставляет услугу Wi-Fi.
- В качестве транспортной сети используется отдельная группа транспортных маршрутизаторов ESR.
- Работа на каналах сторонних провайдеров не обеспечивается в версии ядра SoftWLC v1.15 и может быть обеспечена позже, по отдельному соглашению.
Принцип работы ТД Элтекс
В задачи ТД входит:
- Настройка режима радара;
- Сбор МАС клиентских устройств путем анализа probe-request-ов от клиентских устройств который захватывает ТД (опционально всего траффика): точка формирует общий список уникальных MAC-адресов, которые удалось выявить между выгрузками на коллектор;
- Передача информации в МАС коллектор: точка высылает на сервер по таймеру. Вне зависимости от результата доставки, накопленный буфер сбрасывается, данные о накопленных МАС теряются и накапливаются заново;
- Отправка информации на коллектор происходит по протоколу HTTP(S), метод POST, содержимое - текстовый файл формата JSON;
- Точка доступа работает по стратегии 'put if absent' - фиксировать первые обнаруженные данные. Ключом является пара MAC+Channel, при фиксации изменении значений максимального или минимального уровня (rssi_min, rssi_max) ТД меняет соответствующие значения в буфере. В отправку попадут минимальное и максимальное значение RSSI за период.
- В период накопления для каждой ключевой пары MAC+Channel фиксируется максимальный и минимальный уровень RSSI;
- В период накопления для каждой ключевой пары MAC+Channel фиксируется общее количество принятых пакетов;
- В период накопления для каждой ключевой пары MAC+Channel фиксируется режим принятых пакетов (см. 'Mode' ниже);
- При включении соответствующих режимов ТД опционально фиксирует дополнительную информацию: BSS MAC (адрес сторонней ТД при обмене пользовательским трафиком), SSID (при запросах Probe Request, содержащих такую информацию);
Примечание
На текущий момент ТД формирует уникальные MAC между выгрузками из драйвера 1 раз 1сек. Т.е если за 1 сек пришло n пакетов - запись будет одна.
Далее после выгрузки из драйвера ТД складывает записи в общий список с меткой времени. В списке могут быть не уникальные MAC
Список параметров для настройки режима "Радар" (Внимание! настройки применяются только к устройствам серии WEP-2 с версией ПО не ниже 1.19)
Параметр | Значения | Единицы | Заводское значение | Описание |
---|---|---|---|---|
status | up | down | down | Статус режима "Радар". Переводит ТД в режим "Радар", выключает все ранее настроенные SSID (предоставление услуги выключается). Режим "Радар" не совместим с режимами Airtune/WIDS/Cluster (необходимо выключить данные режимы для возможности включения "Радара") | |
interfaces | all | 2.4G | 5G | all | Перечень интерфейсов, на которых запущен режим "Радар" | |
Collector URL | https://host:port/service | URL коллектора сбора МАС адресов | ||
Send Interval | 1 ... 3600 | сек | 5 | Интервал отправки данных на коллектор |
MAC list size | 255 ... 65535 | шт | 1000 | Размер буфера для накопления записей о МАС адресах клиентов. |
Scan timeout | 100...60000 | мсек | 200 | Время на сканирование одного канала |
Scan 5g channel | 0 | 1..13 | 0 | Канал для сканирования в диапазоне 5ГГц, если 0 то сканируются все доступные каналы | |
Scan 2g channel | 0 | 36..165 | 0 | Канал для сканирования в диапазоне 2.4ГГц, если 0 то сканируются все доступные каналы | |
Mode | Мультиселектор из трёх значений, см. ниже | Режим сканирования эфира. Для получения максимального количества МАС, требуется включить все три режима. Каждый селектор может быть включен отдельно от других и не накладывает ограничения на другие режимы. | ||
mgmt-probe | on/off | on | Учитывать информацию от пакетов probe request. | |
mgmt-assoc | on/off | off | Учитывать информацию от пакетов assoc/disassoc, auth/deauth | |
data | on/off | off | Учитывать информацию из пользовательского трафика в эфире. Включение этого режима с большой долей вероятности исключить фиктивные МАС, которые часто используются клиентскими устройствами для рассылки Probe Request. |
Настройка параметров в CLI точки доступа происходит в разделе radar ("get/set radar").
В GUI EMS настройка происходит в разделе "Конфигурация-MAC- Scanner":
Индикация ошибок на ТД Элтекс
В случае обнаружения проблем при отправке информации от ТД на коллектор, точка доступа инициирует отправку SNMP TRAP на систему управления Eltex.EMS. По умолчанию (согласно внутренних настроек) точка доступа будет посылать трап не чаще, чем один раз в 300 секунд. Трап содержит цифровой идентификатор ошибки и текстовую расшифровку проблемы.
ELTEX_RADAR_NOT_AVAILABLE 1 // не доступен коллектор ELTEX_RADAR_NOT_ANSVER 2 // коллектор долго не отвечает 200 ок ELTEX_RADAR_CONNECTION_ERROR 3 // ошибка соединения ELTEX_RADAR_OVERFLOW 4 // переполнение буфера ELTEX_RADAR_NOT_HOST 5 // ТД не можем разрезолвить доменное имя коллектора
Текстовые сообщения для ошибки ELTEX_RADAR_CONNECTION_ERROR:
* Diagnostic strings that may be returned include * * "getaddrinfo (ipv6) failed" * "unknown address family" * "getaddrinfo (ipv4) failed" * "set socket opts failed" * "insert wsi failed" * "lws_ssl_client_connect1 failed" * "lws_ssl_client_connect2 failed" * "Peer hung up" * "read failed" * "HS: URI missing" * "HS: Redirect code but no Location" * "HS: URI did not parse" * "HS: Redirect failed" * "HS: Server did not return 200" * "HS: OOM" * "HS: disallowed by client filter" * "HS: disallowed at ESTABLISHED" * "HS: ACCEPT missing" * "HS: ws upgrade response not 101" * "HS: UPGRADE missing" * "HS: Upgrade to something other than websocket" * "HS: CONNECTION missing" * "HS: UPGRADE malformed" * "HS: PROTOCOL malformed" * "HS: Cannot match protocol" * "HS: EXT: list too big" * "HS: EXT: failed setting defaults" * "HS: EXT: failed parsing defaults" * "HS: EXT: failed parsing options" * "HS: EXT: Rejects server options" * "HS: EXT: unknown ext" * "HS: Accept hash wrong" * "HS: Rejected by filter cb" * "HS: OOM" * "HS: SO_SNDBUF failed" * "HS: Rejected at CLIENT_ESTABLISHED"
При получении SNMP TRAP от точки доступа, СУ принимает, обрабатывает и сохраняет информацию для соответствующего объекта.
Принцип работы MAC коллектор Элтекс
Коллектор Элтекс, находится в ядре сети WiFi, в одном адресном пространстве с системой управления. Коллектор доступен точке доступа в менеджмент сети.
В задачи коллектора входит:
1) Приём информации от точек доступа по протоколу HTTP(S);
2) Опционально (не требуется в базовой схеме), обогащение информации идентификационными данными точки доступа;
3) Отправка информации в MAC коллектор Hot-WiFi по протоколу HTTPS;
Примечание: В случае соглашения всех сторон, что обогащение и изменение пакетов на Платформе РТК (Элтекс) не требуется, коллектор может быть заменён на Proxy Server (nginx).
Взаимодействие ТД - MAC коллектор Элтекс
Отправка информации от ТД на коллектор Элтекс осуществляется по протоколу HTTP(S), методом POST, формат данных JSON.
Взаимодействие MAC коллектор Элтекс - MAC коллектор Hot-WiFi
Отправка информации от коллектора Элтекс на коллектор Hot-WiFi осуществляется по протоколу HTTPS, методом HTTP POST, формат данных JSON.
Формат выгрузки данных на сервер Hot-Wifi (пример)
{ap_id: '00‐04‐56‐F8‐33‐26', 'version': u'1.0', 'ap_name': ‘{radar_id}’, 'probe_requests': [ {'ch': 11, ‘dbi’: -42, 'mac': 'A4‐4E‐31‐5F‐6D‐2C', ’rssi_min’: -76, 'packet_count': 12, 'type_bitmask': 1, 'timestamp': '1571390378', 'bss_mac': '', 'ssid': 'WIFI-guest' }, {'ch': 40, ‘dbi’: -78, 'mac': '48‐3B‐38‐25‐C8‐E2', ’rssi_min’: -81, 'packet_count': 17, 'type_bitmask': 3, 'timestamp': '1571390388', 'bss_mac': 'A0‐12‐31‐5F‐6D‐2C', 'ssid': 'WIFI-guest' } ] }
Расшифровка полей в JSON
Поле | Описание | Пример |
---|---|---|
ap_id | Уникальный идентификатор ТД, MAC адрес точки доступа на управляющем интерфейсе (формат см. ниже) | 1A-2B-3C-4D-5E-6F |
version | Версия протокола обмена между системами | u'1.0' |
ap_name | Это уникальный идентификатор локации, в которой установлена ТД. В системе координат федеральной Платформы - это 'AP Location', то есть географический домен точки доступа; На платформе Hot-WiFi - это 'radar_id'. | XXXX-9090_2y_Uzhnoportoviy_pr_12.Sberbank.MRF_Center.Center.Ap.root |
probe_requests | Список, состоящий из записей, каждая из которых содержит информацию по МАС-адресу устройства (см ниже). Уникальным ключом каждой записи является MAC+Channel. | - |
ch | Номер канала, число | 11 |
dbi | Уровень полученного пакета от клиентского устройства, dBm. Точка доступа фиксирует максимальный уровень сигнала за период сканирования (rssi_max) для пары MAC+Channel. | -63 |
mac | MAC адрес клиентского устройства. Вместе с полем ch образуют уникальный ключ записи за период сканирования. | 1A-2B-3C-4D-5E-6F |
rssi_min | Уровень полученного пакета от клиентского устройства, dBm. Минимальный уровень сигнала за период сканирования для пары MAC+Channel | -82 |
packet_count | Общее количество пакетов, зафиксированных ТД за период сканирования для пары MAC+Channel | 432 |
type_bitmask | Битовая маска принятых типов пакетов за период сбора: первый (младший) бит отвечает за режим 'mgmt-probe', второй бит за режим 'mgmt-assoc', третий бит за 'data'. Например, число 2 (битовая маска 010) означает, что информация принята только в режиме 'mgmt-assoc'. | 2 |
timestamp | Время регистрации записи на ТД, в формате UTC timeticks (секунды от нулевой эпохи) | 1571390378 |
bss_mac | Опционально! MAC адрес точки доступа, участвующей в обмене трафиком. Получение возможно только для режима 'data' (Т.е. сканирование эфира и контроль data-трафика установленных соединение клиентов с другими ТД). | 1A-2B-3C-4D-5E-6F |
ssid | Опционально! Наименование SSID, к которым обращаются клиентские терминалы. Получение возможно только в режиме 'mgmt-probe'. | WIFI-guest |
Формат MAC адреса
- формат МАС адреса, пример: 1A-2B-3C-4D-5E-6F;
- разделитель: 'символ минуса', шестнадцатеричный код 0x2d;
- буквенные символы приведены к верхнему регистру (upper case);
Формат ap_name (radar_id)
- Идентификатор локации в федеральной Платформе состоит из полного доменного имени локации, в которой установлена точка доступа. Домен состоит из произвольных цифро-буквенных последовательностей, разделённых символом точки (0x2e);
- Общая длина идентификатора не более 255 символов;
- В идентификатор могут входить любое количество цифро-буквенных слов любой длины;
- В идентификаторе могут быть только буквы латинского алфавита и цифры, без пробелов, допустимы символы нижнего подчёркивания, знак минус;
Пример: XXXX-9090_2y_Uzhnoportoviy_pr_12.Sberbank.MRF_Center.Center.Ap.root;
Примечание
Дополнительные (избыточные на текущий момент) поля в целевом JSON добавлены с целью возможного будущего развития услуги.
Схема проекта
Примечание
На схеме не изображены транспортные ESR и создаваемые точками доступа GRE туннели для организации доступа в ядро.
Спецификация хостов ядра Платформы "Радар"
Модули ядра Платформы "Радар" могут работать в виртуальном окружении. В таблице приведены характеристики виртуальных или реальных серверов. Максимальная рассчётная ёмкость услуги 10 тыс точек доступа. Отправка данных один раз в минуту.
Модули ядра работают на хостах под управлением операционной системы: Linux Ubuntu Server 16.04 LTS x64.
База данных: MySQL Server 5.7.
DHCP server: isc-dhcp-server 4.3.3 (или новее)
Прокси сервер: nginx 1.10.3 (или новее)
Хост | vCPU, шт | RAM, ГБ | HDD, ГБ | Пакеты | Примечание |
---|---|---|---|---|---|
1.HTTP(s) Proxy | 8 | 16 | 20 | nginx | |
2. Eltex.EMS | 2 | 32 | 60 | openjdk-8-jdk eltex-ems | |
3. MySQL server | 2 | 8 | 120 | mysql-server-5.7
| |
4. DHCP server | 1 | 4 | 20 | isc-dhcp-server |
Примечание
Характеристики сервера 1 "HTTP(s) Proxy" указаны для 10 тыс ТД с интервалом отправки данных не более 1 раза в минуту. В случае увеличения числа точек доступа, либо уменьшения интервала отправки может понадобиться введение в схему дополнительных хостов с функцией балансировщика и прокси. Это может быть сделано после запуска услуги, без модификации архитектуры сети.
Настройка системы управления
Настройка системы управления (пакет eltex-ems) должна производиться с учётом работы в режиме "без услуги Wi-Fi". Для этого необходимо выключить некоторые периодические задачи (мониторы) и модули в составе СУ. Ниже приведён список обязательных настроек.
Настройка мониторов
Необходимо выключить все мониторы, которые отвечают за предоставление услуги Wi-Fi. Для этого нужно зайти в пункт меню "Администрирование/Настройка сервера/Задачи по расписанию (мониторы)" и перевести в режим "MANUAL" следующие мониторы:
- ssid_apb_check;
- nas_treeobj_fitness;
- ssid_link_check;
- ssid_sheduler;
- wifi_alien_monitor;
- wifi_loss_communication;
- ott_overdue;
- ssid_pwd_change_notifier;
Настройка модулей
Необходимо выключить связь с другими пакетами (их API), которые не присутствуют в ядре, ввиду отсутствия услуги Wi-Fi. Для отключения связи нужно зайти в пункт меню "Администрирование/Настройка сервера/Системные модули" и выключить взаимодействие с модулями на вкладках:
- pcrf;
- softwlc.nbi;
- wirelessCommon/Доступ к Личному кабинету;
- wirelessCommon/Доступ к сервису индивидуальных конфигураций ОТТ (Jerry);