SNMP MIBs и как их готовить

в 9:11, , рубрики: MiB, snmp, Сетевое оборудование, Сетевые технологии, метки: ,

Доброго времени суток, читатель.

Предистория

Я 5 лет работаю в компании, предоставляющей широкополосный доступ к всемирной паутине. Занимаюсь непосредственным управлением оборудованием, а также планированием и мониторингом сети. На момент моего прихода в сети было немногим больше 100 единиц управляемого оборудования вендоров Cisco и D-Link. Рисовали карту сети по старинке в visio, ip-адреса вели там же, но мой руководитель в то время начал писать некоторый софт для инвентаризации оборудования — началось все с учета выданных ip-адресов. Учитывая рост сети (а точнее модернизация в лице замены глупых «мыльниц» на «управляки»), мы и решили, что обычного Cacti нам не хватает. Стандартные счетчики по SNMP мы собирали сразу, но найти что-то более нужно и интересное было трудно. Неоднократные попытки овладеть другими опциями не приводили к конечному результату, но не так давно удалось «обуздать» MIB-файлы для коммутаторов D-Link и считаю, что данная статья ускорит процесс изучения коммутаторов и протокола SNMP. Это позволит быстрее и качественнее управлять сетью.
image

Устанановка MIBs

Стандартные

MIBs обычно распространяются в виде архива с пачкой файлов. Многие из них, составленные в iana и ietf, повторяются в каждом архиве, но передаются для совместимости.
Для работы в системе по умолчанию (конкретно для Debian) они должны лежать примерно в /usr/share/mibs
Для начала установим стандартные mibs в систему.

$ sudo apt-get install snmp-mibs-downloader

В файле конфигурации /etc/snmp/snmp.conf включить нужные. Пример:

% cat /etc/snmp/snmp.conf
#
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loaging them by commenting out the following line.
mibs :BRIDGE-MIB:Q-BRIDGE-MIB:IP-MIB:IF-MIB
#mibs :ALL

mibs :ALL включает все, что не совсем хорошо. Рекомендую для каждого оборудования иметь папку с mib'ами, т.к. они могут отличать из одной прошивки к другой.

Частный случай

По примеру коммутатора D-Link DGS-3120-24SC мы качаем архив.
ftp.dlink.ru/pub/Switch/DGS-3120_Series/SNMP/DGS-3120_MIB_of_FW_v2.50.015.rar

После распаковки структура следующая:

$ tree -d
.
├── proprietaryMIB
│ ├── Dlink-common-mgmt
│ └── Dlink-mgmt
└── standardMIB

Программное обеспечение

D-View

image
Первая попытка использовать эти MIBs были сделана в утилите D-View от производителя коммутаторов. В составе пакета есть MIB Browser и MIB Compiler. После некоторых попыток мне удалось увидеть дерево для модуля DGS3120-24SC-L2MGMT-MIB, но там не было поиска по oid и при загрузке модуля нужно указывать вручную несколько дополнительных MIB-файлов, что замедляло работу. Все уложняется если на руках только числовой oid и ты не знаешь в каком из модулей MIB он может быть — придется загружать все MIB из папки по одиночке и проверять каждый. На этом изучение программы D-View я закончил — мне она не подходит.

Net-SNMP

Возвращаюсь к тому, с чего начинал пост:
Мы скачали архив с MIBs и будем использовать утилиту snmptranslate из пакета Net-SNMP. Для удобства складываем все mibs в одну директорию, но это все равно не хватает:

% snmptranslate -M ./ -m DGS3120-24SC-L2MGMT-MIB -Ln 1.3.6.1.4.1.171.11.117.1.3.2.100.1.2.0.1
iso.3.6.1.4.1.171.11.117.1.3.2.100.1.2.0.1

Чтобы долго не мучаться скопируем недостающие файлы из mibs коммутатора des-3200 с опцией не перезаписывать существующие. И здесь мы уже получаем положительный результат:

% snmptranslate -M ./ -m DGS3120-24SC-L2MGMT-MIB -Ln 1.3.6.1.4.1.171.11.117.1.3.2.100.1.2.0.1
DGS3120-24SC-L2MGMT-MIB::swL2macNotification

О флагах:

  • -M Указывает на директорию, где искать mibs (можно перечислять, разделяя символом ":")
    Таким образом можно было не складывать все MIBS в одну директорию, но тогда нужно с флагом -m указать все каталоги из первоначального архива.
  • -m Указывает какой модуль активируем (можно перечислять, разделяя символом ":")
    Без указания модуля будут использоваться те, которые прописаны в /etc/snmp/snmp.conf
    % snmptranslate -m ./ -Ln 1.3.6.1.4.1.171.11.117.1.3.2.100.1.2.0.1
    RFC1155-SMI::enterprises.171.11.117.1.3.2.100.1.2.0.1
  • -Ln Избавляет нас от бесконечной портянки ошибок в иерархии mibs. Точнее -Ln отключает errors в stdout

