Как создать агент snmp из net-snmp - PullRequest
3 голосов
/ 20 октября 2011

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

Как мне начать?

Ответы [ 3 ]

2 голосов
/ 26 апреля 2012

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

2 голосов
/ 30 октября 2011

У вас есть взгляд на Написание модуля MIB учебник .

0 голосов
/ 05 сентября 2018

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

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

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

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

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

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

...