我正在编写一些企业MIB模块,包括表(列对象)和合规性声明。
我注意到在Linux下使用iReasoning MIB浏览器(版本9.0 build 3532)时,它似乎只显示组中的前15个合规性对象(参见MODULE-COMPLIANCE和GROUP)。
是否有人知道单个组中合规对象的任何限制?例如,在Net-SNMP,NMS,(其他)MIB浏览器等中。在MIB定义中使用多少“安全”?我知道我可以定义多个组来保持对象数量在这个限制内。
此外,组中的对象是表的列。我知道扩展表可用于减少此数字,即使用AUGMENTS子句的扩展表,或来自基表的“重复”INDEX子句。但是,表中的列数是否有任何一般限制?
提前致谢。
答案 0 :(得分:1)
我不能说除了我们之外的任何实现是什么“安全”,但是对于标准规定的组中的对象数量没有这样的限制,只有列出的OBJECT-TYPE或NOTIFICATION-TYPEs在OBJECT-GROUP和NOTFICATION-GROUP(分别)的OBJECTS和NOTIFICATIONS子句中,必须在与组本身相同的模块中定义。如果您的工具仅显示15,那么这听起来像是该特定工具的限制。
同样,标准对表中的列数没有特别限制。但是,您可以间接限制使用多少列作为INDEX,具体取决于类型:SNMP特别将OID限制为最多128个子标识符[RFC-2578§3.5]。对于用作INDEX的对象,不同的SYNTAX有不同的编码规则,导致子标识符附加到列的OID以指示该列对象的特定实例[RFC-2578§7.7]。列的OID加上每个实例子标识符中的子标识符总数将限制为128.
除此之外,您关心的只是针对可能希望一次全行获取表而不是全列的工具的SNMP消息大小(或基本UDP数据包大小限制)的特定于实现的限制。时间。
但是如果你有这么多的列你关心的话,那么无论如何都可能有很大的空间来分析/规范化表格,而不用担心消息大小 - 只需要组织。