From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Modules/SNMP and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор Описание
SNMP SNMP клиент 0.8 GPL2 daq_SNMP.so en,uk,ru,de x86,x86_64,ARM DAQ Роман Савоченко Предоставляет реализацию клиента SNMP-сервиса.

Протокол SNMP был разработан с целью проверки функционирования сетевых маршрутизаторов и мостов в 1988 году. Впоследствии сфера действия протокола охватила и другие сетевые устройства, такие как хабы, шлюзы, терминальные сервера и даже устройства, имеющие отдалённое отношение к сети: принтеры, источники бесперебойного питания, PLC и т.д. Кроме того, протокол допускает возможность внесения изменений в функционирование указанных устройств. На данное время протокол SNMP стандартизирован как RFC-1157, -1215, -1187, -1089.

Данный модуль предоставляет возможность собирать информацию и вносить изменения у различных устройств по SNMP протоколу и с помощью библиотеки NetSNMP. Также модулем реализуются функция горизонтального резервирования, а именно совместная работа с удалённой станцией этого-же уровня.

1 SNMP

Основными взаимодействующими "лицами" протокола являются агенты и системы управления. Если рассматривать эти два понятия на языке "клиент-сервер", то роль сервера выполняют агенты, то есть те самые устройства для опроса состояния которых и был разработан протокол. Соответственно, роль клиентов отводится системам управления – сетевым приложениям, необходимым для сбора информации о функционировании агентов. Помимо этих двух субъектов в модели протокола можно выделить также еще два: управляющую информацию и сам протокол обмена данными.

Вся информация об объектах системы-агента содержится в так называемой MIB (management information base) – базе управляющей информации, другими словами MIB представляет собой совокупность объектов (MIB-переменные), доступных для операций записи-чтения.

На данный момент существует четыре типовых базы MIB:

1. Internet MIB – база объектов для обеспечения диагностики ошибок и конфигураций. Включает в себя 171 объект (в том числе и объекты MIB I).
2. LAN manager MIB – база из 90 объектов – пароли, сессии, пользователи, общие ресурсы.
3. WINS MIB – база объектов, необходимых для функционирования WINS сервера.
4. DHCP MIB – база объектов, необходимых для функционирования DHCP сервера, служащего для динамического выделения IP адресов в сети.

Кроме вышеуказанных типовых баз MIB могут догружаться в виде модулей, в соответствии с библиотекой NetSNMP.

1.1 MIB

Все имена MIB имеют иерархическую структуру. Существует десять корневых синонимов:

1. System — данная группа MIB II содержит в себе семь объектов, каждый из которых служит для хранения информации о системе (версия ОС, время работы и т.д.).
2. Interfaces — содержит 23 объекта, необходимых для ведения статистики сетевых интерфейсов агентов (количество интерфейсов, размер MTU, скорость передачи, физические адреса и т.д.).
3. AT (3 объекта) — отвечают за трансляцию адресов. Более не используется. Была включена в MIB I. В SNMP v2 эта информация была перенесена в MIB для соответствующих протоколов.
4. IP (42 объекта) — данные о проходящих IP пакетах (количество запросов, ответов, отброшенных пакетов).
5. ICMP (26 объектов) — информация о контрольных сообщениях (входящие/исходящие сообщения, ошибки и т.д.).
6. TCP (19) — все, что касается одноименного транспортного протокола (алгоритмы, константы, соединения, открытые порты и т.п.).
7. UDP (6) — аналогично, только для UDP протокола (входящие/исходящие датаграммы, порты, ошибки).
8. EGP (20) — данные о трафике Exterior Gateway Protocol (используется маршрутизаторами, объекты хранят информацию о принятых/отосланных/отброшенных кадрах).
9. Transmission — зарезервирована для специфических MIB.
10. SNMP (29) — статистика по SNMP – входящие/исходящие пакеты, ограничения пакетов по размеру, ошибки, данные об обработанных запросах и многое другое.

1.2 Адресация

Каждый из корневых псевдонимов представляется в виде дерева, растущего вниз. Например, к адресу администратора можно обратиться посредством пути: "system.sysContact.0", ко времени работы системы: "system.sysUpTime.0", к описанию системы (версия, ядро и другая информация об ОС): "system.sysDescr.0". С другой стороны, те же данные могут задаваться и в точечной нотации. Так "system.sysUpTime.0" соответствует значение "1.3.0", так как "system" имеет индекс "1" в группах MIB II, а "sysUpTime" – 3, в иерархии группы "system". Ноль в конце пути говорит о скалярном типе хранимых данных. В процессе работы символьные имена объектов не используются, то есть если менеджер запрашивает у агента содержимое параметра "system.sysDescr.0", то в строке запроса ссылка на объект будет преобразована в "1.1.0", а не передана "как есть".

