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
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 对象,以使其兼容。