Я обеспокоен тем, что в окончательном наборе файлов 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 + ВСЕ
Я думаю, что это необходимо, если, как некоторые советуют, мы прокомментируем эту строку, мы не получим полный набор 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.