关于OBJECT-TYPES的OBJECT-GROUP,MODULE-COMPLIANCE的SNMP目的

gav*_*ant 6 snmp mib net-snmp

我正在实现自己的MIB,并使用smilint检查以验证MIB.我收到了很多node xxx must be contained in at least one conformance group警告.

我无法破译OBJECT-GROUP的目的以及它在MIB文件中的位置.它是否提供了一种机制,用于对位于同一OID子树中的各种OID的相关托管OBJECT-TYP进行分组?是否真的需要,因为我可以设计一个有用的MIB吗?

我也在努力理解与对象相关的MODULE-COMPLIANCE宏的目的.这是否适用于扩展我正在创建的MIB?

类似的问题已经被问过SO 这里,我发现窗台不清楚,因为对象的集团是一个完全不同的树下下一个OID定义和引用的对象类型.谢谢

L.M*_*lin 7

正如您所述,OBJECT-GROUP宏用于对位于各种OID的概念上相关的托管OBJECT-TYP组进行分组.但是,它们不必来自同一个子树.严格地说,OBJECT-GROUP宏不是必需的,因为它只是来自smilint的4级警告将证明.

你联系的答案确实提到了一些,但希望这对你来说是一个更有用的答案.

至于这些事情的目的,我会尝试解释.这些OBJECT-GROUP和MODULE-COMPLIANCE宏适用于那些将实现您正在创建的MIB的宏,而不是与MIB本身有关的任何内容.OBJECT-GROUP给出了关于OID的逻辑关系的想法,MODULE-COMPLIANCE语句显示在什么情况下哪些OID是强制的.即来自RFC2580:

(假设的)XYZv2-MIB中包含的合规声明可能是:

    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 }
Run Code Online (Sandbox Code Playgroud)

根据此调用,声明与命名的合规性声明对齐

   { xyzMIBCompliances 1 }
Run Code Online (Sandbox Code Playgroud)

系统必须实现XYZv2-MIB的xyzSystemGroup,xyzStatsGroup,xyzTrapGroup和xyzSetGroup对象一致性组,以及xyzBasicNotificationsGroup通知组.此外,如果XYZv2实体也实现了XYZv1,那么如果要声明合规性,它还必须支持XYZv1Group组.

所以,正如另一个问题所述,如果您决定创建OBJECT-GROUP宏,那么您可能应该继续并创建支持的MODULE-COMPLIANCE对象,因为您已经遇到了麻烦.