SNMP (англ. Simple Network Management Protocol — простой протокол управления сетью) — это протокол управления сетями связи на основе архитектуры TCP/IP.

На основе концепции TMN в 1980—1990 гг. различными органами стандартизации был выработан ряд протоколов управления сетями передачи данных с различным спектром реализации функций TMN. К одному из типов таких протоколов управления относится Simple Network Management Protocol (SNMP). SNMP — это технология, призванная обеспечить управление и контроль за устройствами и приложениями в сети связи путём обмена управляющей информацией между агентами, располагающимися на сетевых устройствах, и менеджерами, расположенными на станциях управления. В настоящее время SNMP является базовым протоколом управления сети Internet. SNMP определяет сеть как совокупность сетевых управляющих станций и элементов сети (главные машины, шлюзы и маршрутизаторы, терминальные серверы), которые совместно обеспечивают административные связи между сетевыми управляющими станциями и сетевыми агентами. SNMP различных версий посвящён целый ряд рекомендаций проблемной группы проектирования Internet (RFC).

Стандарты систем управления на основе протокола SNMPПравить

В системах управления (СУ) на основе протокола SNMP стандартизируются следующие элементы:

  • протокол взаимодействия агента и менеджера;
  • язык описания моделей MIB и сообщений SNMP — язык абстрактной синтаксической нотации ASN.1 (стандарт ISO 8824:1987, рекомендации ITU-T Х.208);
  • несколько конкретных моделей MIB (MIB-I, MIB-II, RMON, RMON 2), имена объектов которых регистрируются в дереве стандартов ISO.

Все остальное отдаётся на откуп разработчику СУ. Протокол SNMP и концепция SNMP MIB были разработаны для управления маршрутизаторами Internet. Простота и эффективность решения обеспечили успех этого протокола. Сегодня он используется при управлении любыми видами оборудования и ПО в ВС. И хотя в области управления ТКС наблюдается тенденция применения стандартов ITU-T, в которые входит протокол CMIP, и здесь имеется много примеров использования SNMP-управления. Агенты SNMP встраиваются в аналоговые модемы, модемы ADSL, коммутаторы ATM и т. д.

SNMP — протокол прикладного уровня для стека TCP/IP, есть реализации для других стеков (IPX/SPX). SNMP используется для получения от сетевых устройств информации об их статусе, производительности и других характеристиках, которые хранятся в базе данных управляющей информации MIB (Management Information Base). Простота SNMP определяется простотой MIB SNMP, особенно их первых версий MIB I и MIB II. Сам протокол SNMP также несложен.

Есть стандарты, определяющие структуру MIB, в том числе набор типов её объектов, их имена и допустимые операции над этими объектами. Древовидная структура MIB содержит обязательные (стандартные) поддеревья, также в ней могут находиться частные (private) поддеревья, позволяющие изготовителю интеллектуальных устройств управлять какими-либо специфическими функциями устройства на основе специфических объектов MIB.

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

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

Примитивы протокола SNMPПравить

SNMP — протокол типа «запрос-ответ», на каждый запрос, поступивший от менеджера, агент должен передать ответ. Особенность протокола — его простота. Он включает в себя всего несколько команд.

В SNMPv1 определены следующие типы сообщений: «Get», «GetNext», «Set». «GetResponse» и «Trap».

  • Команда Get-request используется менеджером для получения от агента значения какого-либо объекта по его имени.
  • Команда GetNext- request используется менеджером для извлечения значения следующего объекта (без указания его имени) при последовательном просмотре таблицы объектов.
  • С помощью команды Get-response агент SNMP передаёт менеджеру ответ на команды Get-request или GetNext-request.
  • Команда Set используется менеджером для изменения значения какого-либо объекта. С помощью команды Set происходит собственно управление устройством. Агент должен понимать смысл значений объекта, который используется для управления устройством, и на основании этих значений выполнять реальное управляющее воздействие — отключить порт, приписать порт определённой VLAN и т. п. Команда Set пригодна также для установки условия, при выполнении которого агент SNMP должен послать менеджеру соответствующее сообщение. Может быть определена реакция на такие события, как инициализация агента, рестарт агента, обрыв связи, восстановление связи, неверная аутентификация и потеря ближайшего маршрутизатора. Если происходит любое из этих событий, то агент инициализирует прерывание.
  • Команда Trap используется агентом для сообщения менеджеру о возникновении особой ситуации.

