2015-07-23 3 views
1

Я пытаюсь использовать файлы MIB, поставляемые Cisco, чтобы получить информацию о получении информации, опросив мой коммутатор через SNMP. Это SG300-52P, файлы можно найти here.Как я могу справиться с этими ошибками синтаксического анализа mib-файлов SNMP?

После того, как я поместил файлы в один из nc-файлов по умолчанию в mets-каталогах netsnmp, было несколько ошибок, когда я попытался декодировать одно из описания до его числового значения, чтобы убедиться, что файлы MIB работают. Я думал о решении проблем, но их было слишком много, поэтому я решил просто попробовать и получить простейший из этих файлов для работы с netsnmp. Я поместил только файл SNMPv2-SMI в один из каталогов mib-файлов по умолчанию netsnmp (потому что это произошло в ошибках и является коротким файлом без зависимостей, я добавил содержимое для удобства) и выполнил следующую команду:

snmptranslate -m SNMPv2-SMI zeroDotZero 

Однако это возвращает следующие два erros:

Expected LAST-UPDATED (SMI): At line 35 in /home/buildmanager/.snmp/mibs/SNMPv2-SMI.my 
zeroDotZero: Unknown Object Identifier (Sub-id not found: (top) -> zeroDotZero) 

Через некоторое Googling и угадывание, я пошел вперед и проверил файл с этим интернет-MIB-файл валидатор here, которые возражали, что

Line 34: 
2 `SMI' should start with a lower case letter 
1 syntax error, unexpected MODULE_IDENTITY, expecting OBJECT 

У меня нет идеи о том, что делать с этими сообщениями, и они не раскрывают ничего, что я мог бы понять. Означает ли это, что у моего файла есть ошибки? Это файл, официально предоставленный компанией Cisco, и это очень просто - я не могу представить, что это так. Я убедился, что в моей системе нет помех SNMPv2-SMI, поэтому я уверен, что это файл netsnmp использует. Я подозреваю, что здесь есть что-то, что я не понял о SNMP и этих файлах Mib в целом, поэтому, пожалуйста, укажите мне в правильном направлении или скажите мне, где и как искать ответы. Благодаря!

Содержание SNMPv2-SMI:

-- file: SNMPv2-SMI.my 
-- Changes: 
--  Converted to SMIC format. 
-- [email protected] 

SNMPv2-SMI DEFINITIONS ::= BEGIN 

org    OBJECT IDENTIFIER ::= { iso 3 } 
dod    OBJECT IDENTIFIER ::= { org 6 } 
internet  OBJECT IDENTIFIER ::= { dod 1 } 
directory  OBJECT IDENTIFIER ::= { internet 1 } 
mgmt   OBJECT IDENTIFIER ::= { internet 2 } 
mib-2   OBJECT IDENTIFIER ::= { mgmt 1 } 
transmission OBJECT IDENTIFIER ::= { mib-2 10 } 
experimental OBJECT IDENTIFIER ::= { internet 3 } 
private   OBJECT IDENTIFIER ::= { internet 4 } 
enterprises  OBJECT IDENTIFIER ::= { private 1 } 
security  OBJECT IDENTIFIER ::= { internet 5 } 
snmpV2   OBJECT IDENTIFIER ::= { internet 6 } 

-- transport domains 
snmpDomains  OBJECT IDENTIFIER ::= { snmpV2 1 } 

-- transport proxies 
snmpProxys  OBJECT IDENTIFIER ::= { snmpV2 2 } 

-- module identities 
snmpModules  OBJECT IDENTIFIER ::= { snmpV2 3 } 



-- macros 

SMI MODULE-IDENTITY 
SMI OBJECT-IDENTITY 
SMI OBJECT-TYPE 
SMI NOTIFICATION-TYPE 


-- types 

SMI Counter32 
SMI Counter64 
SMI Gauge32 
SMI Integer32 
SMI IpAddress 
SMI Opaque 
SMI TimeTicks 
SMI BITS 
SMI Unsigned32 


zeroDotZero OBJECT-IDENTITY 
    STATUS  current 
    DESCRIPTION 
      "A value used for null identifiers." 
    ::= { 0 0 } 

END 
+1

NET-SNMP сам поставляется с надлежащими документами MIB, такими как SNMPv2-SMI, поэтому вам не нужно использовать проблемные устройства от Cisco. –

+0

Какая чертовщина. Зачем тогда Cisco поставлять эти файлы? И как я могу определить, какой из их файлов хорош для использования, и который я должен выбросить? В любом случае, с той, что поставляется с NET-SNMP, я получаю ту же ошибку. – fishgehoelz

+0

Некоторые компиляторы автоматически пропускают основополагающие документы MIB, поэтому даже при некорректных сообщениях об ошибках не сообщается. Однако NET-SNMP недопустим. Что такое ошибка после переключения на версию NET-SNMP? Вы не могли грубо сказать, что это не работает. –

ответ

0

Это SNMPv2-SMI файл, который вы цитировали был изменен от оригинала/стандарт использовать специальный синтаксис, специфичный для компилятора МРОТ (эти «SMI» ключевые слова, как «SMI Counter32»), в комментариях в начале:

--  Converted to SMIC format. 

Это сломано синтаксис (больше не действительна SMIv1 или SMIv2) в соответствии с любым другим анализатором/компилятор, следовательно, ошибки. Вы должны только добавить MIB в net-snmp, которые вам нужны, которые еще не предоставлены им (поскольку SNMPv2-SMI должен быть) и должны использовать стандартный синтаксис, а не расширения для компилятора (если они не реализованы в комментариях).

Смежные вопросы