我已经向 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.1.99999 进行 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 的回复,内容是 hello
那么问题是我的 oid 后面的东西是什么?(.2.1.2.4.116.101.115.116 等)
我认为“my”oid 后面的数字有某种含义/逻辑。
在 snmpget 中要使用哪个 oid 才能返回“hello”
任何指示都会有用。
提前谢谢了。
* 在我的原帖后添加了评论 *
好的,我已经计算出添加到我的oid的一些数字。
查看 oid .1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116
最后一部分是 ascii 116.101.115.116 等于“测试”
那么中间的东西是什么
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 行中进行测试并得到结果“hello”
有了这些添加到旧数字中,我怎么知道需要对哪个 oid 进行 snmpget?
同样,您究竟如何创建一个完整的 MIB 文件来匹配这一切?
啊!!!SNMP 过载....
帮助!!!
答案1
这可能是一个老问题,但是现有的文档并没有明确说明为什么 SNMP 会这样运行,而且我已经为这个问题挣扎了一段时间,所以现在开始解释。
这延长stanza 在您指定的 OID 处创建一个新的 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”。