МКИ
Система мониторинга качества измерений (МКИ)
Схема тестового стенда

| Хост | Интерфейс | IP | Описание | Примечание |
|---|---|---|---|---|
| MCM-NODE1 | Eth1 | 192.168.2.156/24 | Интерфейс управления для Node1 | |
| MCM-NODE1 | Eth2 | 10.0.0.1/24 | Интерфейс обмена данными для Node1 | |
| MCM-NODE2 | Eth1 | 192.168.2.195/24 | Интерфейс управления для Node2 | |
| MCM-NODE2 | Eth2 | 10.0.0.2/24 | Интерфейс обмена данными для Node2 | |
| MCM-SNIFFER | Eth1 | 192.168.2.142/24 | Интерфейс управления для Sniffer | |
| MCM-SNIFFER | Eth2 | - | Участвует в L2 Bridge | |
| MCM-SNIFFER | Eth3 | - | Участвует в L2 Bridge |
Развертывание системы
Установка базовых систем
Установка ОС Windows на компьютерах MCM-NODE1 и MCM-NODE2 производится обычным образом, при этом соответствующим сетевым интерфейсам должны быть присвоены адреса согласно данным табл. 1, также для совместимости должны быть указаны следующие параметры настройки системы:
| Параметр | Значение |
|---|---|
| Имя компьютера | MCM-NODE1/MCM-NODE2 |
| Имя пользователя c правами локального администратора | entcor |
| Пароль | 1 |
Установка базовой системы Ubuntu 22.0x на компьютер MCM-SNIFFER производится обычным образом в режиме Minimal Installation, при этом для совместимости должны быть указаны следующие параметры:
| Параметр | Значение |
|---|---|
| Имя компьютера | MCM-SNIFFER |
| Имя пользователя c правами root | entcor |
| Пароль | ng3-dcc20 |
После установки системы необходимо установить обновления, а также настроить доступ к серверу по SSH:
sudo apt install openssh-server
После этого управление узлом MCM-SNIFFER и все дальнейшие манипуляции можно будет осуществлять удаленно с компьютера администратора:
ssh -l entcor 192.168.2.142
Установка сертификата Entcor
С компьютера администратора следует скопировать файл сертификата entcor.crt на узел MCM-SNIFFER по следующему пути:
scp entcor.crt entcor@192.168.2.142:/home/entcor
Затем на компьютере MCM-SNIFFER следует перенести сертификат в необходимый каталог и выполнить его обновление:
sudo mv entcor.crt /usr/local/share/ca-certificates
sudo update-ca-certificates
Примечание: после обновления сертификатов необходимо выполнить перезагрузку компьютера MCM-SNIFFER.
Установка Docker
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Ссылка на руководство: https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
Подключение интерфейсов к L2 Bridge для Docker
Предварительно следует запустить постоянный пинг (с параметром -t) с MCM-NODE1 (10.0.0.1) на MCM-NODE2 (10.0.0.2) и наоборот, убедиться в том, что узлы недоступны друг для друга.
Далее необходимо выполнить подключение внутренних интерфейсов обмена данными к мосту docker0:
sudo ip link set dev eth2 master docker0
sudo ip link set dev eth3 master docker0
sudo ip link set dev docker0 up
ip link show
Ссылка на руководство: https://chrisjhart.com/Bridge-Network-Interfaces-on-Ubuntu-22.04/
Также настройка моста может быть выполнена через графический интерфейс посредством утилиты Advanced Network Configuration, где следует добавить внутренние интерфейсы обмена данными к мосту docker0 (вместо eth2 и eth3 подставить актуальные имена интерфейсов, например, eno2s0) .
Примечание: данный способ является предпочтительным, так как автоматически обеспечивает сохранение настроек моста и их восстановление после перезагрузки.
После выполнения настройки интерфейсов следует проверить, что пинг с MCM-NODE1 (10.0.0.1) на MCM-NODE2 (10.0.0.2) в обе стороны проходит успешно, т.е. узлы общаются между собой напрямую через мост docker0.
Установка компонентов системы МКИ
Получение последней версии инсталляционного пакета производится с FTP-сервера Jenkins (192.168.2.49). Для этого необходимо подключиться к нему с узла MCM-SNIFFER по FTP, используя обычную пару логин-пароль и выкачать оттуда файлы install.sh и latest.tar.gz.
Развертывание контейнеров производится запуском скрипта install.sh.
Примечание: перед запуском необходимо установить для скрипта install.sh права на выполнение командой chmod:
chmod +x install.sh
Запуск компонентов системы МКИ
После установки компонентов МКИ можно выполнить их запуск посредством скрипта enode.sh, расположенного в каталоге /opt/e-node/deploy.
Примечание: для нормальной работы стека common необходимо предварительно авторизоваться под нужной учетной записью в docker-репозитории Harbor:
docker login registry.entcor
Конфигурирование выполняется посредством редактирования файла .env, в котором следует установить следующие параметры:
MONITOR_DATA_IF = <имя интерфейса на узле MCM-SNIFFER, на котором выполняется прослушка, например, eno1>
MODE = enode
Примечание: вообще-то для работы МКИ параметр MODE должен иметь значение asutp, но работает пока только вот так.
Непосредственно запуск компонентов системы МКИ осуществляется из каталога /opt/e-node/deploy следующей командой:
enode <имя стека> start
Примечание: названия нужных стеков можно посмотреть в каталоге stacks (имена стеков соответствуют именам подкаталогов). Как минимум должны быть запущены следующие стеки:
enode common start
enode asutp start
enode ha-server start
enode analytic start
Проверка запуска сервисов производится обычным образом с помощью команды:
docker ps
Проверка информационного обмена по протоколу МЭК-60870-5-104
Проверка информационного обмена по протоколу МЭК-60870-5-104 производится между узлами стенда MCM-NODE1 и MCM-NODE2 посредством программного обеспечения IEC Test, которое эмулирует передачу пакетов протокола МЭК-60870-5-104 поверх соединения Ethernet.
Для проверки работы протокола МЭК-60870-5-104 во внутренней сети обмена на одном из узлов ПО IEC Test запускается в режиме сервера с показанными ниже настройками:
TCP/IP Link Role - Server
IP Address - адрес внутреннего интерфейса для информационного обмена (в данном примере - 10.0.0.2)
Далее устанавливается канал обмена последовательным нажатием кнопок "Build String" и "Open Channel" (индикатор "1 channel" должен стать темно-зеленым).

