Протокол IP : Протокол SNMP

MIB-компиляторы и загрузка баз данных MIB

21 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв


Содержание


Введение

В большинстве систем управления сетью (NMS) предусмотрен механизм загрузки баз MIB пользователем. Загрузка MIB позволяет обучать систему NMS новым объектам MIB, таким как имена, идентификаторы объектов (OID) и типы данных (например, счетчик).

MIB мог бы быть проанализирован, когда он загружен, или это могло бы произойти позже, например, когда выполняется приложение NMS. Компилятор MIB - ПО, выполняющее синтаксический анализ.

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

Cisco делает непрерывные усилия, чтобы гарантировать, что MIB, публикованные в клиентах, синтаксически корректны. Cisco также избегает конструкций MIB, которые, оказалось, были проблематичны в популярных продуктах NMS. Несмотря на все усилия, невозможно предусмотреть все особенности работы компиляторов MIB в условиях эксплуатации.

Этот документ решает некоторые типичные проблемы и предлагает обходные пути. При обнаружении с какой-либо из этих проблем с компилятором MIB поставщика (за исключением RFC 14xx по сравнению с RFC 19xx проблема), это происходит из-за дефицита в том компиляторе MIB. Можно хотеть убедить поставщика или поставщиков исправить их компиляторы.

Предварительные условия

Требования

Читатели данной документации должны быть знакомы с MIB.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.

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

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические рекомендации Cisco. Условные обозначения.

Основные проблемы загрузки MIB

Упорядочение загрузки

Порядок загрузки является самой важной и типичной проблемой при загрузке MIB. Много MIB используют определения, которые определены в других MIB. Эти определения указаны в списке параграфа "ИМПОРТ" в верхней части MIB.

Например, если MIB mumble импортирует определение из MIB bumble, некоторые компиляторы MIB требуют сначала загрузить MIB bumble, а затем MIB mumble. Если вы поймете заказ загрузки превратно, то компилятор будет утверждать, что импортированные MIB не определены.

Это - список MIB, из которых много других MIB импортируют, и заказ, в котором необходимо загрузить их. Это, вероятно, заботится о 95 процентах проблем заказа загрузки (большинство других MIB может быть загружено в любом заказе):

  • SNMPv2-SMI.my

  • SNMPv2-TC.my

  • SNMPv2-MIB.my

  • RFC1213-MIB.my

  • IF-MIB.my

  • CISCO-SMI.my

  • CISCO-PRODUCTS-MIB.my

  • CISCO-TC.my

Примечание: При загрузке версий v1 этих MIB имя файла MIB будет фактически похоже на IF-MIB-V1SMI.my (“-V1SMI”, добавлен к названию MIB, которые были преобразованы от v2 до v1). Исключением из этого является MIB RFC1213-MIB.my, который только существует как версия v1 (т.е. существует № RFC1213-MIB-V1SMI.my).

При попытке загрузить другой MIB, и если компилятор жалуется на неопределенные элементы, то определите, из которых MIB этот MIB импортирует, и проверьте загрузку всех других MIB сначала.

Примечание: Для каждого MIB вы видите точный список MIB, которые должны быть загружены до него — с точным заказом компиляции — в SNMP Object Navigator> MIB Загрузки и Представление; выберите зависимости от View MIB и загрузите MIB.

Рассогласование в определении типа данных

Хотя определения типов данных Cisco MIB не будут несогласованными, может возникнуть необходимость в некоторых стандартных RFC MIB. Пример:

  • MIB mumble определяет: SomeDatatype:: = ЦЕЛОЕ ЧИСЛО (0.. 100)

  • Путаница MIB определяет: SomeDatatype ::= INTEGER(1..50)

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

Следующий пример считается нетривиальной ошибкой (несмотря на то, что два определения, в сущности, эквивалентны) и разбор MIB не был выполнен успешно.

  • MIB mumble определяет: SomeDatatype:: = DisplayString

  • Путаница MIB определяет: SomeDatatype ::= OCTET STRING (SIZE(0..255))

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

Переопределения идентификатора объекта

Можно встретиться с переопределениями OID при загрузке этих MIB (невзирая на то, что могут быть другие экземпляры, где эта ошибка происходит):

Пример:

  • OLD-CISCO-CPU MIB. мой определяет: ИДЕНТИФИКАТОР ОБЪЕКТА lcpu:: = {локальный 1}

  • OLD-CISCO-ENV-MIB.my определяет: lenv OBJECT IDENTIFIER ::= { local 1 }

При загрузке этих двух MIB компилятор MIB может жаловаться на lcpu OBJECT IDENTIFIER, переопределяемый с новым именем lenv. OLD-CISCO-MEMORY-MIB.my и OLD-CISCO-SYSTEM-MIB.my так же дают новые имена { local 1 }.

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

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

