如何从net-snmp创建snmp代理

时间:2011-10-20 10:23:05

标签: snmp net-snmp

我想使用net-snmp为PowerPC板实现SNMP-agent。 以前它是使用SMASH实现的。 SMASH有一个解析器 它可以读取MIB并生成C代码(空白函数实现)

我如何开始?

3 个答案:

答案 0 :(得分:2)

您是否关注Writing a MIB module tutorial

答案 1 :(得分:2)

尝试从net-snmp查看mib2c工具。它将从MIB生成snmp代理C代码。然后,您必须只满足SNMP请求的返回值。响应SNMP请求(get,set,get-next)的框架通过生成来自动完成。

答案 2 :(得分:0)

我对此采取了不同的方法。为了更好地与我的C ++生态系统集成并获得更大的灵活性(特别是在规模上),我:

  • 进行了预构建步骤,将snmptranslate(即MIB树)的结果解析为一堆C ++映射和其他容器,供代码使用
  • 借用Net-SNMP的传输和PDU构建功能
  • 但是服务提供商会在接收到请求后使用我的C ++映射和我的应用程序已经可用的数据

这使得通知的生成变得微不足道(我只需要一些变体类型来生成varbinds,一点PDU的构造,然后将其余的留给Net-SNMP的传输功能),尽管如此,我确实必须自己实现表遍历的请求(除非您避免所有表,或者至少避免使用复合索引表,否则 GetNext / GetBulk / Set 并非无关紧要。

结果是一个快速,健壮和可扩展的SNMP代理,其代理代码易于维护和扩展。

您并不是说您正在使用C ++,但这确实使您了解了如何挑选Net-SNMP功能而不必购买整个生态系统的想法。

请注意,我不知道SNMPv3如何适合该模型。在公司成为我的问题之前,我巧妙地离开了公司。 :)