SNMP

SNMPэто стандартный интернет протокол, предназначенный для управления различными устройствами в сетях на основе архитектуры UDP/TCP. К таким устройствам относятся – маршрутизаторы, коммутаторы, различные сервера, а также принтеры, IP-телефоны, IP-видеокамеры и многое другое. Данный протокол используется в системах сетевого управления для контроля работы, подключенных к сети устройств. SNMP – является компонентом TCP/IP и состоит из стандартов предназначенных для сетевого управления, в которые входят: протокол прикладного уровня, схема баз данных и набор объектов данных.

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

SNMP предоставляет данные, в виде переменных, которые описывают конфигурацию управляемой системы. Эти переменные в основном запрашивают управляющие приложения (иногда они их задают).

Управляющая программа на сервере («менеджер») по протоколу SNMP производит управление группой устройств в компьютерной сети. На каждой управляемом устройстве должна быть постоянно запущена программа («агент»), которая и передает информацию по протоколу SNMP «менеджеру». «Менеджер» обрабатывает все полученные данные от «агентов» и преобразует их в формат, удобный для поддерживания протокола SNMP. Протокол также решает задачи управления, например изменение и применение новой конфигурации удаленно, изменяя полученные переменные и отсылая их назад «агенту». Доступные по протоколу SNMP переменные структурированы в определенной последовательности. Эти иерархии, а также другие метаданные (например, тип и описание переменной) описываются базами управляющей информации или базами MIB.

Компоненты сети, управляемые протоколом SNMP:

  • Управляемое устройство – это оборудование или программное средство, которое может управляться по SNMP и имеет однонаправленный (только для чтения) или двунаправленный доступ к конкретной информации об элементе. Управляемые устройства обмениваются информацией с «менеджером».
  • «Агент» - программное обеспечение, которое работает на управляемом устройстве. «Агент» содержит информацию по данному устройству и переводит эту информацию в специальную форму для протокола SNMP или обратно (медитация данных).
  • Система сетевого управления (NMS) – это программное обеспечение, которое взаимодействует с «менеджерами» для поддержки общей структуры данных, которая отражает состояние сети. Она обеспечивает основную работу по обработке данных, которые необходимы для сетевого управления. В любой сети может быть одна и более NMS.

Базы управляющей информации (MIB)

Базы MIB описывают структуру управляемых данных с помощью иерархического пространства имен. Данное пространство содержит идентификаторы объектов (OID). Каждый OID определяет переменную, которая может быть считана либо установлена с помощью SNMP.

 Детали протокола.

Протокол SNMP работает на прикладном уровне TCP/IP. «Агент» получает запросы на порт 161. «Менеджер» может отправлять запросы с любого доступного ему порта на порт «агента». «Агент» будет отвечать на тот порт, с которого придет ему запрос. «Менеджер» получает уведомления (traps) на порт 162.

Виды SNMP сообщений:

GetRequest

Это запрос от «менеджера» к «агенту» для получения значения переменной или списка переменных. «Менеджеру» возвращается ответ (response) с текущими значениями.

SetRequest

Этот запрос от «менеджера» к «агенту» служит для изменения переменной или списка переменных. Сами переменные указываются в теле запроса. «Агент» выполняет изменения и в ответе на запрос уже указывает новые значения переменных.

GetNextRequest

Этот запрос используется для обнаружения на устройстве доступных переменных и их значений. «Менеджеру» возвращается ответ с значением одной переменной и ссылка на следующую в списке. Второй запрос получает данные по следующей переменной и ссылку на очередную переменную. И так проходит по кругу.

GetBulkRequest

Это улучшенная версия GetNextRequest. «Менеджеру» будет возвращен ответ с несколькими переменными сразу, начиная со связанной переменной в запросе.

Response

Возвращает связанные переменные и значения от «агента» «менеджеру» для GetRequest, SetRequest, GetNextRequest, GetBulkRequest и InformRequest. Уведомления об ошибках обеспечиваются полями статуса ошибки и индекса ошибки.

Trap

Передача сообщений от «агента» менеджеру» без запроса «менеджера». Включает в себя текущее значение, определяющий тип (trap) и необязательные связанные переменные. Адресация получателя определяется с помощью переменных trap-конфигураций в базе MIB.

InformRequest

Это просто уведомление от «менеджера» «агенту» и наоборот. Так как SNMP работает на протоколе UDP, в котором доставка сообщений не гарантирована, а также не сообщается о потерянных пакетах. На помощь приходит InformRequest. Он посылает уведомление о вручении, то есть получатель отвечает и в ответе повторяется вся информация из InformRequest.