Теперь, когда трансляция работает, можно вкусить всю прелесть иерархии OIDs. Для этого есть флаги:

-Td Print full details of the specified OID.
-Tp Print a graphical tree, rooted at the specified OID.
-Ta Dump the loaded MIB in a trivial form.
-Tl Dump a labeled form of all objects.
-To Dump a numeric form of all objects.
-Ts Dump a symbolic form of all objects.
-Tt Dump a tree form of the loaded MIBs (mostly useful for debugging).
-Tz Dump a numeric and labeled form of all objects (compatible with MIB2SCHEMA format)

Примеры использования

% snmptranslate -M ./ -m ALL -Ln -Td 1.3.6.1.4.1.171.11.117.1.3.2.100.1.2.1.1
DGS3120-24SC-L2MGMT-MIB::swL2macNotifyInfo
swL2macNotifyInfo OBJECT-TYPE
 -- FROM DGS3120-24SC-L2MGMT-MIB
 SYNTAX OCTET STRING (0..1024)
 MAX-ACCESS read-only
 STATUS current
 DESCRIPTION "This object indicates information about the last time the system rebooted."
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) dlink(171) dlink-mgmt(11) dlink-Dgs3120Proj(117) dlink-Dgs3120ProjModel(1) dlink-Dgs3120Proj-Dgs3120-24SC(3) swL2MgmtMIB(2) swL2MgmtMIBTraps(100) swL2Notify(1) swL2NotifyPrefix(2) swl2NotificationBidings(1) 1 }

% snmptranslate -M ./ -m ALL -Ln -Onf 1.3.6.1.4.1.171.11.117.1.3.2.100.1.2
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.dlink-Dgs3120Proj.dlink-Dgs3120ProjModel.dlink-Dgs3120Proj-Dgs3120-24SC.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix

% snmptranslate -M ./ -m ALL -Ln -Tp -OS 1.3.6.1.4.1.171.11.117.1.3.2.100.1.2 
+--swL2NotifyPrefix(2)
 |
 +--swL2NotifFirmware(0)
 | |
 | +--swL2macNotification(1)
 | +--swL2PortSecurityViolationTrap(2)
 |
 +--swl2NotificationBidings(1)
 |
 +-- -R-- String swL2macNotifyInfo(1)
 | Size: 0..1024
 +-- ---N String swL2PortSecurityViolationMac(2)
 Textual Convention: MacAddress
 Size: 6

Можно просканировать все mibs и увидеть, что swL2macNotifyInfo есть и на других коммутаторах

% snmptranslate -M ./ -m ALL -Ln -Ts|grep swL2macNotifyInfo
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.des3200SeriesProd.des3200-28.des3200-28-cx.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix.swl2NotificationBidings.swL2macNotifyInfo
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.dlink-Dgs3120Proj.dlink-Dgs3120ProjModel.dlink-Dgs3120Proj-Dgs3120-24TC.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix.swl2NotificationBidings.swL2macNotifyInfo
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.dlink-Dgs3120Proj.dlink-Dgs3120ProjModel.dlink-Dgs3120Proj-Dgs3120-24PC.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix.swl2NotificationBidings.swL2macNotifyInfo
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.dlink-Dgs3120Proj.dlink-Dgs3120ProjModel.dlink-Dgs3120Proj-Dgs3120-24SC.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix.swl2NotificationBidings.swL2macNotifyInfo
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.dlink-Dgs3120Proj.dlink-Dgs3120ProjModel.dlink-Dgs3120Proj-Dgs3120-48TC.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix.swl2NotificationBidings.swL2macNotifyInfo
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.dlink-Dgs3120Proj.dlink-Dgs3120ProjModel.dlink-Dgs3120Proj-Dgs3120-48PC.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix.swl2NotificationBidings.swL2macNotifyInfo
.iso.org.dod.internet.private.enterprises.dlink.dlink-mgmt.dlink-Dgs3120Proj.dlink-Dgs3120ProjModel.dlink-Dgs3120Proj-Dgs3120-24SC-DC.swL2MgmtMIB.swL2MgmtMIBTraps.swL2Notify.swL2NotifyPrefix.swl2NotificationBidings.swL2macNotifyInfo
Подводные камни D-Link

Еще есть особенность в mibs для 3200, что в них присутствует Object Name loop_detect. Символ "_" в net-snmp не поддерживается, так что для профилактики делаем: % sed -i 's/_/-/' * в директории с mibs. Ошибку об этом символе можно увидеть, если вернуть вывод ошибок (убрать ключ -Ln):

