如何从net-snmp创建SNMP代理

4

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

我该如何入手?

3个回答

2

似乎您的链接已更改:“此页面当前没有文本”。 - Benyamin Jafari

2
尝试查看来自net-snmp的mib2c工具。它将从MIB生成SNMP代理C代码。然后,您只需填写SNMP请求的返回值即可。响应SNMP请求(获取,设置,获取下一个)的骨架通过生成自动完成。

创建MIB文件后,我将其放入MIB文件夹中,并将其添加到snmp.conf中。然后使用mib2c工具生成C代码。现在我的问题是要将生成的C文件和头文件放在哪里。 - Souvik Bhattacharya

0

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

  • 使用预构建步骤将snmptranslate(即MIB树)的结果解析为一堆C++映射和其他容器,以供代码使用
  • 借用了Net-SNMP的传输和PDU构建函数
  • 但是,在接收到请求后,我自己处理服务请求,使用我的C++映射和应用程序中已有的数据

这使得通知生成变得轻松(我只需要一些变体类型来生成varbinds,一些PDU构造,然后将其余部分留给Net-SNMP的传输功能),虽然对于请求,我确实必须自己实现表行走(并且GetNext/GetBulk/Set除非您避免所有表格,否则不是微不足道的,或者至少避免复合索引表)。

结果是一个快速、强大且可扩展的SNMP代理,具有表达力强的代码,易于维护和扩展。

您没有说您正在使用C++,但这确实给出了一个想法,即如何挑选Net-SNMP功能,而不必完全购买其整个生态系统。

请注意,我不知道SNMPv3如何适应这个模型;聪明地在这成为我的问题之前,我已经离开了公司。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接