MIB 限制(表中的列和合规性对象)



我正在编写一些企业MIB模块,包括表(列式对象)和合规性声明。

我注意到,在 Linux 下使用 iReasoning MIB 浏览器(版本 9.0 build 3532)时,它似乎只显示组中的前 15 个合规性对象(请参阅模块合规性和组)。

有谁知道单个组中合规性对象的任何限制?例如,在Net-SNMP,NMS,(其他)MIB浏览器等中。在MIB定义中使用多少个是"安全"的?我知道我可以定义多个组以将对象数量保持在此限制内。

此外,组中的对象是表的列。我知道扩展表可用于减少这个数字,即使用 AUGMENTS 子句的扩展表,或基表中的"重复"INDEX 子句。但是,表中的列数是否有任何常规限制?

提前谢谢。

除了我们的实现之外,我不能谈论什么是"安全的",但是标准对组中的对象数量没有这样的限制,只是对象组和通知组的对象和通知子句中列出的对象类型或通知类型(分别)必须在与组本身相同的模块中定义。如果您的工具仅显示 15,那么这听起来像是该特定工具的限制。

同样,标准也没有专门针对表中列数的限制。但是,根据类型,您间接限制了用作索引的列数:SNMP 明确将 OID 限制为最多 128 个子标识符 [RFC-2578 §3.5]。对于用作索引的对象,不同的语法有不同的编码规则,这些规则会导致子标识符附加到列的 OID 中,以指示该列对象的特定实例 [RFC-2578 §7.7]。列的 OID 中的子标识符总数加上每个实例子标识符将限制为 128。

除此之外,您关心的只是特定于 SNMP 消息大小(或基本 UDP 数据包大小限制)的实现限制,这些工具可能希望一次获取整行表,而不是一次获取整列表。

但是,如果您关心的列太多,那么无论如何都可能有很大的空间来分解/规范化表,而不考虑消息大小 - 只需与组织有关。

最新更新