Я обеспокоен тем, что окончательный набор файлов MIB для Ubuntu, похоже, имеет синтаксические ошибки. Я использую неправильные MIB?
Я использовал
sudo apt-get install snmp-mibs-downloader
sudo download-mibs
для установки обширного набора MIB, которые, кажется, работают хорошо, я могу snmpwalk и snmptranslate в значительной степени, как и ожидалось. Однако каждый раз, когда я запускаю эти команды, я вижу несколько ошибок, указывающих на то, что MIB содержат несколько синтаксических ошибок.
Bad operator (INTEGER): At line 73 in /usr/share/mibs/ietf/SNMPv2-PDU
Unlinked OID in IPATM-IPMC-MIB: marsMIB ::= { mib-2 57 }
Undefined identifier: mib-2 near line 18 of /usr/share/mibs/ietf/IPATM-IPMC-MIB
Expected "::=" (RFC5644): At line 493 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
Expected "{" (EOF): At line 651 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
Bad object identifier: At line 651 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
Bad parse of OBJECT-IDENTITY: At line 651 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
Возьмем только один пример:
Unlinked OID in IPATM-IPMC-MIB: marsMIB ::= { mib-2 57 }
ошибка в том, что mib-2 отсутствует в импорте.
Хотя я мог бы попытаться разобраться и исправить эти ошибки, я обеспокоен тем, что использую неправильные MIB. Разве эти ошибки не должны возникать?
В моем snmp.conf есть
mibs + ALL
Я думаю, что это необходимо, если, как некоторые советуют, мы прокомментируем эту строку, мы, похоже, не получим полную набор OID при обходе дерева.
Какую версию Ubuntu вы используете?
Ubuntu, вероятно, получает свой пакет snmp-mibs-downloader
от Debian, а Debian очень строго относится к распространяемости, поэтому snmp-mibs-downloader
получает свои MIB из общедоступных источников, включая фактические RFC и другие документы стандартов в Интернете.
Однако некоторые из этих документов стандартов содержат опечатки и другие ошибки ... и в некоторых случаях для их исправления, очевидно, потребуется выпустить совершенно новую версию соответствующего документа стандартов. . И , что потребует значительного времени и усилий. (Вместо этого могут быть официальные документы об ошибках, но они не обязательно в формате, подходящем для автоматического исправления.)
В Debian текущая версия snmp-mibs-downloader
включает . diff
, который применяется для исправления ряда ошибок в различных MIB на основе RFC, но так было не всегда. Список включенных вами ошибок мне знаком ...
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=584657
https://bugs.debian.org/ cgi-bin / bugreport.cgi? bug = 689483
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=689485
Все это и многое другое было исправлено в версии 1.1 + nmu1 из snmp-mib-downloader
, который был первоначально выпущен в сентябре 2016 года. Если вы используете более старую версию, и нет доступных обновлений для вашей версии Ubuntu, рассмотрите возможность загрузки MIB на какой-нибудь другой компьютер с более новой версией пакета, а затем копирование полученных фиксированных MIB туда, где они вам нужны.
После этого должна остаться только одна ошибка:
Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU
На этой веб-странице есть ссылка на pastebin, содержащий фиксированный файл MIB SNMPv2-PDU. Модификация просто заменяет указанное целочисленное значение константы max-bindings
на его фактическое числовое значение и комментирует определение константы, а также настраивает определение BulkPDU, чтобы оно было полностью автономным. Эти изменения делают анализатор MIB net-snmp счастливым.
В качестве альтернативы вы можете просто удалить файл MIB SNMPv2-PDU, поскольку это просто формальное определение блоков данных протокола SNMPv2, и это определение уже встроено в большинство инструментов SNMP. .