2016-11-28 11 views
0

Я расширяю свой агент snmp с саморазвитым MIB-файлом. То, что я заметил, что когда я прогулкой печатает мои переменные какАдресация OID с net-snmp

MY-MIB::myvariable.0 

Но я специально поместил переменную в на OID, который не заканчивается на 0.

I я использую библиотеку функций Net-SNMP:

netsnmp_create_handler_registration 

, а также

netsnmp_register_read_only_ulong_instance 

для регистрации моих экземпляров.

Кажется, что это происходит только с netsnmp_create_handler_registration. Но когда я укажу reg_oid_len на один короткий, он дважды регистрирует некоторые переменные.

ответ

1

Я вхожу в это, полагая, что ваш вопрос: «Почему добавляется 0 к моему OID?» Чтобы получить доступ к скалярному значению, вы должны добавить .0 к листовому узлу дерева. Если вы пытались обратиться к записи в таблице, вам нужно добавить индекс записи в таблицу. Не используется .0 на скаляр, как правило, вызывают проблемы, если вы не используете идентификатор объекта в качестве аргумента то вроде bulkget или прогулку, то есть

$ snmpget -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1.0 
    SNMPv2-MIB::sysDescr.0 = STRING: things, stuff 

$ snmpget -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1 
    SNMPv2-MIB::sysDescr = No Such Instance currently exists at this OID 

$ snmpwalk -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1 
    SNMPv2-MIB::sysDescr.0 = STRING: things, stuff 

см this нетто-Snmp запись списка рассылки для более явная информация о том, почему скаляры заканчиваются на 0.