Определения встроенных типов данных

Много компиляторов MIB имеют встроенное знание некоторых типов данных, таких как DisplayString. Некоторые из этих компиляторов жалуются, видят ли они определение для этих типов данных в MIB. Например, тип DisplayString определен в SNMPv2-TC.

Для решения этой проблемы можно удалить или закомментировать такое определение в файле MIB.

Другие размеры

Это синтаксически достоверный пример, который указывает, что значение типа MyDatatype или будет 0, 5, или 20 октетов в длине:

MyDatatype ::= OCTET STRING (SIZE(0 | 5 | 20))

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

MyDatatype ::= OCTET STRING (SIZE(20))

Идентификаторы Odd-объектов

Некоторые OID считают нечетными, потому что они не обращаются к узлу в S I (как большая часть OBJECT IDENTIFIER s). Однако они синтаксически допустимы. Общим примером является идентификатор несуществующего объекта, например, { 0 0 }. Некоторые компиляторы MIB не заботятся о OBJECT IDENTIFIER s, которые не соответствуют узлу в S I. Это примеры синтаксиса MIB, которые могли вызвать проблемы для этих компиляторов:

zeroDotZero OBJECT IDENTIFIER ::= { 0 0 }
myMIBObject OBJECT-TYPE
DEFVAL { {0 0} }

Обходной путь должен удалить или прокомментировать те типы ссылок в Файле Mib.

Определение системного прерывания

В MIB SNMPv1 trap-сообщения определены с макросом TRAP-TYPE. В MIB SNMPv2 trap-сообщения определены с помощью макроса NOTIFICATION-TYPE.

Некоторым компиляторам MIB не нравятся эти определения в Файлах Mib, которые они анализируют (они не поддерживают их макросы).

Если это верно, можно удалить определения ловушки или прокомментировать определения (например, поместить символ комментария MIB -- в начале линий).

Компиляторы на основе rfc 14xx по сравнению с компиляторами на основе rfc 19xx

RFC 1442 - 1452 определяют основанный на стороне SNMPv2. Эти RFC являются устаревшими более новыми RFC Draft Standard 1902 - 1908.

Относительно синтаксиса MIB существует очень немного различий между этими двумя версиями SNMPv2; существуют некоторые, как бы то ни было. MIB Cisco в настоящее время основаны на RFC 19xx правила.

Примечание: Несколько лет назад, когда MIB Cisco были находящимся в 14xx RFC, некоторые Компиляторы на основе rfc 19xx будут жаловаться на Unsigned32:: = линия TEXTUAL-CONVENTION в CISCO-TC.my и MIB PNNI-MIB.my. Это вызвано тем, что Unsigned32 является предопределенным типом данных в RFC 19xx. Поэтому Cisco использовала иметь альтернативные версии этих MIB (CISCO-TC-NO-U32.my и PNNI-MIB-NO-U32.my) без определения для Unsigned32, загружаться в компиляторах, которые уже знают об этом типе данных. Это больше не применимо.

Загрузка и компиляция MIBS в сторонний NMS

Лучшее и наиболее рационально загрузить MIB Cisco, trap-сообщения и значки в сторонний NMS должно использовать Служебную программу интеграции CiscoWorks (Служебная программа интеграции), которая доступна как часть CiscoWorks Common Services (или автономный от http://www.cisco.com/cgi-bin/tablebuild.pl/cw2000-utility) с соответствующим Адаптером Служебной программы интеграции от http://www.cisco.com/tacpage/sw-center/cw2000/cmc3rd.shtml и последний Пакет данных интеграции для управления сетью (NMIDB). Проверьте документацию Служебной программы интеграции для получения дополнительной информации.

Также можно консультироваться с документацией стороннего NMS на загрузке MIB и компиляции. Этот документ включает инструкции для HP OpenView и IBM NetView; но необходимо все еще консультироваться с HP или документацией IBM, поскольку могут измениться продукты.

От GUI HP OpenView или IBM NetView

Выполните эти действия для загрузки MIB Cisco, которые вы хотите:

  1. Скопируйте файлы в каталог,/usr/OV/snmp_mibs из станции управления сетью.

    Это - каталог по умолчанию, где HP OpenView и IBM NetView ищут документы MIB. Если они будут помещены в другую папку, задайте полный путь в графическом интерфейсе loadmib.

  2. Установите разрешения так, чтобы у вас был доступ для чтения к MIB.

  3. Из меню графического интерфейса пользователя выберите Options> Load/Unload MIBs.

  4. Следуйте инструкциям в документации по платформе, чтобы скомпилировать или загрузить MIB Cisco.

От интерфейса командной строки HP OpenView или IBM NetView

Выйдите/opt/OV/bin/xnmloadmib - загружают команду имени файла, для загрузки Файла Mib.


Дополнительные сведения


Document ID: 26015