見出し画像

SNMPの拡張MIBを定義するためのMIBモジュール超入門

拡張MIBを定義するために必要な知識としてASN.1、SMIに続いてMIBモジュールの説明です。

MIBモジュールの構造

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

実践SNMP教科書原稿
MIBモジュールの構造

MIBモジュール名とリンケージ

(1)MIBモジュール名の定義
ASN.1モジュールの定義開始を宣言する部分で、MIBモジュール名を示します。
(2)リンケージ
たのASN.1モジュールで定義された、データタイプ、値、マクロをIMPORTする定義です。基本的には、SMIでの定義からインポートします。多くのMIBコンパイラでは、このIMPORTS定義で、OBJECT-TYPEマクロを、RFC1155-SMIからインポートしているか、SMIv2からインポートしているかによって、どちらの仕様のSMIに従って定義されたMIBモジュールかを識別しています。

実践SNMP教科書原稿

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教科書

ここから先は

11,333字 / 5画像
SNMPの仕様について解説した本やサイトは、沢山あると思います。 独自の拡張MIBを自分で設計してMIBファイルやエージェントを作る方法を解説した教科書はないと思います。

20年近く前に書いた「実践SNMP教科書」を現在でも通用する部分だけ書き直して復刻するマガジンです。最近MIBの設計で困っている人に遭遇し…

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。