是否可以使用 snmpwalk 自动遍历供应商 MIB?

是否可以使用 snmpwalk 自动遍历供应商 MIB?

使用 net-snmp,我已设置 snmp.conf 以查看供应商 MIB,并且我可以通过“snmpwalk -Cc -v 2c -c <community> <device> <MIB name>”来遍历它们。当我遍历设备时,是否可以让 snmpwalk 自动遍历供应商 MIB,而无需专门调用供应商 MIB?

答案1

看起来不像。用作遍历根的默认 OID 被硬编码到应用程序中。

我建议创建一个小的包装器 shell 脚本。

例如。

供应商-snmpwalk.sh:

#!/bin/sh
/path/to/snmpwalk -Cc -v 2c -c <community> $1 <root vendor OID>

然后你只需调用包装器脚本,而不是snmpwalk直接调用

/path/to/vendor-snmpwalk.sh <device>

作为参考,下面是处理步行开始的根 OID 的相关代码(从net-snmp 代码存储库):

74  oid             objid_mib[] = { 1, 3, 6, 1, 2, 1 };

...

233      * get the initial object and subtree 
234      */
235     if (arg < argc) {
236         /*
237          * specified on the command line 
238          */
239         rootlen = MAX_OID_LEN;
240         if (snmp_parse_oid(argv[arg], root, &rootlen) == NULL) {
241             snmp_perror(argv[arg]);
242             exit(1);
243         }
244     } else {
245         /*
246          * use default value 
247          */
248         memmove(root, objid_mib, sizeof(objid_mib));
249         rootlen = sizeof(objid_mib) / sizeof(oid);
250     }

相关内容