В общем виде Последовательность работы можно сформулировать следующим образом:

  1. субъект управления формирует и посылает ОУ стандартное сообщение-запрос для получения информации об объекте;
  2. ОУ формирует ответ на запрос и посылает этот ответ субъекту;
  3. субъект на основе полученной информации о состоянии ОУ формирует и посылает ему стандартное сообщение об изменении параметров;
  4. ОУ, получив сообщение на изменение своих параметров, посылает сообщение-прерывание и производит соответствующую собственную реконфигурацию.

Процедурная характеристика SNMP приведена на рисунке


Обязательной для всех реализаций SNMP является поддержка пяти блоков данных протокола: GetRequest-PDU, GetNextRequest-PDU, GetResponse-PDU, SetRequest-PDU, и Trap-PDU. Таким образом, область данных может содержать пять различных типов PDU, соответствующих пяти командам протокола SNMP:

  • Get-request используется для получения значения одной или нескольких переменных;
  • Get-next-request используется для получения следующей переменной после запрашиваемой;
  • Set-request используется для установки значения одной или нескольких переменных;
  • Get-response используется для выдачи значения одной или нескольких переменных. Это сообщение возвращается агентом менеджеру в ответ на операторы get-request, get-next-request и set-request;
  • Trap используется для уведомления менеджера, когда что-либо произошло с агентом.

Сообщения, содержащие такие блоки данных протокола как GetRequest-PDU, GetNextRequest-PDU, SetRequest-PDU, отправляются от менеджера к агенту, а сообщения, содержащие GetResponse-PDU и Trap-PDU, отправляются от агента к менеджеру. Менеджер отправляет свои три запроса на UDP порт 161. Агент отправляет «ловушки» (trap) на UDP порт 162. Так как используются два разных порта, одна система может выступать в роли менеджера и агента одновременно.

Логическая характеристика SNMP (SNMPv1) Протокол SNMPv1 описан в RFC-1157. Сообщение SNMP состоит из трёх полей:

  • «Version» (версия протокола);
  • «Community» (сообщество);
  • «SNMP PDU» (блок данных).

Поле «Community» применяется для ограничения доступа к управляемой системе. Блок данных «SNMP PDU» начинается с описания его типа («PDU type»), который и определяет структуру блока. В общем виде блок данных состоит из нескольких обязательных полей и произвольного числа параметров (имён переменных — «Name») и значений («Value») параметров.

  • Версия SNMP v.2 добавляет к этому набору команду GetBulk, которая позволяет менеджеру получить несколько значений переменных за один запрос.

Недостатки протокола SNMPПравить

  • Отсутствие средств взаимной аутентификации агентов и менеджеров. Единственное средство идентификации — «строка сообщества» — «community string». Строка передаётся в открытой форме (до 3-ей версии протокола) в сообщении SNMP и служит основой для деления агентов и менеджеров на «сообщества», так что агент взаимодействует только с теми менеджерами, которые указывают в поле community string ту же символьную строку, что и строка, хранящаяся в памяти агента. Это, безусловно, не способ аутентификации, а способ структурирования агентов и менеджеров.
  • Работа через ненадёжный протокол UDP (подавляющее большинство реализации агентов SNMP) приводит к потерям аварийных сообщений (сообщений trap) от агентов к менеджерам, что может привести к некачественному управлению.

Разработчики платформ управления стараются преодолеть эти недостатки. Например, в платформе HP OpenView Telecom DM TMN, являющейся платформой для разработки многоуровневых систем управления в соответствии со стандартами TMN и ISO, работает новая реализация SNMP, организующая надёжный обмен сообщениями между агентами и менеджерами за счёт самостоятельной организации повторных передач сообщений SNMP при их потерях.