В целом существует несколько способов записи адреса к MIB-переменной:

1. ".1.3.6.1.2.1.1" — прямая кодовая адресация для объекта "System" (корневой псевдоним System). При такой адресации каждая MIB переменная кодируется идентификатором, а полный адрес записывается в виде последовательности идентификаторов, разделённых точкой слева на право. Данная запись адреса является основной и все другие способы записи приводятся к ней.
2. ".iso.org.dod.internet.mgmt.mib-2.system" — полная символьная к прямой кодовой адресации для объекта "System".
3. "system.sysDescr.0" — простая, не полным путём, адресация относительно корневого псевдонима (объект "System").
4. "SNMPv2-MIB::sysDescr.0" — адресация из MIB базы от имени модуля, для "system.sysDescr.0".

1.3 Взаимодействие

SNMP клиент взаимодействует с сервером по принципу запрос-ответ. Сам по себе агент способен инициировать только одно действие, называемое ловушкой прерыванием. Помимо этого, все действия агентов сводятся к ответам на запросы, посылаемые менеджерами.

Существует три основные версии протокола SNMP (v1 & v2 & v3), которые не являются совместимыми. В SNMP v3 включена поддержка шифрования трафика, для чего, в зависимости от реализации, используются алгоритмы DES, MD5. Это ведет к тому, что при передаче наиболее важные данные недоступны для прослушивания. В качестве транспортного протокола в SNMP обычно используется протокол UDP, Хотя на самом деле SNMP поддерживает множество других транспортных протоколов нижнего уровня.

1.4 Авторизация

Одним из ключевых понятий в SNMP является группа (group). Процедура авторизации менеджера представляет собой простую проверку на принадлежность его к определенной группе, из списка, находящегося у агента. Если агент не находит группы менеджера в своем списке то их дальнейшее взаимодействие невозможно. По умолчанию используются группы: public (для чтения) и private (для записи). В протоколе SNMP v3 для аутентификации используется понятие пользователя с паролем аутентификации и приватности, в зависимости от уровня секретности.

2 Модуль

Данный модуль поддерживает работу со всеми версиями протокола SNMP (1, 2 и 3) в режимах чтения и записи MIB-параметров, благодаря использованию библиотеки NetSNMP.

2.1 Объект контроллера

Для добавления источников данных SNMP в OpenSCADA создаются и конфигурируются объекты контроллера. Пример вкладки конфигурации объекта контроллера данного типа изображен на рисунке 1.

Рис.1. Вкладка конфигурации объектов контроллера.

С помощью этой вкладки можно установить:

  • Состояние объекта контроллера, а именно: Статус, "Включен", "Исполняется" и имя БД, содержащей конфигурацию.
  • Идентификатор, имя и описание объекта контроллера.
  • Состояние в которое переводить объект контроллера при загрузке: "Включать" и "Запускать".
  • Имя таблицы для хранения конфигурации параметров объекта контроллера.
  • Политика планирования и приоритет задачи сбора данных.
  • Адрес удалённого хоста агента.
  • Количество попыток отправки запросов.
  • Время ожидания ответов, в секундах.
  • Используемую версию протокола SNMP.
  • Сообщество или пользователя подключения.
  • Ограничение на количество атрибутов в одном параметре.
  • Уровень безопасности для v3 (Нет авториз./Нет приватн.; Авториз./Нет приватн.; Авториз./Приватн.).
  • Метод кодирования (MD5, SHA) и пароль аутентификации для v3.
  • Метод кодирования (DES, AES) и приватность аутентификации для v3.

2.2 Параметр объекта контроллера

Модуль SNMP предоставляет только один тип параметров — "Стандарт". Дополнительным конфигурационным полем параметра данного модуля (рис.2) является список MIB-параметров, ветви или отдельные элементы (скаляры) которых подлежат считыванию.

Рис.2. Вкладка конфигурации параметров.

В соответствии с указанным списком MIB-параметров выполняется опрос их ветвей (или скаляров) и создание атрибутов параметров. В дальнейшем выполняется обновление значений параметров. Атрибуты именуются в соответствии с кодовой адресацией MIB-параметров, в качестве идентификатора, и адресации от базы MIB объектов, в имени атрибута (рис.3).

Рис.3. Вкладка атрибутов параметров.