Номера SNMPD добавлены в мой OID

Я зарегистрировал свой собственный oid в IANA. Для этого поста мы назовем его 99999.

так в моем файле snmpd.conf (Ubuntu 14)

Я добавил следующую строку

extend .1.3.6.1.4.1.99999.1 test /bin/echo hello

Когда я получаю snmpget с oid .1.3.6.1.4.1.99999.1, ожидая ответа hello, я не нашел.

Поэтому решил сделать snmpwalk от.1.3.6.1.4.1.99999, и я получил следующее

.1.3.6.1.4.1.99999.1.1.0  =  1
.1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116   =  /bin/echo
.1.3.6.1.4.1.99999.1.2.1.3.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.2.1.4.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.2.1.5.4.116.101.115.116   =  5
.1.3.6.1.4.1.99999.1.2.1.6.4.116.101.115.116   =  1
.1.3.6.1.4.1.99999.1.2.1.7.4.116.101.115.116   =  1
.1.3.6.1.4.1.99999.1.2.1.20.4.116.101.115.116  =  4
.1.3.6.1.4.1.99999.1.2.1.21.4.116.101.115.116  =  1
.1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.3.1.2.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.3.1.3.4.116.101.115.116   =  1
.1.3.6.1.4.1.99999.1.3.1.4.4.116.101.115.116   =  0
.1.3.6.1.4.1.99999.1.4.1.2.4.116.101.115.116   =  hello

Хорошо, это не то, что я ожидал. На моем старом сервере Ubuntu 8 я получил бы ответ от oid.1.3.6.1.4.1.99999.1 как привет

Итак, вопрос в том, что за вещи после моего oid? (.2.1.2.4.116.101.115.116 и т. Д.)

Я предполагаю, что после чисел "мой" есть какое-то значение / логика для чисел.

который является правильным oid для использования в snmpget, чтобы вернуть "привет"

Любые указатели были бы полезны.

Спасибо заранее.

* Добавлены комментарии после моего исходного поста *

Хорошо, я определил некоторые числа, добавленные к моему oid.

Глядя на oid.1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116

Последний раздел ascii 116.101.115.116 равно "тест"

ну и что посередине

2.1.2.4
2.1.3.4
2.1.4.4
2.1.5.4
and so on...

Я все еще не понимаю, почему все это добавляется в мой OID.

На моем старом Ubuntu 8 SNMP я мог просто сделать snmpget для номера oid (.1.3.6.1.4.1.99999.1). Я выполнил тест в строке exec snmpd.conf и получил результат 'hello' обратно

Со всеми этими добавленными числами к старому, как я узнаю, какой oid мне нужен, чтобы пойти в snmpget?

Точно так же, как вы могли бы создать полноценный MIB-файл, чтобы соответствовать всему этому?

ARGH!!! Перегрузка SNMP....

Помогите!!!

1 ответ

Это может быть старый вопрос, но документация там не очень ожидающая того, почему SNMP работает так, как есть, и я некоторое время боролся с этим беспорядком, так что дальше.

Раздел расширения создает новую структуру MIB с указанным вами идентификатором OID и добавляет ряд значений из NET-SNMP-EXTEND-MIB, а затем добавляет дополнительные значения в зависимости от имени, указанного в директиве расширения.

В вашем примере базовый OID .1.3.6.1.4.1.99999.1, SNMPd дублирует структуру MIB из NET-SNMP-EXTEND-MIB и добавляет ее к этому OID. Я воспроизвел базовое дерево MIB ниже, полный MIB можно найти по адресу http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-EXTEND-MIB.txt

.1: nsExtendNumEntries
.2: nsExtendConfigTable
  .1: nsExtendConfigEntry
    .1: nsExtendToken
    .2: nsExtendCommand
    .3: nsExtendArgs
    .4: nsExtendInput
    .5: nsExtendCacheTime
    .6: nsExtendExecType
    .7: nsExtendRunType
    .20: nsExtendStorage
    .21: nsExtendStatus
.3: nsExtendOutput1Table
  .1: nsExtendOutput1Entry
    .1: nsExtendOutput1Line
    .2: nsExtendOutputFull
    .3: nsExtendOutNumLines
    .4: nsExtendResult
.4: nsExtendOutput2Table
  .1: nsExtendOutput2Entry
    .2: nsExtendOutput2Entry 

Длина имени символа добавляется, затем имя преобразуется в ASCII и добавляется в виде десятичных значений.

Таким образом, разбивка ответа OID .1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = hello как следует:

.1.3.6.1.4.1.99999.1 : base OID

  .3                 : nsExtendOutput1Table
    .1               : nsExtendOutput1Entry
      .1             : nsExtendOutput1Line
        .4           : Length of name ("test" in this case)
          .116       : ASCII t
            .101     : ASCII e
              .115   : ASCII s
                .116 : ASCII t

И поскольку этот OID является значением nsExtendOutput1Line, которое возвращает первую строку вывода команды, значением является "привет".

Другие вопросы по тегам