Соответственно, на другом узле ПО IEC Test запускается в режиме клиента с показанными ниже настройками:
TCP/IP Link Role - Client
IP Address - адрес сервера, находящегося во внутренней сети для информационного обмена (в данном примере - 10.0.0.2).
Далее устанавливается канал обмена последовательным нажатием кнопок "Build String" и "Open Channel" (индикатор "1 channel" должен стать темно-зеленым).
Для начала непосредственно информационного взаимодействия следует послать с клиента на сервер специальную команду посредством нажатия кнопки "Start DT" (индикатор "1 channel" должен стать светло-зеленым как показано на рисунке ниже). С этого момента канал обмена установлен и активирован, а между экземплярами ПО IEC Test могут передаваться пакеты протокола МЭК-60870-5-104.

Для создания трафика по протоколу МЭК-60870-5-104 между узлами MCM-NODE1 и MCM-NODE2 следует использовать специальный макрос, имитирующий последовательную передачу данных протокола МЭК-60870-5-104 между узлами. Для этого необходимо на любом из узлов в ПО IEC Test перейти во вкладку "870 Commander", нажатием кнопки "Загрузить" загрузить макрос "ДУ по циклу 5 сек.rtm" и выполнить его нажатием кнопки "Выполнить":

В случае правильно настроенных узлов стенда и экземпляров ПО IEC Test на принимающем узле во вкладке "870 Commander" в соответствующем окне можно будет увидеть информацию о принятых сообщениях, отправленных макросом с передающего узла, что свидетельствует о состоявшемся информационном обмене по протоколу МЭК-60870-5-104 между узлами.
Примечание: в случае, если система МКИ выполняет прослушивание на одном из интерфейсов, входящих во внутреннюю сеть информационного обмена, а также при правильном конфигурировании компонента Grafana, при подключении браузером по адресу сервера MCM-SNIFFER (http://192.168.2.142) в соответствующих дашбордах должна появиться информация о перехваченных пакетах протокола МЭК-60870-5-104, создающих описанный выше трафик.