Skip to main content

Сетевые настройки

Данный раздел содержит информацию о сетевой архитектуре системы ЛиманИСУ 2.0: IP-адресации, протоколах взаимодействия, используемых портах и правилах межсетевого экрана.

Протоколы и порты

Система использует несколько категорий сетевых протоколов для взаимодействия между компонентами.

REST API (порты 80, 8180, 8881-8885)

Назначение: интеграция с системами управления предприятием, доступ к веб-интерфейсу.

Действия по настройке:

  1. Убедитесь, что порты открыты в фаерволе для доступа с ЦСД
  2. Настройте обратный прокси (Nginx) для маршрутизации запросов
  3. Для внешних систем: предоставьте IP-адрес ЦСД и учётные данные Keycloak

Промышленные протоколы

Modbus TCP (порт 502)

Назначение: обмен данными с устройствами сбора данных «Пассер-В/Т».

Действия по настройке:

  1. Настройте IP-адресацию между ПЛК «Ларус-10» и устройствами УСД
  2. Убедитесь, что порт 502 устройств Пассер доступен для ПЛК
  3. В конфигурации сервиса lisu-crud укажите IP-адреса устройств

MQTT (порты 1883, 8883)

Назначение: приём телеметрии от ПЛК «Ларус-10».

Действия по настройке:

  1. Настройте брокер NanoMQ (конфиг nanomq.conf)
  2. Укажите логин/пароль для устройств в ACL
  3. В сервисах системы задайте NATS_URL для подключения к брокеру

OPC UA (порт 4840)

Назначение: интеграция со SCADA-системами.

Действия по настройке:

  1. Настройте OPC UA сервер (если требуется)
  2. Откройте порт 4840 для доступа SCADA-систем
  3. Предоставьте endpoint и политики безопасности интеграторам

Служебные протоколы

NATS (порт 4222)

Назначение: межсервисное взаимодействие внутри системы.

NanoMQ используется как MQTT-брокер на стороне устройств -- он принимает JSON без изменений. NATS в облаке хранит и маршрутизирует те же JSON. Очереди/топики выделяются по типу событий: телеметрия (vibration, current, voltage, tachometer), состояние оборудования, ошибки.

Действия по настройке:

  1. Разверните кластер NATS через Docker Compose
  2. Настройте авторизацию через JWT (файлы seed.jwt, resolver.conf)
  3. Убедитесь, что порт 4222 доступен только между контейнерами системы
warning

Порт 4222 должен быть закрыт для внешнего доступа. Доступ только внутри Docker-сети.

NTP (порт 123)

Назначение: синхронизация времени.

Действия по настройке:

  1. Настройте NTP-клиент на всех серверах системы
  2. Укажите корпоративные NTP-серверы (например, 10.177.88.1)
  3. Проверьте синхронизацию командой timedatectl

TFTP (порт 69)

Назначение: передача файлов сырых сигналов от УСД.

Действия по настройке:

  1. Убедитесь, что TFTP-сервер в составе прошивки ПЛК запущен
  2. Настройте сетевую доступность для устройств УСД
  3. Проверьте передачу файлов в каталог /opt/raw_data

Протоколы хранения данных

S3 API (MinIO, порт 9000)

Назначение: работа с объектным хранилищем.

Действия по настройке:

  1. Создайте бакеты: rawdata, diagnostic
  2. Сгенерируйте ключи доступа (ACCESS_KEY, SECRET_KEY)
  3. Укажите ключи во всех сервисах через переменные окружения

Сводная таблица протоколов и портов по компонентам

КомпонентПротоколПортНазначение
ЦСДREST API80, 8180, 8881-8885Веб-интерфейс ЛиманИСУ 2.0 (авторизация, управление, API)
Modbus TCP502Обмен данными с промышленными устройствами
MQTT, NATS1883, 4222Передача сообщений между микросервисами и устройствами
S3 API9000Доступ к MinIO для хранения Parquet-файлов
TCP5432Подключение к БД (метаданные)
ЛСМModbus TCP502Локальное взаимодействие с оборудованием
MQTT1883, 8883Локальный обмен сообщениями
ПЛК «Ларус-10»MQTT1883, 8883Передача телеметрии JSON в NanoMQ
S3 API9000Загрузка Parquet-файлов в MinIO
TFTP69Приём .bin-файлов от Пассер-В/Т
Modbus TCP502Опрос регистров Пассер-В/Т
UDP123 (NTP)Синхронизация времени
UDP31001-45021Приём телеметрии от Пассер (Forte)
HTTP8000Встроенный Web-интерфейс
OPC UA4840Передача параметров состояния оборудования
Внешняя системаREST API8881-8885Интеграция с внешними ИТ-системами
Modbus TCP502Интеграция с промышленными устройствами

Сетевые взаимодействия между компонентами

