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

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

  1. Агенты хранят его состояние на самом устройстве?
  2. Если существует набор прерывания на агенте, можно ли сделать опрос на том же OID для получения той же информации?
  3. Не используя файл МиБ, там способ запросить устройство для всей его информации сразу? В противном случае и Вы пишете Вашему собственному специализированному менеджеру, необходимо ли знать структуру того, о чем она сообщает впереди?
  4. При установке агента для создания отчетов, есть ли обычно способ управлять частотой того, как часто это отправляет прерывание? Или это обычно отправляет прерывание так часто, как некоторое условие удовлетворено?
19
задан David Hodgson 19 March 2010 в 02:38
поделиться

3 ответа

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12
ответ дан 30 November 2019 в 04:11
поделиться

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

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

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

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

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

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

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

Да, агент решает, когда отправлять прерывания.

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

-1
ответ дан 30 November 2019 в 04:11
поделиться

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

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

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

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

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

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

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

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

18
ответ дан 30 November 2019 в 04:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: