Как создать агент snmp из net-snmp

Я хочу реализовать SNMP-агент для платы PowerPC, используя net-snmp. Ранее это было реализовано с помощью SMASH. SMASH имеет синтаксический анализатор, который может читать MIB и генерировать код C (пустая реализация функции)

Как начать?


person PrashantB    schedule 20.10.2011    source источник


Ответы (3)


Попробуйте посмотреть на инструмент mib2c от net- snmp. Он сгенерирует код C агента snmp из MIB. Затем вам нужно только выполнить возвращаемые значения для запросов SNMP. Скелет ответа на запросы SNMP (получить, установить, получить-следующий) автоматически выполняется путем генерации.

person srnka    schedule 26.04.2012
comment
После создания файла MIB я поместил его в папку MIB и добавил его в snmp.conf. После этого сгенерируйте код c с помощью инструмента mib2c. Теперь я задаюсь вопросом, куда поместить этот сгенерированный файл c и файл заголовка. - person Souvik Bhattacharya; 24.06.2013

Можете ли вы взглянуть на Написание модуля MIB руководство.

person JPBlanc    schedule 30.10.2011
comment
кажется, ваша ссылка была изменена: There is currently no text in this page - person Benyamin Jafari; 26.08.2018

У меня был другой подход к этому. Чтобы лучше интегрироваться с моей экосистемой C++ и получить большую гибкость (особенно в масштабе), я:

  • На этапе предварительной сборки результат snmptranslate (то есть дерево MIB) анализировался в набор карт C++ и других контейнеров для использования в коде.
  • Заимствованные транспортные функции Net-SNMP и функции построения PDU.
  • Но обслуживал запросы сам при получении, используя свои карты C++ и данные, уже доступные моему приложению.

Это сделало генерацию уведомлений тривиальной (мне просто понадобились некоторые типы вариантов для создания varbinds, немного построения PDU, а затем я оставил все остальное транспортной функции Net-SNMP), хотя для запросов мне тогда пришлось самому реализовать обход таблицы (и GetNext/GetBulk/Set не являются тривиальными, если вы не избегаете всех таблиц или, по крайней мере, не избегаете таблиц с составным индексом).

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

Вы не говорите, что используете C++, но это дает представление о том, как вы можете выбрать функциональность Net-SNMP, не обязательно покупая всю его экосистему.

Обратите внимание, что я понятия не имею, как SNMPv3 впишется в эту модель; Я благоразумно ушел из компании до того, как это стало моей проблемой. :)

person Lightness Races in Orbit    schedule 05.09.2018