ИсточникПолучательПротоколПортОписание
ПЛК «Ларус-10»ЛСМMQTT1883Передача телеметрии (вибрация, температура)
ПЛК «Ларус-10»ЛСМOPC UA4840Параметры состояния оборудования
ПЛК «Ларус-10»ЛСМModbus TCP502Поллинг данных с устройств
ПЛК «Ларус-10»NanoMQ (ЦСД)MQTT1883JSON-телеметрия в топики telemetry/...
ПЛК «Ларус-10»MinIO (ЦСД)S3 API9000Загрузка Parquet: rawdata/<ID>/<ГГГГ>/<ММ>/<ДД>/
ПЛК «Ларус-10»NTP-серверUDP123Синхронизация времени
ПЛК «Ларус-10»Админ-станцияHTTP8000Web-интерфейс управления
УСД «Пассер-В/Т»ПЛК «Ларус-10»TFTP69Бинарные файлы сырых сигналов (.bin)
УСД «Пассер-В/Т»ПЛК «Ларус-10»Modbus TCP50216-битные регистры (Holding Register)
УСД «Пассер-В/Т» (Forte)ПЛК «Ларус-10»UDPдинамическийТелеметрия и сырой сигнал
Web-клиентЦСД (Web UI)HTTP8080Доступ к интерфейсу
Web UIKeycloakHTTPS8443Аутентификация
ЛСМMinIO (ЦСД)HTTPS9000Репликация/резервное копирование
ЦСДБДTCP5432Запись/чтение метаданных
ЦСДБДTCP9000Хранение телеметрии

IP-адресация серверов

NСерверDNS имяIP адресIP BMCЛокация
1SVR_S_VBR_APP (ЛСМ)aemstsrv-vbrapp.aemtech-st.ru10.177.72.1110.177.72.13Производственная площадка 1
2SVR_S_VBR_DB (ЦСД)aemstsrv-vbrdb.aemtech-st.ru10.177.72.1210.177.72.14Производственная площадка 1
3SVR_I_VBR_APP (ЛСМ)aemizsrv-vbrapp.aemtech-iz.ru10.177.88.1710.177.88.19Производственная площадка 2
4SVR_I_VBR_DB (ЦСД)aemizsrv-vbrdb.aemtech-iz.ru10.177.88.1810.177.88.20Производственная площадка 2
5ЦСДaemizsrv-41.aemtech-iz.ru----ЦСД

IP-адресация полевого оборудования

Производственная площадка 1

ОбъектУстройствоIP адресМаскаШлюз
КомпрессорыКоммутатор EKF10.10.200.33255.255.255.010.10.200.254
Ларус-1010.10.200.34255.255.255.010.10.200.254
Панель HMI10.10.200.35255.255.255.010.10.200.254
ВентиляторыКоммутатор EKF10.10.200.36255.255.255.010.10.200.254
Ларус-1010.10.200.37255.255.255.010.10.200.254
Панель HMI10.10.200.38255.255.255.010.10.200.254
Станок 80337Коммутатор EKF10.10.200.11255.255.255.010.10.200.254
Ларус-1010.10.200.12255.255.255.010.10.200.254
Панель HMI10.10.200.13255.255.255.010.10.200.254
Станок 80338Коммутатор EKF10.10.200.14255.255.255.010.10.200.254
Ларус-1010.10.200.15255.255.255.010.10.200.254
Панель HMI10.10.200.16255.255.255.010.10.200.254
Станок 80342Коммутатор EKF10.10.200.17255.255.255.010.10.200.254
Ларус-1010.10.200.18255.255.255.010.10.200.254
Панель HMI10.10.200.19255.255.255.010.10.200.254
Станок 80343Коммутатор EKF10.10.200.20255.255.255.010.10.200.254
Ларус-1010.10.200.21255.255.255.010.10.200.254
Панель HMI10.10.200.22255.255.255.010.10.200.254
Станок 80344Коммутатор EKF10.10.200.23255.255.255.010.10.200.254
Ларус-1010.10.200.24255.255.255.010.10.200.254
Панель HMI10.10.200.25255.255.255.010.10.200.254
Насосы пресса 1200/3200Коммутатор EKF10.10.200.24255.255.255.010.10.200.254
Ларус-1010.10.200.25255.255.255.010.10.200.254
Панель HMI10.10.200.26255.255.255.010.10.200.254
Насосы пресса 6000Коммутатор EKF10.10.200.30255.255.255.010.10.200.254
Ларус-1010.10.200.31255.255.255.010.10.200.254
Панель HMI10.10.200.32255.255.255.010.10.200.254
Насосы пресса 12000Коммутатор EKF10.10.200.27255.255.255.010.10.200.254
Ларус-1010.10.200.28255.255.255.010.10.200.254
Панель HMI10.10.200.29255.255.255.010.10.200.254

Производственная площадка 2

