SNMPD号码添加到我的OID

我已经与IANA注册了自己的oid。 对于这篇文章,我们将其称为99999。

所以在我的snmpd.conf文件(Ubuntu 14)

我添加了以下行

extend .1.3.6.1.4.1.99999.1 test /bin/echo hello 

当我用oid .1.3.6.1.4.1.99999.1得到一个snmpget的时候,期待hello的回复,我找不到。

于是决定从.1.3.6.1.4.19999开始做一个snmpwalk,我得到了以下结果

 .1.3.6.1.4.1.99999.1.1.0 = 1 .1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116 = /bin/echo .1.3.6.1.4.1.99999.1.2.1.3.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.2.1.4.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.2.1.5.4.116.101.115.116 = 5 .1.3.6.1.4.1.99999.1.2.1.6.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.2.1.7.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.2.1.20.4.116.101.115.116 = 4 .1.3.6.1.4.1.99999.1.2.1.21.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.3.1.2.4.116.101.115.116 = hello .1.3.6.1.4.1.99999.1.3.1.3.4.116.101.115.116 = 1 .1.3.6.1.4.1.99999.1.3.1.4.4.116.101.115.116 = 0 .1.3.6.1.4.1.99999.1.4.1.2.4.116.101.115.116 = hello 

好吧,这不是我所期待的。 在我的旧的Ubuntu 8服务器上,我会得到一个来自oid .1.3.6.1.4.1.99999.1的回复

所以问题是我的oid之后是什么东西? (.2.1.2.4.116.101.115.116等)

我假设“我的”oid后面的数字有某种意义/逻辑。

这是在snmpget中使用的正确的oid来获取“hello”

任何指针都是有用的。

提前谢谢了。

*在我原来的post后添加评论*

好吧,我已经制定了一些添加到我的oid号码。

查看oid .1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116

最后一部分是ascii 116.101.115.116等于“testing”

那么中间是什么东西?

 2.1.2.4 2.1.3.4 2.1.4.4 2.1.5.4 and so on... 

我仍然困惑,为什么这一切都被添加到我的OID摆在首位。

在我的旧版Ubuntu 8 SNMP上,我可以简单地在oid号码(.1.3.6.1.4.1.99999.1)上做一个snmpget。我在snmpd.conf exec行中进行了testing,并得到结果'hello'

随着所有这些添加到旧的数字我怎么知道什么oid我需要去snmpget?

同样地,如何创build一个完整的MIB文件来匹配它呢?

哎呀! SNMP过载….

帮帮我!!!

这可能是一个古老的问题,但是那里的文档并不是非常接近,为什么SNMP的行为是这样的,我一直在这个混乱一阵子挣扎,所以这里。

扩展段在您指定的OID处创build新的MIB结构,并从NET-SNMP-EXTEND-MIB附加一些值,然后根据extend指令中指定的名称附加更多值。

在你的例子中,基础的OID是.1.3.6.1.4.1.99999.1 。 SNMPd复制来自NET-SNMP-EXTEND-MIB的MIB结构并将其附加到该OID。 我已经复制下面的基本MIB树,完整的MIB可以在http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-EXTEND-MIB.txt

 .1: nsExtendNumEntries .2: nsExtendConfigTable .1: nsExtendConfigEntry .1: nsExtendToken .2: nsExtendCommand .3: nsExtendArgs .4: nsExtendInput .5: nsExtendCacheTime .6: nsExtendExecType .7: nsExtendRunType .20: nsExtendStorage .21: nsExtendStatus .3: nsExtendOutput1Table .1: nsExtendOutput1Entry .1: nsExtendOutput1Line .2: nsExtendOutputFull .3: nsExtendOutNumLines .4: nsExtendResult .4: nsExtendOutput2Table .1: nsExtendOutput2Entry .2: nsExtendOutput2Entry 

名称的字符长度被附加,然后名称被转换为ASCII并附加为十进制值。

所以OID响应的细分.1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = hello如下:

 .1.3.6.1.4.1.99999.1 : base OID .3 : nsExtendOutput1Table .1 : nsExtendOutput1Entry .1 : nsExtendOutput1Line .4 : Length of name ("test" in this case) .116 : ASCII t .101 : ASCII e .115 : ASCII s .116 : ASCII t 

并且由于这个OID是nsExtendOutput1Line值,它返回命令输出的第一行,值是“hello”。