SimpleUser писал(а):Во всей группе udp, впрочем, тоже все oid группы почему-то не инициализированы. То же касается и других групп дерева snmp, а группа at(1.3.6.1.2.1.3), в oid которой(mib atNetAddress) я хотел найти ip-адрес сетевого интерфейса, вообще больше не существует:
nummibs.png
Неужели кроме группы system никакие oid не установлены? А я могу их установить программно и какой-либо утилитой?
И ещё ... забыл.
Вовсе не все (или далеко не все) OID, которые вы вычитаете в каких-то MIB-файлах - существуют реально
в теле программы агента (snmpd в простейшем случае). Т.е. они просто не существуют, не поддерживаются.
MIB-файлы + утилита snmptranslate имеют дело только с
описаниями OID. Утилита snmptranslate всего лишь
читает MIB-файлы - она ничего
не знает вообще о реально существующих агентах SNMP, вы можете её запускать в отсутствие демона snmpd - она так же тупо прочитает вам MIB-файлы, подсуньте ей свои фиктивные MIB-файлы - она прочитает их,
подмените в этих файлах международно определённые OID (чего делать нельзя!) - она тупо прочитает и это. Это делается
только для удобства чтения OID человеком.
Утилиты snmpget, snmwalk, snmpset (ну и snmtrap и snmpinfo) -
напротив, посылают запрос к реально работающему SNMP-агенту, они не знают ни о каких MIB-переменных, работают только с числовыми OID. Если SNMP-агент не запущен (служба snmpd не стартовала), то они получат ошибку по тайм-ауту:
Код: Выделить всё
bash-4.2$ snmpget -v2c localhost -cpublic .1.3.6.1.2.1.7.1.0
Timeout: No Response from localhost.
Но если SNMP-агент
не обслуживает OID (он его не знает, в его теле нет кода обработки для этого OID), то он и возвращает этот ответ:
Код: Выделить всё
bash-4.2$ snmpget -v2c localhost -cpublic .1.3.6.1.2.1.7.1.0
UDP-MIB::udpInDatagrams.0 = No Such Object available on this agent at this OID
SimpleUser писал(а):А я могу их установить программно и какой-либо утилитой?
Нет, конечно!
Как вы могли бы присвоить значение переменной в программе, в которой такой переменной
не существует?
Существуют только те OID, которые
скомпилированы в код текущего выполняющегося SNMP-агента (иначе они просто
не размещены в физической памяти ... как можно изменить то, чего нет в памяти?).
Хотите другие OID - перекомпилируйте агента.