代码之家  ›  专栏  ›  技术社区  ›  bstpierre Edgar Aviles

NET SNMP:强制表的XXEntry值为2而不是1

  •  2
  • bstpierre Edgar Aviles  · 技术社区  · 14 年前

    使用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注册该表时,只需给它一个类似“…,1,8”的OID(即最多为foobarable,但不包括条目)。NET SNMP将.1隐式附加到表OID,然后附加到列、索引等。

    是否有一种半支持的方法强制该入口值为2?(也就是说,不需要将传入处理程序的对象中的位进行黑客攻击。)

    1 回复  |  直到 12 年前
        1
  •  2
  •   Wes Hardaker    14 年前

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

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

    但是mib2c给你的任何东西都不能帮你解决这个问题。