Сравнение протоколов SNMP и CMIPПравить

  • SNMP позволяет строить простые и сложные системы управления, а CMIP определяет высокий начальный уровень сложности системы управления, так как для его работы необходимо реализовать ряд вспомогательных служб, объектов и баз данных объектов.
  • Агенты CMIP выполняют более сложные функции, чем агенты SNMP. Из-за этого операции, которые менеджеру можно выполнить над агентом SNMP, носят атомарный характер, что приводит к многочисленным обменам между менеджером и агентом.
  • Уведомления агента SNMP посылаются менеджеру без подтверждения, в то время как уведомления агента CMIP всегда передаются с помощью надёжного транспортного протокола.
  • Часть проблем SNMP можно решить за счёт применения более интеллектуальных MIB (к которым относится RMON MIB), но для многих устройств таких MIB нет.
  • CMIP рассчитан на интеллектуальных агентов, которые могут по одной простой команде от менеджера выполнить сложную последовательность действий.
  • CMIP лучше масштабируется, так как может воздействовать сразу на несколько объектов, а ответы от агентов проходят через фильтры, ограничивающие передачу управляющей информации только определённым агентам и менеджерам.

ЗаключениеПравить

В заключение можно сделать следующие выводы:

  1. В основе всех СУ сетями лежит схема «агент — менеджер». Эта схема использует абстрактную модель управляемого ресурса, называемую базой управляющей информации — Management Information Base, MIB.
  2. Агент взаимодействует с управляемым ресурсом по нестандартному интерфейсу, а с менеджером — по стандартному протоколу через сеть.
  3. В больших СУ используется несколько менеджеров, взаимодействующих друг с другом по одноранговой или иерархической схеме.
  4. Иерархическая схема взаимодействия менеджеров соответствует стандартам TMN и является более перспективной.
  5. При построении СУ используется платформенный подход. Платформа СУ выполняет для менеджеров роль ОС для обычных приложений и обеспечивает разработчика менеджеров набором системных вызовов общего для любой СУ независимо от её назначения.
  6. Существуют два семейства стандартов СУ: СУ на основе SNMP, и международные стандарты, опирающиеся на протокол CMIP. SNMP специфицирует минимум аспектов и элементов CУ, а ISO/ITU-T — максимум.
  7. СУ SNMP основаны на следующих концепциях, ориентированных на минимальную загрузку управляемых устройств:
    • агент выполняет самые простые функции и работает в основном по инициативе менеджера;
    • СУ состоит из одного менеджера, который периодически опрашивает всех агентов;
    • SNMP использует транспортный протокол UDP и два основных типа команд — get для получения данных от агента и set для передачи управляющих воздействий агенту;
    • агент может послать данные менеджеру по своей инициативе с помощью команды trap, но число ситуаций, в которых он применяет эту команду, очень невелико.
    • Базы управляющей информации MIВ в SNMP состоят из дерева атрибутов, называемых объектами и группами объектов.
    • Первые MIВ были ориентированы на управление маршрутизаторами:
    • MIB-I — только контроль, MIB-II — контроль и управление. Разработка RMON MIB направлена на создание интеллектуальных агентов, контролирующих нижний уро-вень, — интерфейсы Ethernet и Token Ring. Имена объектов стандартных MIB Internet зарегистрированы в дереве регистрации имён стандартов ISO.
  8. Стандарты ISO/ITU-T используют объектно-ориентированный подход. Определено несколько суперклассов обобщённых управляемых объектов, на основании которых путём наследования свойств создаются более специфические классы объектов.
  9. Для описания управляемых объектов OSI разработаны правила GDMO, основанные на формах определённой структуры, заполняемых с помощью языка ASN.1.
  10. Для представления знаний об УО, агентах и менеджерах СУ в OSI используется три древовидные базы данных: дерево наследования, дерево включения и дерево имён.
  11. CMIP позволяет с помощью одной команды воздействовать сразу на группу агентов, применив такие опции, как обзор и фильтрация.

Внешние ссылкиПравить

hu:SNMP lt:SNMP nn:Simple Network Management Protocol