Используя net-snmp, я настроил свой snmp.conf для просмотра MIB поставщиков, и я могу просматривать их через "snmpwalk -Cc -v 2c -c <community> <device> <MIB name>
". Можно ли настроить snmpwalk для автоматического обхода MIB поставщика, когда я прохожу устройство без специального вызова MIB поставщика?
Не похоже. OID по умолчанию для использования в качестве корня обхода жестко запрограммирован в приложении.
Я бы рекомендовал создать небольшой сценарий оболочки-оболочки.
Например.
vendor-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 }