SNMP中OBJECT-GROUP的目的和MODULE-COMPLIANCE与OBJECT-TYPES相关的作用是什么?

9

我正在实现自己的MIB,并使用smilint检查来验证MIB。我收到了很多“节点xxx必须包含在至少一个符合性组中”的警告。

我很难解释OBJECT-GROUP的目的以及它在MIB文件中的作用。它是否提供了一种机制,将位于同一OID子树中不同OID上的相关管理对象类型分组?如果没有它,我能否设计出有用的MIB?

我也很难理解与对象相关的MODULE-COMPLIANCE宏的目的。当我扩展创建的MIB时,是否适用?

类似的问题已经在SO上提出这里,但我仍然觉得不清楚,因为OBJECT-GROUP在一个OID下定义,在完全不同的树下引用了OBJECT-TYPEs。

1个回答

10
OBJECT-GROUP宏用于将位于不同OID的概念相关的管理对象类型进行分组,正如您所述。但是,它们不必来自同一子树。 OBJECT-GROUP宏并不是严格要求的,从smilint的警告级别4可以证明这一点。
您提供的答案确实提到了其中的一些内容,但希望这个回答对您更有用。
至于这些东西的目的,我会尝试解释一下。这些OBJECT-GROUP和MODULE-COMPLIANCE宏是为那些将实现您正在创建的MIB的人而设计的,而不是与MIB本身有关的任何事情。 OBJECT-GROUPs提供有关OID的逻辑关系的想法,而MODULE-COMPLIANCE语句显示在什么情况下哪些OID是强制性的。即从RFC2580

The compliance statement contained in the (hypothetical) XYZv2-MIB might be:

    xyzMIBCompliance MODULE-COMPLIANCE

    DESCRIPTION
           "The compliance statement for XYZv2 entities which
           implement the XYZv2 MIB."
      MODULE  -- compliance to the containing MIB module
      MANDATORY-GROUPS { xyzSystemGroup,
                         xyzStatsGroup, xyzTrapGroup,
                         xyzSetGroup,
                         xyzBasicNotificationsGroup }
      GROUP   xyzV1Group
      DESCRIPTION
          "The xyzV1 group is mandatory only for those
           XYZv2 entities which also implement XYZv1."
::= { xyzMIBCompliances 1 }

根据这个调用,要声称与名为合规性声明的内容保持一致。
   { xyzMIBCompliances 1 }
一个系统必须实现 XYZv2-MIB 的 xyzSystemGroup、xyzStatsGroup、xyzTrapGroup 和 xyzSetGroup 对象符合性组,以及 xyzBasicNotificationsGroup 通知组。此外,如果 XYZv2 实体也实现了 XYZv1,则还必须支持 XYZv1Group 组,如果要声称符合性的话。
因此,如其他问题所述,如果您决定创建 OBJECT-GROUP 宏,那么您应该跟进并创建相应的 MODULE-COMPLIANCE 对象,以使其兼容。

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