Назад | Перейти на главную страницу

SNMP Walk против MIB OID Listing

(В конце этой истории есть вопрос, оставайтесь со мной!)

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

Сейчас я использую систему управления SNMP, так что пришло время разобраться. Итак, я углубился в понимание MIB и OID. Насколько я понимаю, поставщик будет выпускать MIB для своего продукта, который должен содержать OID конкретных продуктов. MIB похожа на каталог вещей, которые можно запросить с устройства, а OID - это конкретные элементы, которые можно запросить. (Пожалуйста, поправьте меня, если я не понимаю.)

Например, SonicWall может предоставить MIB для конкретной прошивки для одного из своих Firwalls. Поэтому, если бы я хотел отслеживать максимальное количество подключений, доступных для этого брандмауэра, я бы загрузил MIB с mysonicwall.com, импортировал MIB в браузер MIB и поискал соответствующий OID, соответствующий максимальному количеству подключений. Затем я могу ввести этот OID в свою систему управления SNMP для отслеживания этой метрики.

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

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

Кроме того, есть ли достойный способ получить отчет обо ВСЕХ данных (будь то специфические для sonicwall или отраслевые стандарты), которые мой SonicWall может предоставить через SNMP? Как какой-то инструмент, в который я мог бы ввести данные из SNMP, и он может вернуть то, что все они означают?

Кроме того, если у меня есть пробелы в понимании SNMP, MIB и OID, я буду рад получить обратную связь. Спасибо!!!!

Хорошо, вот что обнаружило мое исследование SNMP. Я не могу убедиться, что все это на 100% верно, но я чувствую, что гораздо лучше разбираюсь в SNMP в целом, и, надеюсь, эта информация поможет тем, кто только начинает.

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

SNMP состоит из 3 частей: системы управления SNMP, как минимум 1 сетевого устройства и программного агента на этих сетевых устройствах. Например, вы можете использовать Naigos или MaxFocus в качестве системы управления SNMP для запроса устройств в вашей сети, таких как принтеры, коммутаторы, маршрутизаторы и т. Д. На всех этих устройствах работают небольшие программные компоненты, созданные их производителями. Эти программные компоненты в основном производят набор данных SNMP в зависимости от того, как работает устройство. Например, принтер может выдавать данные об уровне тонера или маршрутизатор может выдавать данные о том, сколько одновременных подключений он поддерживает в настоящее время. Затем система управления SNMP может запросить эту информацию у этих устройств.

Но как это сделать на самом деле? Что ж, некоторые организации по стандартизации создали MIB еще в 80-х, чтобы помочь с этим. MIB - это, по сути, большое дерево данных атрибутов SNMP, которые можно запрашивать. Эти стандартные MIB охватывают большое количество атрибутов с возможностью запроса - от тонера до сетевых настроек - но, как вы понимаете, по мере появления новых устройств и технологий они не охватывают все. Поэтому производители создали MIB для конкретных продуктов, которые помогают заполнить эти пробелы.

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

  1. Получите бесплатное программное обеспечение MIB Browser. Все они хреновые, но я считаю, что NetTools Pro от Axence или MIB Browser от ManageEngine наименее дрянные.
  2. Большинство браузеров MIB поставляются с предварительно загруженными файлами MIB "по умолчанию". Но если вы хотите знать, какие элементы конкретного поставщика вы можете запрашивать на своих устройствах, вам придется загрузить настраиваемый файл MIB у своего поставщика. (Sonicwall, HP и т. Д.) Если ваш поставщик не предлагает файлы MIB, есть несколько онлайн-ресурсов, на которых размещается множество файлов MIB. Я думаю, есть одно под названием MIB Depot или что-то в этом роде ...
  3. Как только вы загрузите свой собственный файл MIB от поставщика, импортируйте его в свой браузер MIB.
  4. Теперь мы выполняем то, что называется «обходом» вашего устройства SNMP. Для этого вам нужно ввести IP-адрес устройства и его строку сообщества. (Строка сообщества - это на самом деле просто пароль или общий секрет, используемый для аутентификации. Почему создатели SNMP решили, что они должны отличаться и назвать это строкой сообщества, мне не по силам ...) Я также должен упомянуть, что устройство, которое вы запрашиваете необходимо настроить, чтобы разрешить запросы SNMP. Обычно это делается через веб-интерфейс устройства, в котором также обычно задается строка сообщества.
  5. Как только вы подключите ваш MIB-браузер к вашему устройству, выполните функцию «прогулки». Каждый браузер MIB работает по-своему, поэтому вам нужно немного поэкспериментировать, чтобы увидеть, как работает функция прогулки. Но в целом он должен возвращать список OID вашего устройства. Эти идентификаторы соответствуют записи в файлах MIB. Обычно вы можете дважды щелкнуть или выделить один из этих OID, и он найдет соответствующий элемент MIB, который сообщит вам, для чего этот OID используется, например уровень тонера, версия ОС, сетевые соединения и т. д. Затем вы можете ввести номер OID в свою систему управления SNMP и начать мониторинг этого атрибута!

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

http://www.allthingsmax.com/2014/02/take-snmp-walk-creating-new-snmp-checks.html

ОБНОВЛЕНИЕ: я добавлю сюда еще один совет. При просмотре значений OID устройства есть два разных типа значений, которые вы можете получить: скалярные и табличные.

Табличный используется для устройств, которым необходимо предоставить один и тот же тип значения для нескольких компонентов. Например, маршрутизатор может иметь 9 портов. Каждый порт имеет свой физический адрес или MAC-адрес. это представлено таблицей в MIB.

Скаляр используется для значений, не требующих табличной разметки.

ВАЖНАЯ ЧАСТЬ: к скалярным значениям всегда добавляется .0, а к табличным значениям добавляется число, представляющее конкретное значение устройства. Например, на маршрутизаторе порт 1, скорее всего, будет добавлен с .1, порт 2 с .2 и так далее. Затем, когда вы вводите OID в свою систему управления SNMP, вам необходимо обязательно включить этот последний числовой символ. Например, ifPhysAddress = .1.3.6.1.2.1.2.2.1.6, но без добавления табличного значения это не принесет вам никакой пользы. Это похоже на скалярные значения, к которым всегда нужно добавлять .0. Приличный браузер MIB должен показывать вам эти добавляемые значения при перемещении устройства. Браузер MIB ManageEngine отлично с этим справляется. Форматирует это так:

--Скалярные значения:

sysUpTime.0

sysContact.0

sysName.0

- Табличные значения:

ifPhysAddress.1

ifPhysAddress.2

ifPhysAddress.3

...