% snmptranslate -M ./ -m DES3200-10-L2MGMT-MIB -Td 1.3.6.1.4.1.171.11.113.2.1.2.100.1.2.0.1
No log handling enabled - turning on stderr logging
Expected "(" (_): At line 5892 in .//L2mgmtDES3200-10.mib
Should be ACCESS (detected): At line 5892 in .//L2mgmtDES3200-10.mib
Bad parse of OBJECT-TYPE: At line 5892 in .//L2mgmtDES3200-10.mib
SWPRIMGMT-DES3200-MIB::des3200-10-cx.2.100.1.2.0.1
des3200-10-cx OBJECT-TYPE
 -- FROM SWPRIMGMT-DES3200-MIB
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) dlink(171) dlink-mgmt(11) des3200SeriesProd(113) des3200-10(2) des3200-10-cx(1) 2 100 1 2 0 1 }

Здесь мы видим, что иерархия не сложилась до конца.
После исправления становится так:

% snmptranslate -M ./ -m DES3200-10-L2MGMT-MIB -Td 1.3.6.1.4.1.171.11.113.2.1.2.100.1.2.0.1
DES3200-10-L2MGMT-MIB::swL2macNotification
swL2macNotification NOTIFICATION-TYPE
 -- FROM DES3200-10-L2MGMT-MIB
 OBJECTS { swL2macNotifyInfo }
 DESCRIPTION " This trap indicates the MAC address variations in the address table . "
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) dlink(171) dlink-mgmt(11) des3200SeriesProd(113) des3200-10(2) des3200-10-cx(1) swL2MgmtMIB(2) swL2MgmtMIBTraps(100) swL2Notify(1) swL2NotifyPrefix(2) swL2NotifFirmware(0) 1 }

Нужно заметить, что я указал конкретный MIB, в котором искать (остальные «подтянутся» из директории ./). В этом случае не возникает ошибок, ну и скорость работы выше.

Если не указать конкретный MIB, то получим ошибки в других mibs

% snmptranslate -M ./ -Td 1.3.6.1.4.1.171.11.113.2.1.2.100.1.2.0.1

