При построении сети нижнего уровня систем автоматизированного управления, как правило, не используется доменная система, что может приводить к проблемам при установлении связи по протоколу OPC UA между устройствами на базе ОС Linux. В этой статье мы на основе реальной ситуации рассмотрим пример специфической настройки компьютеров для работы системы в такой ситуации на примере коммуникационного сервера «Эликонт-КС».
Для настройки сбора данных по протоколу OPC UA в Эликонт-КС требуется указывать URL сервера, с которым должно быть установлено соединение. В состав URL входит имя компьютера и TCP-порт Сервера OPC UA. Если «Эликонт-КС» установлен на компьютере под ОС Linux (Debian, Astra или др.), не входящем в домен, то без соответствующей настройки не выполняется сопоставление имени компьютера с OPC UA сервером и IP-адреса, что приводит к отказу в соединении.
Вкратце рассмотрим принципы разрешения имён на примере создания защищенного канала OPC UA в следующей ситуации:
Такая конфигурация изначально приводила к ошибке: данные не поступали в Эликонт-КС.
В ОС Windows для разрешения имён компьютеров, если компьютер не находится в домене, действует служба WINS (Windows Internet Name Service).[1]
Эта служба при обращении по URL, включающим имя компьютера, позволяет компьютерам «узнать» друг друга в момент создания нового соединения, т.е. установить актуальный в данный момент времени IP-адрес компьютера с данным именем согласно процедуре разрешения имён. Ниже приведена типовая схема создания такого канала, в которой за процедурой разрешения имён (шаг 1 и 2) следует соответствующий обмен сообщениями между Клиентом и Сервером:
Рис. 1. Установление защищенного канала OPC UA.
В ответе Answers содержится информация, позволяющая связать имя компьютера с его IP-адресом, а также срок валидности этой связи. По истечению этого периода времени либо после перезапуска компьютера клиент OPC UA должен сделать повторный запрос для обновления информации, т.к. IP-адрес или имя могли измениться.
В ОС Linux служба разрешения имён компьютеров WINS отсутствует, а другие службы, способные выполнять её функцию, требуют определенной настройки. Доступным способом разрешения имён является изменение базы данных имен узлов сети.
Наиболее простым и безопасным способом обеспечить сопоставление имени компьютера с его IP-адресом является внесение соответствующей информации в hosts-файл. Изменение сетевой информации требует корректировки файла сетевых данных вручную.
Для добавления разрешения имён компьютеров потребуется:
1. Убедиться, что проблема для вас актуальна. Для этого нужно открыть терминал и выполнить две команды:
ping <ip_address>
здесь < ip_address> - ip-адрес компьютера - источника данных.
Наличие ICMP-ответов показывает, что связь установлена. Отсутствие ICMP-ответов свидетельствует о необходимости настройки сети.
ping <computer_name>
здесь <computer_name> - имя компьютера - источника данных.
Если результатом выполнения команды является сбой, значит компьютер с Эликонт-КС не может сопоставить имя компьютера - источника данных с его IP-адресом.
2. Убедиться в правильности порядка разрешения доменных имён. Для этого требуется выполнить команду:
nano /etc/nsswitch.conf
Порядок «files, dns» указывает, что на первом шаге разрешения доменного имени ОС обратится к файлу hosts, а на втором – к службе DNS. Опция files обязательно должна присутствовать, т.к. сопоставление доменного имени и ip-адреса указывается именно в файле hosts, в противном случае следует переопределить порядок разрешения доменного имени и добиться указанного выше результата.
3. Добавить в файл hosts соответствующее сопоставление, выполнив команду sudo <editor> /etc/hosts, где в качестве <editor> указать любой из доступных текстовых редакторов, например, встроенный nano; /etc/hosts – путь к файлу hosts в ОС Linux; sudo – действие от имени superuser. Примечание: для выполнения команды может потребоваться пароль root.
sudo nano /etc/hosts
сохранить файл: для nano нажать Ctrl+O и подтвердить, нажав Enter,
выйти из редактора, нажав Ctrl+X.
4. В настройках соединения клиентского канала OPC UA Эликонт-КС указать URL с именем источника данных:
5. Загрузить конфигурацию в Эликонт-КС.
6. В «Эликонт-КС» проверить, что данные доступны. Для этого в конфигураторе «Эликонт-КС» делаем тест подключения, нажав кнопку «Проверка доступности».
Далее, после настройки сигналов загружаем конфигурацию в коммуникационное ядро и убеждаемся, что канал связи активный и данные поступают:
Заключение
Мы надеемся, что представленный алгоритм действий поможет пользователям Эликонт-КС и других коммуникационных программ успешно справиться с настройкой устройств под ОС Linux для реализации клиентского подключения, требующего указания URL сервера.
[1] - Служба WINS на сеансовом уровне модели OSI использует широковещательный протокол NBNS – NetBios Naming Service, который, в свою очередь, на транспортном уровне задействует протокол UDP
Спасибо, мы скоро свяжемся с Вами
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookies, нажмите здесь. |