Основные вопросы о SNMP - PullRequest
19 голосов
/ 19 марта 2010

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

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

Ответы [ 3 ]

17 голосов
/ 24 марта 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 едва ли содержит достаточно информации.

11 голосов
/ 26 марта 2010

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

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

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

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

Сказав это, ловушка на Entity-MIB не имеет переменных состояния.Однако этот MIB используется для описания физической инвентаризации, такой как полки, карты и порты, и ловушка выбрасывается только в случае изменения физической конфигурации.В этом случае ожидается, что ваш SNMP Manager снова пройдет 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, которые позволяют вашему менеджеру подавлять определенные ловушки.

0 голосов
/ 25 марта 2010

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

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

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

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

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

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

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

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

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

...