将额外的OID根添加到"裸"上的默认SNMP代理输出snmpwalk命令

时间:2014-11-04 14:05:52

标签: snmp net-snmp

在Brocade Vyatta 5600上执行以下命令时,只能从根OID .1.3.6.1.2.

获取OID

snmpwalk -c XXXXXXX -v 2c vyatta01.foo.com

但是,供应商特定的OID仅在根OID .1.3.6.1.4.中可用。我需要在执行“裸”snmpwalk时获取这些供应商OID,如上所示。

我遇到无法更改用于检索数据的命令的情况,因此我不能简单地将.1.3.6.1.4添加到snmpwalk命令的末尾。我也无法更改Vyatta路由器上运行的SNMP代理(Net-SNMP)。

我考虑过使用SNMP代理扩展或传递指令,但我不确定如何配置它。实质上,我希望能够执行snmpwalk并让它从.1.3.6.1.2.1.3.6.1.4根返回OID。我已经使用不推荐使用的“exec”指令指向任意OID来检索特定信息,但在这种情况下,我可以指定一个根OID。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

管理员(Netsnmp的snmpwalk命令)而不是代理是指定要走的OID的人。我认为代理返回的不同OID不是经理所要求的,因此任何更改都需要在经理方面进行。

snmpwalk手册页说:

snmpwalk [APPLICATION OPTIONS] [COMMON OPTIONS] [OID]  

If no OID argument is present, snmpwalk will search the subtree rooted at 
SNMPv2-SMI::mib-2 (including any MIB object values from other MIB modules, 
that are defined as lying within this subtree).  

答案 1 :(得分:0)

代理没有按照字典顺序正确安排其OID,这使得管理员无法从根目录中走出它并仍然可以到达整个MIB树。

我已经看到这种情况发生在一些供应商和#39; Windows SNMP代理的扩展,但显然其他人也可能犯同样的错误。该错误牢牢存在于代理中,需要在那里修复,因此请向博科提交错误报告。但是,可以在管理器端实现一种解决方法,方法是对每个子树执行单独的snmpwalk.1.3.6.1.2散步,.1.3.6.1.4散步。

听起来非常不幸的是,网络管理框架会依赖snmpwalk命令来查找根OID。适当的NMS可以灵活地决定在代理上行走哪些OID。

也许您可以在系统上为snmpwalk命令添加别名?编写一个检查代理地址的包装器脚本,如果代理是Brocade,则包装器可以执行两个snmpwalk命令并连接它们的输出。这是一个相当丑陋的黑客,但这是我能想到的全部。