2

使用 net-snmp 生成的表代码mib2c -c mib2c.iterate.conf fooBarTable,然后被大量黑客攻击。

不幸的是,该表是用 2 而不是正常的 1 定义的。(我没有这样做,我试图使它适合现有情况。) MIB 看起来像这样:

fooBarTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF FooBarEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION    "blah"
    ::= { fooMIBObjects 8 }

fooBarEntry OBJECT-TYPE
    SYNTAX          FooBarEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Stuff."
    INDEX { ifIndex }
    ::= { fooBarTable 2 }

当您使用 net-snmp 注册表时,您只需给它一个 OID,如“...,1,8”(即最多 fooBarTable,但不包括条目)。Net-snmp 将 .1 隐式附加到表 OID,然后是列、索引等。

是否有一种半支持的方法可以将该条目值强制为 2?(即不求助于从传递给处理程序的对象中窃取位。)

4

1 回答 1

2

不,抱歉:没有支持的方式来做到这一点。部分原因是您所关注的 MIB 在 SMIv2 下是不合法的。

要实现它,您要么需要更改 agent/helper 目录中的多个位置(从 table.c 的第 328 行附近开始,可能还有其他地方),要么完全从头开始实现一个表,而不使用辅助模块。

但是 mib2c 给您的任何东西都不会为您解决这个问题。

于 2010-10-19T20:26:59.427 回答