我们正在使用Net-SNMP实现对Entity MIB模块(RFC 6933)和相关MIB模块的支持,作为SNMP代理(snmpd)的一部分。
一些数据在MIB表和MIB模块之间共享,例如表索引和"包含在" entPhysicalTable和entPhysicalContainsTable之间的对象,以及entPhysicalTable和entPhySensorTable之间的索引。
请注意,与实体MIB模块相关的MIB模块包括实体传感器和实体电池MIB模块(分别为RFC 3433和7577)。
是否有关于如何使用Net-SNMP在表之间启用此类数据共享的指针或最佳实践?
Net-SNMP是否提供了内置支持来实现此目的,例如用于构造这些MIB表的相关模板源文件的任何特定mib2c选项?
特别是索引等数据需要是动态的,因为在SNMP代理运行时可以添加或删除诸如现场可替换单元(FRU)之类的实体。
我注意到数据(索引)在表之间共享,例如ifTable和ifXtable,作为标准Net-SNMP实现的一部分提供。
提前感谢您的帮助。
答案 0 :(得分:0)
当您运行mib2c并指定一个表,并且未指定配置文件时,它会询问您有关要生成的代码样式的问题。一般来说,选择归结为你是否希望net-snmp“拥有”底层数据存储(你更新为值更改),或者你是否将自己的数据结构用于底层数据存储(你将实现钩子)到那个net-snmp调用与你的数据交互)。在前一种情况下,net-snmp会处理这个“共享数据”,因为它拥有它。在后一种情况下,您如何处理它取决于您组织数据结构的方式。