2014-11-22 5 views
0

Я довольно новичок в SNMP-протоколе и недавно был ознакомлен с ним в своем компьютерном сетевом курсе.Проблемы с захватом MIB с помощью PySNMP

Я понимаю, как менеджер отправляет Gets, Sets, GetNext, GetBulk и все такое, это поймает ловушки и т. Д. Одна вещь, которую я не совсем понимаю, - это MIB

Из того, что я собираю, MIB является chillen на агенте, и Менеджер будет запрашивать дерево MIB. Это хорошо, хотя менеджер нуждается в OID, чтобы иметь возможность правильно запросить. Один вопрос, который я имею в виду, если они жестко запрограммированы или нет. Являются ли OID жестко закодированы в менеджере или нет?

Кроме этого, я не уверен, как создать файл MIB, по-видимому, существует специальный тип файла, который определяет структуру MIB, и я действительно не понимаю, как использовать pySNMP для его создания. Я чувствую, что буду запускать это на стороне агента при запуске.

Может кто-нибудь помочь прояснить эти концептуальные проблемы для меня?

ответ

0

Менеджер должен знать переменные, чтобы запросить что-то конкретное. Переменные могут быть идентифицированы с помощью имен объектов OID или MIB.

MIBs дает информацию диспетчера, такому как:

  • человеку дружественного символическим имена, связанному с Идентификаторами
  • Типы значений, связанными с конкретной OIDs
  • Советов по разрешениям доступа к переменным, которые реализованы Агенту
  • Структура и типы индексов таблиц SNMP
  • Ссылки на другие объекты MIB (например, Уведомления)

Если MIB доступен, Менеджер сможет выполнить любую операцию SNMP, зная либо символическое имя, либо OID интересующей переменной агента. Все необходимые данные будут собраны из MIB.

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

Например, операция GET может выполняться только с OID, однако без MIB Manager могут возникнуть проблемы с ответом, которые выглядят дружественными человеку.

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

Более сложные сценарии включают в себя динамическое создание OID (для адресации записей таблицы SNMP) с использованием структуры индексов, формально определяемой MIB.

Задача запросов GETNEXT/GETBULK заключается в том, чтобы Менеджер не знал о точном наборе идентификаторов OID, предоставляемых Агентом. Таким образом, менеджер мог перебирать переменные агента, начиная с хорошо известного OID (или даже с его префиксом). Одним из способов использования этой функции является извлечение таблицы SNMP.

MIB записываются в подмножество языка ASN.1. В отличие от ASN.1, MIB очень специфичны для домена SNMP.

Для использования MIB с pysnmp вам необходимо передать ASN.1 MIB на build-pysnmp-mib сценарий оболочки (из дистрибутива pysnmp), который будет вызывать smidump и другие инструменты для преобразования MIB ASN.1 в набор классов Python, представляющих объекты MIB с поддержкой pysnmp.