% snmptranslate -M ./ -Td 1.3.6.1.4.1.171.11.113.2.1.2.100.1.2.0.1 
No log handling enabled - turning on stderr logging 
Attempt to define a root oid (iso): At line 5 in .//SNMPv2-SMI.mib 
Bad parse of OBJECT IDENTIFIER: At line 5 in .//SNMPv2-SMI.mib 
Did not find 'snmpModules' in module SNMPv2-SMI (.//SNMPv2-MIB.mib) 
Did not find 'mib-2' in module SNMPv2-SMI (.//SNMPv2-MIB.mib) 
Unlinked OID in SNMPv2-MIB: snmp ::= { mib-2 11 } 
Undefined identifier: mib-2 near line 230 of .//SNMPv2-MIB.mib 
Unlinked OID in SNMPv2-MIB: system ::= { mib-2 1 } 
Undefined identifier: mib-2 near line 46 of .//SNMPv2-MIB.mib 
Unlinked OID in SNMPv2-MIB: snmpMIB ::= { snmpModules 1 } 
Undefined identifier: snmpModules near line 12 of .//SNMPv2-MIB.mib 
Did not find 'mib-2' in module SNMPv2-SMI (.//IF-MIB.mib) 
Did not find 'snmpTraps' in module SNMPv2-MIB (.//IF-MIB.mib) 
Unlinked OID in IF-MIB: interfaces ::= { mib-2 2 } 
Undefined identifier: mib-2 near line 41 of .//IF-MIB.mib 
Unlinked OID in IF-MIB: ifMIB ::= { mib-2 31 } 
Undefined identifier: mib-2 near line 13 of .//IF-MIB.mib 
Unlinked OID in IF-MIB: linkUp ::= { snmpTraps 4 } 
Undefined identifier: snmpTraps near line 1356 of .//IF-MIB.mib 
Unlinked OID in IF-MIB: linkDown ::= { snmpTraps 3 } 
Undefined identifier: snmpTraps near line 1344 of .//IF-MIB.mib 
Did not find 'mib-2' in module SNMPv2-SMI (.//BRIDGE-MIB.mib) 
Unlinked OID in BRIDGE-MIB: dot1dBridge ::= { mib-2 17 } 
Undefined identifier: mib-2 near line 17 of .//BRIDGE-MIB.mib 
Did not find 'snmpModules' in module SNMPv2-SMI (.//rfc3411.mib) 
Unlinked OID in SNMP-FRAMEWORK-MIB: snmpFrameworkMIB ::= { snmpModules 10 } 
Undefined identifier: snmpModules near line 10 of .//rfc3411.mib 
Did not find 'dot1dTp' in module BRIDGE-MIB (.//P-BRIDGE-MIB.mib) 
Did not find 'dot1dTpPort' in module BRIDGE-MIB (.//P-BRIDGE-MIB.mib) 
Did not find 'dot1dBridge' in module BRIDGE-MIB (.//P-BRIDGE-MIB.mib) 
Did not find 'dot1dBasePortEntry' in module BRIDGE-MIB (.//P-BRIDGE-MIB.mib) 
Did not find 'dot1dBasePort' in module BRIDGE-MIB (.//P-BRIDGE-MIB.mib) 
Unlinked OID in P-BRIDGE-MIB: dot1dTpPortOverflowTable ::= { dot1dTp 6 } 
Undefined identifier: dot1dTp near line 740 of .//P-BRIDGE-MIB.mib 
Unlinked OID in P-BRIDGE-MIB: dot1dTpHCPortTable ::= { dot1dTp 5 } 
Undefined identifier: dot1dTp near line 664 of .//P-BRIDGE-MIB.mib 
Unlinked OID in P-BRIDGE-MIB: pBridgeMIB ::= { dot1dBridge 6 } 
Undefined identifier: dot1dBridge near line 18 of .//P-BRIDGE-MIB.mib 
Did not find 'mib-2' in module SNMPv2-SMI (.//RMON-MIB.mib) 
Unlinked OID in RMON-MIB: rmon ::= { mib-2 16 } 
Undefined identifier: mib-2 near line 88 of .//RMON-MIB.mib 
Did not find 'statistics' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'history' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'hosts' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'matrix' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'filter' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'etherStatsEntry' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'historyControlEntry' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'hostControlEntry' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'matrixControlEntry' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'filterEntry' in module RMON-MIB (.//RMON2-MIB.MIB) 
Did not find 'channelEntry' in module RMON-MIB (.//RMON2-MIB.MIB) 
Unlinked OID in RMON2-MIB: filter2Table ::= { filter 4 } 
Undefined identifier: filter near line 4931 of .//RMON2-MIB.MIB 
Unlinked OID in RMON2-MIB: channel2Table ::= { filter 3 } 
Undefined identifier: filter near line 4675 of .//RMON2-MIB.MIB 
Unlinked OID in RMON2-MIB: historyControl2Table ::= { history 5 } 
Undefined identifier: history near line 4531 of .//RMON2-MIB.MIB 
Unlinked OID in RMON2-MIB: matrixControl2Table ::= { matrix 4 } 
Undefined identifier: matrix near line 4623 of .//RMON2-MIB.MIB 
Unlinked OID in RMON2-MIB: hostControl2Table ::= { hosts 4 } 
Undefined identifier: hosts near line 4571 of .//RMON2-MIB.MIB 
Unlinked OID in RMON2-MIB: tokenRingPStats2Table ::= { statistics 6 } 
Undefined identifier: statistics near line 4778 of .//RMON2-MIB.MIB 
Unlinked OID in RMON2-MIB: tokenRingMLStats2Table ::= { statistics 5 } 
Undefined identifier: statistics near line 4727 of .//RMON2-MIB.MIB 
Unlinked OID in RMON2-MIB: etherStats2Table ::= { statistics 4 } 
Undefined identifier: statistics near line 4479 of .//RMON2-MIB.MIB 
Did not find 'dot1dBridge' in module BRIDGE-MIB (.//Q-BRIDGE-MIB.mib) 
Did not find 'dot1dBasePortEntry' in module BRIDGE-MIB (.//Q-BRIDGE-MIB.mib) 
Did not find 'dot1dBasePort' in module BRIDGE-MIB (.//Q-BRIDGE-MIB.mib) 
Unlinked OID in Q-BRIDGE-MIB: qBridgeMIB ::= { dot1dBridge 7 } 
Undefined identifier: dot1dBridge near line 24 of .//Q-BRIDGE-MIB.mib
Did not find 'mib-2' in module SNMPv2-SMI (.//INET-ADDRESS-MIB.mib)
Unlinked OID in INET-ADDRESS-MIB: inetAddressMIB ::= { mib-2 76 }
Undefined identifier: mib-2 near line 7 of .//INET-ADDRESS-MIB.mib
Did not find 'mib-2' in module SNMPv2-SMI (.//IP-MIB.MIB)
Did not find 'zeroDotZero' in module SNMPv2-SMI (.//IP-MIB.MIB)
Unlinked OID in IP-MIB: icmp ::= { mib-2 5 }
Undefined identifier: mib-2 near line 3291 of .//IP-MIB.MIB
Unlinked OID in IP-MIB: ip ::= { mib-2 4 }
Undefined identifier: mib-2 near line 184 of .//IP-MIB.MIB
Unlinked OID in IP-MIB: ipMIB ::= { mib-2 48 }
Undefined identifier: mib-2 near line 18 of .//IP-MIB.MIB
Cannot adopt OID in SNMPv2-MIB: snmpMIBGroups ::= { snmpMIBConformance 2 }
Cannot adopt OID in SNMPv2-MIB: snmpMIBCompliances ::= { snmpMIBConformance 1 }
Cannot adopt OID in SNMPv2-MIB: snmpBasicCompliance ::= { snmpMIBCompliances 2 }
Cannot adopt OID in SNMPv2-MIB: snmpSetSerialNo ::= { snmpSet 1 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpPrivProtocols ::= { snmpFrameworkAdmin 2 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpAuthProtocols ::= { snmpFrameworkAdmin 1 }
Cannot adopt OID in SNMPv2-MIB: snmpObsoleteGroup ::= { snmpMIBGroups 10 }
Cannot adopt OID in SNMPv2-MIB: snmpBasicNotificationsGroup ::= { snmpMIBGroups 7 }
Cannot adopt OID in SNMPv2-MIB: systemGroup ::= { snmpMIBGroups 6 }
Cannot adopt OID in SNMPv2-MIB: snmpSetGroup ::= { snmpMIBGroups 5 }
Cannot adopt OID in SNMPv2-MIB: snmpCommunityGroup ::= { snmpMIBGroups 9 }
Cannot adopt OID in SNMPv2-MIB: snmpGroup ::= { snmpMIBGroups 8 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpEngine ::= { snmpFrameworkMIBObjects 1 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpEngineMaxMessageSize ::= { snmpEngine 4 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpEngineTime ::= { snmpEngine 3 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpEngineBoots ::= { snmpEngine 2 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpEngineID ::= { snmpEngine 1 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpFrameworkMIB ::= { snmpModules 10 }
Cannot adopt OID in SNMPv2-MIB: snmpMIB ::= { snmpModules 1 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpFrameworkMIBConformance ::= { snmpFrameworkMIB 3 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpFrameworkMIBObjects ::= { snmpFrameworkMIB 2 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpFrameworkAdmin ::= { snmpFrameworkMIB 1 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpFrameworkMIBGroups ::= { snmpFrameworkMIBConformance 2 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpFrameworkMIBCompliances ::= { snmpFrameworkMIBConformance 1 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpFrameworkMIBCompliance ::= { snmpFrameworkMIBCompliances 1 }
Cannot adopt OID in SNMPv2-MIB: snmpSet ::= { snmpMIBObjects 6 }
Cannot adopt OID in SNMPv2-MIB: snmpTraps ::= { snmpMIBObjects 5 }
Cannot adopt OID in SNMPv2-MIB: snmpTrap ::= { snmpMIBObjects 4 }
Cannot adopt OID in SNMP-FRAMEWORK-MIB: snmpEngineGroup ::= { snmpFrameworkMIBGroups 1 }
Cannot adopt OID in IF-MIB: linkDown ::= { snmpTraps 3 }
Cannot adopt OID in IF-MIB: linkUp ::= { snmpTraps 4 }
Cannot adopt OID in SNMPv2-MIB: authenticationFailure ::= { snmpTraps 5 }
Cannot adopt OID in SNMPv2-MIB: warmStart ::= { snmpTraps 2 }
Cannot adopt OID in SNMPv2-MIB: coldStart ::= { snmpTraps 1 }
Cannot adopt OID in SNMPv2-MIB: snmpTrapEnterprise ::= { snmpTrap 3 }
Cannot adopt OID in SNMPv2-MIB: snmpTrapOID ::= { snmpTrap 1 }
Cannot adopt OID in SNMPv2-MIB: snmpMIBConformance ::= { snmpMIB 2 }
Cannot adopt OID in SNMPv2-MIB: snmpMIBObjects ::= { snmpMIB 1 }
RFC1155-SMI::enterprises.171.11.113.2.1.2.100.1.2.0.1
enterprises OBJECT-TYPE
 -- FROM RFC1155-SMI
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) 171 11 113 2 1 2 100 1 2 0 1 }

Еще пример

Можно увидеть все mibs которые поддерживает коммутатор:

% snmpwalk -v2c -c qqq -M ./ -Ln -m ALL 172.11.11.166 sysORID

% snmpwalk -v2c -c qqq -M ./ -Ln -m ALL 172.11.11.166 sysORID 
SNMPv2-MIB::sysORID.1 = OID: FILE-SYSTEM-MIB::swFileSystemMIB 
SNMPv2-MIB::sysORID.2 = OID: L2PROTOCOL-TUNNEL-MIB::swL2ProtocolTunnelMIB 
SNMPv2-MIB::sysORID.3 = OID: CABLE-DIAG-MIB::swCableDiagMIB 
SNMPv2-MIB::sysORID.4 = OID: DDM-MGMT-MIB::swDdmMIB 
SNMPv2-MIB::sysORID.5 = OID: ACLMGMT-MIB::swAclMgmtMIB 
SNMPv2-MIB::sysORID.6 = OID: iso.2.840.802.10006.300.43 
SNMPv2-MIB::sysORID.7 = OID: LLDP-MIB::lldpMIB.65538.131072.2156632268 
SNMPv2-MIB::sysORID.8 = OID: LLDP-MIB::lldpMIB.65538.131072.2156662528.12.8802.1 
SNMPv2-MIB::sysORID.9 = OID: LLDP-EXT-DOT3-MIB::lldpXdot3MIB.65540.131072.2156670924 
SNMPv2-MIB::sysORID.10 = OID: LLDP-EXT-MED-MIB::lldpXMedMIB 
SNMPv2-MIB::sysORID.11 = OID: SWPROTOCOLVLAN-MIB::swProtocolVLANMIB 
SNMPv2-MIB::sysORID.12 = OID: STATIC-MAC-BASED-VLAN-MIB::swSMBVMIB 
SNMPv2-MIB::sysORID.13 = OID: VOICE-VLAN-MIB::swVoiceVLANMIB 
SNMPv2-MIB::sysORID.14 = OID: Q-IN-Q-MIB::swQinQMIB 
SNMPv2-MIB::sysORID.15 = OID: MSTP-MIB::swMSTPMIB 
SNMPv2-MIB::sysORID.16 = OID: ERPS-MIB::swERPSMIB 
SNMPv2-MIB::sysORID.17 = OID: PoE-MIB::swPoEMIB 
SNMPv2-MIB::sysORID.18 = OID: DOT3-OAM-MIB::dot3OamMIB 
SNMPv2-MIB::sysORID.19 = OID: DULD-MIB::swDULDMIB 
SNMPv2-MIB::sysORID.20 = OID: IEEE8021-CFM-MIB::ieee8021CfmMib 
SNMPv2-MIB::sysORID.21 = OID: NLB-MIB::swNlbMIB 
SNMPv2-MIB::sysORID.22 = OID: QoS-MIB::swQoSMIB 
SNMPv2-MIB::sysORID.23 = OID: MCAST-SNOOPING-MIB::swMcastSnoopingMIB 
SNMPv2-MIB::sysORID.24 = OID: MCAST-FILTER-MIB::swMcastFilterMgmt 
SNMPv2-MIB::sysORID.25 = OID: MCAST-VLAN-MIB::swMcastVlanMIB 
SNMPv2-MIB::sysORID.26 = OID: SFLOW-MIB::sFlowMIB 
SNMPv2-MIB::sysORID.27 = OID: PPPOE-MGMT-MIB::swPPPoEMIB 
SNMPv2-MIB::sysORID.28 = OID: IPV6-STATIC-ROUTE-MIB::swIPv6StaticRouteMIB 
SNMPv2-MIB::sysORID.29 = OID: SRC-IPIF-MIB::swSrcIpIfMIB 
SNMPv2-MIB::sysORID.30 = OID: SYSLOG-MIB::swSysLogMIB
SNMPv2-MIB::sysORID.31 = OID: BRIDGE-MIB::dot1dBridge
SNMPv2-MIB::sysORID.32 = OID: RFC1155-SMI::internet.6.3.1
SNMPv2-MIB::sysORID.33 = OID: RFC1271-MIB::rmon
SNMPv2-MIB::sysORID.34 = OID: RFC1155-SMI::internet.6.3.10
SNMPv2-MIB::sysORID.35 = OID: RFC1155-SMI::internet.6.3.11
SNMPv2-MIB::sysORID.36 = OID: STATICFDB-MIB::swStaticFdbMIB
SNMPv2-MIB::sysORID.37 = OID: RFC1155-SMI::internet.6.3.13
SNMPv2-MIB::sysORID.38 = OID: RFC1155-SMI::internet.6.3.12
SNMPv2-MIB::sysORID.39 = OID: RFC1155-SMI::internet.6.3.15
SNMPv2-MIB::sysORID.40 = OID: RFC1155-SMI::internet.6.3.16
SNMPv2-MIB::sysORID.41 = OID: RFC1155-SMI::internet.6.3.18
SNMPv2-MIB::sysORID.42 = OID: EtherLike-MIB::etherMIB
SNMPv2-MIB::sysORID.43 = OID: P-BRIDGE-MIB::pBridgeMIB
SNMPv2-MIB::sysORID.44 = OID: Q-BRIDGE-MIB::qBridgeMIB
SNMPv2-MIB::sysORID.45 = OID: RMON-MIB::rmonMibModule
SNMPv2-MIB::sysORID.46 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORID.47 = OID: ENTITY-MIB::entityMIB
SNMPv2-MIB::sysORID.48 = OID: AGENT-GENERAL-MIB::agentGeneralMgmt
SNMPv2-MIB::sysORID.49 = OID: DES3200-10-L2MGMT-MIB::swL2MgmtMIB
SNMPv2-MIB::sysORID.50 = OID: SSL-MIB::swSSLMIB
SNMPv2-MIB::sysORID.51 = OID: SINGLE-IP-MIB::swSingleIPMIB
SNMPv2-MIB::sysORID.52 = OID: EQUIPMENT-MIB::swEquipmentMIB
SNMPv2-MIB::sysORID.53 = OID: TIMERANGE-MIB::swTimeRangeMIB
SNMPv2-MIB::sysORID.54 = OID: DES3200-10-L3MGMT-MIB::swL3MgmtMIB
SNMPv2-MIB::sysORID.55 = OID: SRED-MIB::swSredMIB
SNMPv2-MIB::sysORID.56 = OID: FILTER-MIB::swFilterMIB
SNMPv2-MIB::sysORID.57 = OID: ARP-Spoofing-Prevent-MIB::swARPSpoofingPreventMIB
SNMPv2-MIB::sysORID.58 = OID: BPDU-PROTECTION-MIB::swBpduProtectionMIB
SNMPv2-MIB::sysORID.59 = OID: LOOPBACK-DETECT-MIB::swLoopDetectMIB
SNMPv2-MIB::sysORID.60 = OID: DISMAN-PING-MIB::pingMIB
SNMPv2-MIB::sysORID.61 = OID: DISMAN-TRACEROUTE-MIB::traceRouteMIB
SNMPv2-MIB::sysORID.62 = OID: DHCP-RELAY-MGMT-MIB::swDHCPRelayMIB
SNMPv2-MIB::sysORID.63 = OID: DOS-PREV-MIB::swDoSMgmtMIB
SNMPv2-MIB::sysORID.64 = OID: TIME-MIB::swTimeMIB
SNMPv2-MIB::sysORID.65 = OID: RFC1213-MIB::mib-2
SNMPv2-MIB::sysORID.66 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.67 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.68 = OID: RFC1213-MIB::mib-2
SNMPv2-MIB::sysORID.69 = OID: SMTP-MIB::swSMTPMIB
SNMPv2-MIB::sysORID.70 = OID: ZONE-DEFENSE-MGMT-MIB::swZoneDefenseMIB
SNMPv2-MIB::sysORID.71 = OID: AUTH-MIB::swAuthCtrl
SNMPv2-MIB::sysORID.72 = OID: IEEE8021-PAE-MIB::ieee8021paeMIB
SNMPv2-MIB::sysORID.73 = OID: Dot1xMGMT-MIB::swdot1xMGMTMIB
SNMPv2-MIB::sysORID.74 = OID: RADIUS-ACCOUNTING-MIB::swRadiusAccountMGMTMIB
SNMPv2-MIB::sysORID.75 = OID: RADIUS-AUTH-CLIENT-MIB::radiusAuthClientMIB
SNMPv2-MIB::sysORID.76 = OID: RADIUS-ACC-CLIENT-MIB::radiusAccClientMIB
SNMPv2-MIB::sysORID.77 = OID: DLINK-ID-REC-MIB::dlink-common-mgmt.35
SNMPv2-MIB::sysORID.78 = OID: IP-MAC-BIND-MIB::swIpMacBindMIB
SNMPv2-MIB::sysORID.79 = OID: AAC-MIB::swAACMIB
SNMPv2-MIB::sysORID.80 = OID: PORT-SECURITY-MIB::swPortSecMIB
SNMPv2-MIB::sysORID.81 = OID: SAFEGUARD-ENGINE-MIB::swSafeGuardMIB
SNMPv2-MIB::sysORID.82 = OID: SSH-MIB::swSSHMIB
SNMPv2-MIB::sysORID.83 = OID: PKT-STORM-CTRL-MIB::swPktStormMIB

Здесь мы видим тот mib, который ранее использовали в ключе -m DES3200-10-L2MGMT-MIB
SNMPv2-MIB::sysORID.49 = OID: DES3200-10-L2MGMT-MIB::swL2MgmtMIB

Еще бонус в виде команды snmptable

% snmptable -v2c -c eee -M ./ -m ALL -Ln 172.11.11.4

% snmptable -v2c -c eee -M ./ -m ALL -Ln 172.11.11.4 1.3.6.1.4.1.171.11.117.1.3.2.3.1                                                           
SNMP table: DGS3120-24SC-L2MGMT-MIB::swL2PortInfoTable                                                                                                                 

 swL2PortInfoPortIndex swL2PortInfoMediumType swL2PortInfoUnitID    swL2PortInfoType swL2PortInfoLinkStatus swL2PortInfoNwayStatus swL2PortInfoErrorDisabled  
 1  copper   1 portType-1000Base-T link-pass full-1Gigabps-none  none  
 1   fiber   1 portType-1000Base-X link-fail          link-down  none  
 2  copper   1 portType-1000Base-T link-pass full-1Gigabps-none  none  
 2   fiber   1 portType-1000Base-X link-fail          link-down  none
 3  copper   1 portType-1000Base-T link-fail          link-down  none
 3   fiber   1 portType-1000Base-X link-fail          link-down  none
 4  copper   1 portType-1000Base-T link-fail          link-down  none
 4   fiber   1 portType-1000Base-X link-fail          link-down  none
 5  copper   1 portType-1000Base-T link-fail          link-down  none
 5   fiber   1 portType-1000Base-X link-pass full-1Gigabps-none  none
 6  copper   1 portType-1000Base-T link-fail          link-down  none
 6   fiber   1 portType-1000Base-X link-pass full-1Gigabps-none  none
 7  copper   1 portType-1000Base-T link-pass  full-100Mbps-none  none
 7   fiber   1 portType-1000Base-X link-fail          link-down  none
 8  copper   1 portType-1000Base-T link-pass  full-100Mbps-none  none
 8   fiber   1 portType-1000Base-X link-fail          link-down  none
 9   fiber   1 portType-1000Base-X link-fail          link-down  none
10   fiber   1 portType-1000Base-X link-pass full-1Gigabps-none  none
11   fiber   1 portType-1000Base-X link-pass full-1Gigabps-none  none
12   fiber   1 portType-1000Base-X link-fail          link-down  none
13   fiber   1 portType-1000Base-X link-fail          link-down  none
14   fiber   1 portType-1000Base-X link-fail          link-down  none
15   fiber   1 portType-1000Base-X link-pass full-1Gigabps-none  none
16   fiber   1 portType-1000Base-X link-fail          link-down  none
17   fiber   1 portType-1000Base-X link-fail          link-down  none
18   fiber   1 portType-1000Base-X link-pass full-1Gigabps-none  none
19   fiber   1 portType-1000Base-X link-fail          link-down  none
20   fiber   1 portType-1000Base-X link-fail          link-down  none
21   fiber   1 portType-1000Base-X link-fail          link-down  none
22   fiber   1 portType-1000Base-X link-fail          link-down  none
23   fiber   1 portType-1000Base-X link-fail          link-down  none
24   fiber   1 portType-1000Base-X link-pass full-1Gigabps-none  none
65  copper   2 portType-1000Base-T link-pass full-1Gigabps-none  none
65   fiber   2 portType-1000Base-X link-fail          link-down  none
66  copper   2 portType-1000Base-T link-pass full-1Gigabps-none  none
66   fiber   2 portType-1000Base-X link-fail          link-down  none
67  copper   2 portType-1000Base-T link-fail          link-down  none
67   fiber   2 portType-1000Base-X link-fail          link-down  none
68  copper   2 portType-1000Base-T link-fail          link-down  none
68   fiber   2 portType-1000Base-X link-fail          link-down  none
69  copper   2 portType-1000Base-T link-fail          link-down  none
69   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
70  copper   2 portType-1000Base-T link-fail          link-down  none
70   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
71  copper   2 portType-1000Base-T link-fail          link-down  none
71   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
72  copper   2 portType-1000Base-T link-fail          link-down  none
72   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
73   fiber   2 portType-1000Base-X link-fail          link-down  none
74   fiber   2 portType-1000Base-X link-fail          link-down  none
75   fiber   2 portType-1000Base-X link-fail          link-down  none
76   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
77   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
78   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
79   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
80   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
81   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
82   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
83   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
84   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
85   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
86   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
87   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none
88   fiber   2 portType-1000Base-X link-pass full-1Gigabps-none  none

Итого

В данный момент, я перевожу OID SNMP Traps с коммутаторов в понятный для оператора формат. Это послужит основой для системы регистрации событий на оборудовании. Использовать MIBs в приложении мы не собираемся по причине непереносимости и не универсальности. Думаю подавляющее большинство бибилотек используют для трансляции OID системные базы MIBs и конфиг /etc/snmp/snmp.conf (их использует Net-SNMP, а библиотека обращется к последнему), а глобально включать эти модули MIBs мы не хотим. Эти данные можно использовать для экспериментов и добиться более универсального варианта по использованию MIBs, но для меня этого достаточно.

Автор: DoMoVoY

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js