
SNMPの拡張MIBを定義するためのMIBモジュール超入門
拡張MIBを定義するために必要な知識としてASN.1、SMIに続いてMIBモジュールの説明です。
MIBモジュールの構造
SNMPのエージェントがサポートする管理情報は、ASN.1で記述されたMIBモジュールによって定義されます。MIBモジュールは、管理情報の種類毎に定義されます。MIBモジュールの記述は、1993年以降 SMIv2形式で記述することが標準的になっています。本書ではSMIv2形式で説明します。

MIBモジュール名とリンケージ
(1)MIBモジュール名の定義
ASN.1モジュールの定義開始を宣言する部分で、MIBモジュール名を示します。
(2)リンケージ
たのASN.1モジュールで定義された、データタイプ、値、マクロをIMPORTする定義です。基本的には、SMIでの定義からインポートします。多くのMIBコンパイラでは、このIMPORTS定義で、OBJECT-TYPEマクロを、RFC1155-SMIからインポートしているか、SMIv2からインポートしているかによって、どちらの仕様のSMIに従って定義されたMIBモジュールかを識別しています。
MIBモジュール定義の例(モジュール名とリンケージ)
SNMPv2-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
TimeTicks, Counter32, snmpModules, mib-2
FROM SNMPv2-SMI
DisplayString, TestAndIncr, TimeStamp
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF;
こんなコラムを書いてました。
コラム:SMIv1,v2の混在
MIBモジュールの定義において、希に、OBJECT-TYPEのマクロはSMIv1に従って定義しているにもかかわらず、TRAPの定義をNOTIFICATION-TYPEマクロ(SMIv2で定義)で行っている例や、SMIv2のOBJECT-TYPEマクロをインポートしているのも関わらず、SMIv1形式で定義している例があります。厳密ではないMIBコンパイラ(一部のSNMPマネージャ)ではエラーにならないのですが、標準仕様上は、あきらかな間違いです。基本的には、新規に定義するMIBモジュールでは、SMIv2で記述することを強くおすすめします。
ここから先は

実践SNMP教科書 復刻版
20年近く前に書いた「実践SNMP教科書」を現在でも通用する部分だけ書き直して復刻するマガジンです。最近MIBの設計で困っている人に遭遇し…
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。