#snmp
#snmp
Вопрос:
Я не понимаю, как работает тип RowStatus и какое значение мне нужно передать, чтобы иметь возможность устанавливать значения в других столбцах строки. Из исследования кажется, что я либо выполняю неправильный порядок операций, либо не передаю правильные значения вместе со значением RowStatus.
Это устройство использует WebGUI, и я использую SNMP для написания сценария некоторых массовых изменений конфигурации. В графическом интерфейсе вы устанавливаете флажок, чтобы включить строку, прежде чем ячейки в строке станут активными, позволяя вам вводить информацию.
Вот что показывает статус строки до ее включения:
snmpwalk -v 2c -c testcomm -m MY-MIB 172.28.183.150 MY-MIB::mibRowStatus.101.1 MY-MIB::mibRowStatus.101.1 = INTEGER: notInService(2)
Пытаюсь ли я использовать только значение createAndWait или createAndGo, чтобы попытаться просто включить строку, я получаю неправильный тип. Вот как я пытался отправлять значения для каждой строки вместе со значением createAndWait . То же самое произошло при попытке createAndGo. Правильно ли я выполняю несколько OID / значений?
snmpset -v 2c -c testcomm -m MY-MIB 172.28.183.150 MY-MIB::mibRowStatus.101.1 = createAndWait iso.3.6.1.4.1.xx.101.1 = 1 iso.3.6.1.4.1.xx.101.1 = "test" iso.3.6.1.4.1.xx.101.1 = 15 iso.3.6.1.4.1.xx.101.1 = md6 iso.3.6.1.4.1.xx.101.1 = 6 iso.3.6.1.4.1.xx.101.1 = 4 iso.3.6.1.4.1.xx.101.1 = 7
Error in packet.
Reason: wrongType (The set datatype does not match the data type the agent expects)
Failed object: MY-MIB::mibRowStatus.101.1
Это сработает, если я уничтожу строку.
snmpset -v 2c -c testcomm -m MY-MIB 172.28.183.150 MY-MIB::mibRowStatus.101.1 = destroy
MY-MIB::mibRowStatus.101.1 = INTEGER: destroy(6)
Я могу включить строку через графический интерфейс, а SNMP устанавливает остальные значения, но это противоречит цели. Он возвращает active(1), если я делаю все через графический интерфейс и выполняю snmpwalk.
Вот что говорит поставщик MIB:
mibRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The status of the row.
The writable columns in a row can not be changed if the row
is active. All columns must have a valid value before a row
can be activated.
"
::= { mibEntry 22 }
Ответ №1:
В итоге я понял это. Все значения должны быть установлены перед отправкой RowStatus.
Например, я отправил только значения:
snmpset -v 2c -c testcomm -m MY-MIB 172.28.183.150 iso.3.6.1.4.1.xx.101.1 = 1 iso.3.6.1.4.1.xx.101.1 = "test" iso.3.6.1.4.1.xx.101.1 = 15 iso.3.6.1.4.1.xx.101.1 = md6 iso.3.6.1.4.1.xx.101.1 = 6 iso.3.6.1.4.1.xx.101.1 = 4 iso.3.6.1.4.1.xx.101.1 = 7
Он устанавливает их:
MY-MIB::mibCciEnabled.101.1 = INTEGER: true(1)
MY-MIB::mibMepMaName.101.1 = STRING: test
MY-MIB::mibMepId.101.1 = INTEGER: 15
MY-MIB::mibMepMdName.101.1 = STRING: md6
MY-MIB::mibMepLevel.101.1 = INTEGER: 6
MY-MIB::mibMepCcmInterval.101.1 = INTEGER: interval1s(4)
MY-MIB::mibMepCcmLtmPriority.101.1 = Gauge32: 7
Затем должен быть установлен RowStatus:
snmpset -v 2c -c testcomm -m OVERTURE-SOAM-MIB 172.28.183.150 MY-MIB::mibRowStatus.101.1 = createAndGo
MY-MIB::mibRowStatus.101.1 = INTEGER: createAndGo(4)