Установка шлюза оборудования

Шлюз работает круглосуточно без окна и без входа пользователя. Ставьте его туда, откуда видно оборудование и откуда разрешён исходящий доступ на 443: сервер SCADA, промышленный компьютер или сервер в DMZ между сетью цеха и офисной сетью.

Что поддерживается

ПлатформаКак запускаетсяОбновления
Windows 10, Windows Server 2016 и новее, x64служба Windows «Samreshuuu Equipment Gateway», автозапуск и перезапуск при сбоеставятся сами, если их не выключили на объекте
Linux с Dockerконтейнерновым образом, сам шлюз себя не заменяет
Linux без Dockerслужба systemdновой сборкой, сам шлюз себя не заменяет

Протоколы OPC DA и Mitsubishi CNC (EZSocket) работают только в шлюзе на Windows, подробнее в протоколах.

Где взять сборку

Данные оборудования подключаются по запросу, и сборку шлюза мы передаём при включении. Напишите нам.

Код привязки

В разделе «Интеграции» на вкладке «Шлюзы» нажмите «Подключить шлюз», выберите объект, назовите шлюз и нажмите «Получить код». Окно покажет «Команда на сервере объекта» одной строкой и сам код. Код одноразовый и действует ограниченное время, остаток срока виден под кодом. Когда шлюз выйдет на связь, окно напишет «Шлюз „…“ привязан».

Команда меняет код на ключ шлюза, и ключ сразу ложится в хранилище секретов системы. Служба подхватывает новую привязку сама, перезапускать её не нужно. Шлюз шлёт данные только на адрес приёма, вшитый в сборку: строка с чужим адресом его никуда не перенаправит.

Windows

1

Установите службу

В консоли администратора выполните equipment-gateway install-service. Шлюз скопирует себя в %ProgramFiles%\Samreshuuu\EquipmentGateway и зарегистрирует службу «Samreshuuu Equipment Gateway», которая запускается сама и перезапускается после сбоя.

2

Привяжите шлюз

Выполните команду из окна привязки: equipment-gateway activate ….

Настройки и данные лежат в %ProgramData%\Samreshuuu\EquipmentGateway: файл gateway.toml и папка data с буфером, ключом и сертификатами. Папку шлюз закрывает правами системы и администраторов. Удалить службу: equipment-gateway uninstall-service.

Linux: контейнер

bash
docker volume create equipment-gateway-data docker run --rm -v equipment-gateway-data:/var/lib/equipment-gateway equipment-gateway activate <КОД> docker run -d --restart unless-stopped --name equipment-gateway \ -v equipment-gateway-data:/var/lib/equipment-gateway equipment-gateway

Том хранит буфер, ключ и сертификаты: не удаляйте его при смене образа. Файл настроек, если он нужен, монтируется в /etc/equipment-gateway/gateway.toml.

Linux: служба systemd

bash
install -m 0755 equipment-gateway /usr/local/bin/equipment-gateway useradd --system --home-dir /var/lib/equipment-gateway equipment-gateway install -d -o equipment-gateway -m 0700 /var/lib/equipment-gateway sudo -u equipment-gateway equipment-gateway activate <КОД> systemctl enable --now equipment-gateway

Юнит запускает шлюз от отдельного системного пользователя, без повышения прав, с файловой системой только на чтение, кроме /var/lib/equipment-gateway. Настройки читаются из /etc/equipment-gateway/gateway.toml.

Файл настроек

Файл нужен, только если объекту есть что решить самому. Нет файла, значит всё по умолчанию. С файлом, который не читается, шлюз не запустится и назовёт ошибку.

toml
proxy = "http://proxy.plant.local:3128" no_proxy = "crl.plant.local" equipment_hosts = ["10.20.0.0/16", "scada1.plant.local", ".plc.plant.local"] auto_update = true buffer_max_mb = 1024
  • proxy, no_proxy: явный прокси для выхода в облако и список адресов мимо него. Без proxy шлюз берёт маршрут машины: переменные окружения HTTPS_PROXY и NO_PROXY, на Windows ещё прокси WinHTTP (netsh winhttp set proxy), PAC и WPAD. Логин и пароль прокси можно указать в адресе. К оборудованию шлюз ходит напрямую, не через прокси.
  • equipment_hosts: адреса сети объекта, к которым шлюзу можно подключаться. Без строки шлюз подключается к любому адресу из настроек подключения. Со строкой подключение к адресу вне списка не запускается и пишет «Неверная настройка подключения». Облако список расширить не может. Пустой список не пускает никуда.
  • auto_update: false выключает автообновление на объекте, и облако включить его обратно не может.
  • buffer_max_mb: потолок места на диске под данные, которые ждут отправки. Сверх него вытесняются самые старые.

Записи equipment_hosts: адрес (10.20.1.5), сеть (10.20.0.0/16), имя (plc1.plant.local) или все имена домена (.plant.local). Имя сверяется как написано и не разрешается в адрес: сеть пропускает только подключение, записанное адресом, имя только подключение, записанное именем.

Обновления

Шлюз на Windows ставит новую версию сам по команде облака: пакет проверяется по подписи, а если новая версия не вышла на связь, служба возвращается на прежнюю. Данные, которые прежняя версия не успела отправить, переходят к новой. Режим обновления виден в строке шлюза на вкладке «Шлюзы»: «Автоматические обновления», «Автообновление отключено на объекте» или «Обновления устанавливает оператор» с причиной.

Шлюз на Linux сам не обновляется: обновление ставит оператор, новым образом контейнера или новой сборкой для systemd.

Отозвать шлюз

В строке шлюза на вкладке «Шлюзы» выберите «Отозвать» и подтвердите в окне «Отозвать шлюз „…“?». Ключ перестаёт работать сразу, данные с объекта перестают приходить, а буфер этого шлюза на его диске стирается. Подключения остаются, их можно выбрать у нового шлюза. Чтобы поставить шлюз заново на той же машине, получите новый код и выполните команду ещё раз.

Частые вопросы

На какой версии Windows работает шлюз?

На Windows 10 или Windows Server 2016 и новее, только x64. На более старой системе шлюз не запустится и сам назовёт причину.

Срок кода истёк. Что делать?

Нажмите «Новый код» в том же окне и выполните новую команду. Истёкший код шлюз уже не привяжет.

Обновляется ли шлюз сам?

Служба Windows обновляется сама, если на объекте не выключено автообновление. Шлюз на Linux сам не обновляется: его обновляют новым образом.

Смотрите также

Была ли страница полезна?

Не нашли ответ? Как связаться