Объект (Инв. N)УстройствоIP адресМаскаШлюз
459Коммутатор EKF10.10.201.11255.255.255.010.10.201.254
Ларус-1010.10.201.12255.255.255.010.10.201.254
Панель HMI10.10.201.13255.255.255.010.10.201.254
405Коммутатор EKF10.10.201.14255.255.255.010.10.201.254
Ларус-1010.10.201.15255.255.255.010.10.201.254
Панель HMI10.10.201.16255.255.255.010.10.201.254
465Коммутатор EKF10.10.201.17255.255.255.010.10.201.254
Ларус-1010.10.201.18255.255.255.010.10.201.254
Панель HMI10.10.201.19255.255.255.010.10.201.254
2010Коммутатор EKF10.10.201.20255.255.255.010.10.201.254
Ларус-1010.10.201.21255.255.255.010.10.201.254
Панель HMI10.10.201.22255.255.255.010.10.201.254
2413Коммутатор EKF10.10.201.23255.255.255.010.10.201.254
Ларус-1010.10.201.24255.255.255.010.10.201.254
Панель HMI10.10.201.25255.255.255.010.10.201.254
2411Коммутатор EKF10.10.201.26255.255.255.010.10.201.254
Ларус-1010.10.201.27255.255.255.010.10.201.254
Панель HMI10.10.201.28255.255.255.010.10.201.254
361Коммутатор EKF10.10.201.29255.255.255.010.10.201.254
Ларус-1010.10.201.30255.255.255.010.10.201.254
Панель HMI10.10.201.31255.255.255.010.10.201.254
1109Коммутатор EKF10.10.201.32255.255.255.010.10.201.254
Ларус-1010.10.201.33255.255.255.010.10.201.254
Панель HMI10.10.201.34255.255.255.010.10.201.254
2409Коммутатор EKF10.10.201.35255.255.255.010.10.201.254
Ларус-1010.10.201.36255.255.255.010.10.201.254
Панель HMI10.10.201.37255.255.255.010.10.201.254
DNS-серверы

Все устройства на площадке 2 используют DNS-серверы: 10.177.88.1 и 10.177.88.2.

Правила межсетевого экрана (firewall)

Настройка брандмауэра на ЛСМ ограничивает доступ к сервисам -- только ЦСД может подключаться к веб-интерфейсу и Keycloak. Все остальные сервисы (БД, хранилище, брокер) доступны только внутри ЛСМ.

Площадка 1

  • ЛСМ: 10.177.72.11
  • ЦСД: 10.177.72.12
# Разрешаем только ЦСД (10.177.72.12) подключаться к портам ЛСМ
sudo iptables -A INPUT -p tcp -s 10.177.72.12 --dport 3000 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.177.72.12 --dport 8080 -j ACCEPT

# Запрещаем всё остальное извне
sudo iptables -A INPUT -p tcp --dport 5432 -j DROP
sudo iptables -A INPUT -p tcp --dport 8123 -j DROP
sudo iptables -A INPUT -p tcp --dport 9000 -j DROP
sudo iptables -A INPUT -p tcp --dport 4222 -j DROP

Площадка 2

  • ЛСМ: 10.177.88.17
  • ЦСД: 10.177.88.18
# Разрешаем только ЦСД (10.177.88.18) подключаться к портам ЛСМ
sudo iptables -A INPUT -p tcp -s 10.177.88.18 --dport 3000 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.177.88.18 --dport 8080 -j ACCEPT

# Запрещаем всё остальное извне
sudo iptables -A INPUT -p tcp --dport 5432 -j DROP
sudo iptables -A INPUT -p tcp --dport 8123 -j DROP
sudo iptables -A INPUT -p tcp --dport 9000 -j DROP
sudo iptables -A INPUT -p tcp --dport 4222 -j DROP
Критически важно

Только ЦСД может получить доступ к веб-интерфейсу (порт 3000) и Keycloak (порт 8080) на ЛСМ. Порты баз данных (5432, 8123), MinIO (9000) и NATS (4222) должны быть закрыты для всех внешних подключений.

Проверка сетевой связности

Проверка доступности компонентов

# Проверка связи между серверами
ping -c 3 <IP_адрес_компонента>

# Проверка доступности порта
telnet <IP_адрес> <порт>
# Например: telnet 10.177.72.11 1883

# Проверка связности между контейнерами
docker exec <контейнер-источник> ping <имя-контейнера-цели>

# Проверка прослушиваемых портов
sudo netstat -tlnp | grep <порт>

Проверка MQTT-брокера

# Проверить топики MQTT
docker exec nanomq nanomq_cli sub -t "#"

# Проверить логи MQTT-брокера
docker logs nanomq

Проверка доступности баз данных

# PostgreSQL
docker exec postgres psql -U admin -d db -c "SELECT 1;"

# ClickHouse
docker exec clickhouse clickhouse-client --query "SELECT 1;"