Использовать набор SNMP с типом RowStatus

#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)