Основные вопросы о SNMP

Я изучаю SNMP и пишу некоторые приложения, использующие его. У меня есть несколько основных вопросов о протоколе:

  1. Сохраняют ли агенты свое состояние на самом устройстве?
  2. Если на агенте установлена ​​ловушка, можете ли вы провести опрос с тем же OID, чтобы получить ту же информацию?
  3. Есть ли способ без использования файла mib запросить у устройства всю его информацию одновременно? Если нет, и вы пишете свой собственный специализированный менеджер, нужно ли вам заранее знать структуру того, что он сообщает?
  4. Если вы настраиваете агента для отправки отчетов, обычно есть ли способ контролировать частоту отправки ловушек? Или он обычно отправляет ловушку так часто, как выполняется какое-то условие?

person David Hodgson    schedule 19.03.2010    source источник


Ответы (3)


Сохраняют ли агенты свое состояние на самом устройстве?

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

Если на агенте установлена ​​ловушка, можете ли вы провести опрос с тем же OID, чтобы получить ту же информацию?

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

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

Есть ли способ без использования файла mib запросить у устройства всю его информацию одновременно?

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

Вероятно, вам лучше использовать SNMP GET-BULK или просто выполнить обход MIB, последовательно вызывая SNMP-GET-NEXT до тех пор, пока не перестанут возвращаться объекты.

Если нет, и вы пишете свой собственный специализированный менеджер, нужно ли вам заранее знать структуру того, что он сообщает?

Если вы хотите, чтобы ваш «настраиваемый менеджер» был простым, вам нужно заранее знать структуру. Если вам нужна гибкость, вам понадобится язык описания структуры для кодирования вашей структуры, и ваш менеджер должен будет иметь возможность декодировать это из данных агента и заполнить менеджера, а также взять данные от менеджера и закодировать их в этот формат для отправки агенту(ам). т. е. вы заново изобретете SNMP/SMI, CMIP/CMISE, CIM и множество других систем управления и протоколов, которые уже были развернуты.

Если вы настраиваете агента для отправки отчетов, обычно есть ли способ контролировать частоту отправки ловушек? Или он обычно отправляет ловушку так часто, как выполняется какое-то условие?

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

Используйте ловушки с умом. Например, Entity-MIB имеет только одну ловушку, и ее стоит использовать, поскольку она сообщает об изменениях физической структуры. Interfaces-MIB имеет потенциально много ловушек на порт. Для этой MIB лучше всего включить ловушки только для интерфейса, привязанного к физическому порту, а не для интерфейсов, расположенных поверх интерфейсов более низкого уровня. Для большой сети часто лучше просто использовать комбинацию опроса и ловушек для физического оборудования и физических интерфейсов. Таким образом, вы можете предсказать, какая часть вашей сети будет использоваться для трафика управления, будь то в обычном режиме или во время сетевого сбоя.

Некоторые стандартные MIB указывают, как часто и когда вы можете бросать ловушку. Если вас это устраивает, то используйте его. Вы всегда можете создать свою собственную корпоративную MIB с объектами MIB конфигурации, которые позволят вашему менеджеру блокировать определенные ловушки.

person Jay Godse    schedule 26.03.2010

Сохраняют ли агенты свое состояние на самом устройстве?

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

Если на агенте установлена ​​ловушка, можете ли вы провести опрос с тем же OID, чтобы получить ту же информацию?

Я думаю, вы должны это сделать - например, ловушка SNMPv2 IF-MIB::linkDown содержит три varbinds - IF-MIB::ifIndex, IF-MIB::ifAdminStatus и IF-MIB::ifOperStatus. В этом конкретном случае ifIndex указывает строку в ifTable, а другие две могут быть опрошены.

Есть ли способ без использования файла mib запросить у устройства всю его информацию одновременно?

Да, используйте snmp-walk из пакета net-snmp или любой другой snmp, который может использовать get-next для опроса данных.

Если нет, и вы пишете свой собственный специализированный менеджер, нужно ли вам заранее знать структуру того, что он сообщает?

Вам нужно знать, что содержит MIB устройства - без такой информации вы получите только числовой OID и значение, что бессмысленно как для разработчиков, так и для пользователей. В случае более сложных MIB вам нужно знать довольно много подробностей об управляемом устройстве. Файл MIB вряд ли когда-либо содержит достаточно информации.

person L.R.    schedule 23.03.2010
comment
Соглашаться. На самом деле протокол SNMP не охватывает все аспекты, о которых спрашивал Дэвид. Многие детали, такие как хранение состояния, зависят от реализации. Документы MIB открывают дверь, так что вы можете запросить информацию об устройстве, но его поставщик всегда лучше понимает, как использовать объекты, поскольку документы MIB обычно не охватывают все детали. - person Lex Li; 24.03.2010

Сохраняют ли агенты свое состояние на самом устройстве?

Это зависит от устройства и приложения; некоторые устройства хранят его локально, другие используют прокси-агент.

Если на агенте установлена ​​ловушка, можете ли вы провести опрос с тем же OID, чтобы получить ту же информацию?

Да, но обычно лучше включать информацию в trap, чтобы управляющей станции не приходилось совершать многократные обходы устройства. Например, если вы перехватываете изменение значения атрибута, рекомендуется отправлять старое и новое значение в ловушке.

Есть ли способ без использования файла mib запросить у устройства всю его информацию одновременно? Если нет, и вы пишете свой собственный специализированный менеджер, нужно ли вам заранее знать структуру того, что он сообщает?

Как правило, нет... примитив SNMP Get-next предназначен именно для такого случая.

Если вы настраиваете агента для отправки отчетов, обычно есть ли способ контролировать частоту отправки ловушек? Или он обычно отправляет ловушку так часто, как выполняется какое-то условие?

Да, это зависит от агента, когда отправлять ловушки.

Если вы разрабатываете свой собственный агент, я настоятельно рекомендую вам обратить внимание на Net-SNMP. Даже если вы решите использовать другой продукт, код Net-SNMP очень хорошо разработан и реализован. Кроме того, в нем есть множество дополнений, помогающих разрабатывать и тестировать агенты (и системы управления).

person Doug    schedule 25.03.2010
comment
Скопировать и вставить? -1, так как кто-то другой использовал тот же ответ - person Phill Pafford; 25.03.2010
comment
Ошибка новичка при переполнении стека. Комментарий о NetSNMP все еще должен быть действительным и полезным. - person Doug; 29.03.2010