JP1 Version 9 JP1/Cm2/Internet Gateway Server
ここでは,「付録E.1 定義が必要なオブジェクトかを判定する」により,定義が必要なMIBオブジェクトと判定したものについて,どのように定義文を作成するかを説明します。
- <この項の構成>
- (1) ASN.1によるMIB定義文から作成する方法
- (2) ASN.1以外の形式で記述されたMIBの仕様から作成する方法
(1) ASN.1によるMIB定義文から作成する方法
ASN.1によるMIB定義文から作成する場合は,定義フォーマットとして種別指定を使用します。
- オブジェクトIDの定義
定義が必要なMIBテーブルの,テーブルのオブジェクトIDを定義します。「付録E.1(1) ASN.1によるMIB定義文から判定する方法」の手順1で探したMIBテーブルのオブジェクトIDを,ドットと数字を使った形式で記述します。MIB定義文から数字とドットを使った形式を知るには,ASN.1の定義を解釈し,MIBツリーを上へとたどります。MIB定義文の解釈の方法については,一般の書籍などを参考にしてください。
- INDEX種別の指定
MIBテーブルのインスタンス識別子となるMIBオブジェクトの種別を,順に指定します。MIBオブジェクトのSYNTAXの定義を基に,表E-1の対応表に従って,指定するINDEX種別を決定します。IpAddress,NetworkAddress,INTEGER,Integer32,Counter,Counter32,Counter64,Gauge,Gauge32,Unsigned32,TimeTicks,OBJECT IDENTIFIERなど,SYNTAXから一意にINDEX種別が決まるものについては,表E-1を参考に種別を指定します。また,物理アドレスを表すPhysAddressは,一般に6オクテットで定義されているので,fixoctet(6)として指定します。また,MacAddressは,6オクテットで定義されているので,fixoctet(6)として指定します。
OCTET STRINGおよびDisplayStringは,固定長か可変長かによってINDEX種別が異なります。固定長か可変長かは,MIBオブジェクトのSYNTAX定義を次のように読み取ります。
- SYNTAXの定義で,OCTET STRINGまたはDisplayStringとだけ定義されている場合,可変長となり,INDEX識別子はvaroctetとなります。
- SIZEを使ってサイズを指定している場合,その指定している内容によって固定長か,可変長が決まります。
OCTET STRING(SIZE(4))やDisplayString(SIZE(20))のように,サイズが定義されている場合は,固定長です。その場合は実際に定義されているサイズの値を使って,OCTET STRING(SIZE(4))ならばfixoctet(4),DisplayString(SIZE(20))ならばfixoctet(20)と定義します。
OCTET STRING(SIZE(0..16))やDisplayString(SIZE(1..255))のようにサイズが範囲で指定されていた場合は可変長となり,varoctetとして定義します。
OCTET STRING(SIZE(2..2))のように定義されている場合があります。このような場合,固定長とみなすか可変長とみなすかはエージェントの実装によるので,注意が必要です。
SYNTAXからINDEX種別への変換表を次の表に示します。
表E-1 SYNTAXからINDEX種別への変換表
SYNTAX INDEX種別 IpAddress ipaddr NetworkAddress netaddr INTEGER,Integer32 integer Counter,Counter32,Counter64 integer Gauge,Gauge32,Unsigned32 integer TimeTicks integer OBJECT IDENTIFIER objectid PhysAddress,MacAddress fixoctet(6) OCTET STRING varoctet DisplayString varoctet OCTET STRING(SIZE(4)) fixoctet(4)※1 DisplayString(SIZE(20)) fixoctet(20)※2 OCTET STRING(SIZE(0..16)) varoctet DisplayString(SIZE(1..255)) varoctet 注※1 4の部分はMIBにより変わる
注※2 20の部分はMIBにより変わる
(2) ASN.1以外の形式で記述されたMIBの仕様から作成する方法
ASN.1以外の形式で記述されたMIB定義文から作成する場合は,定義フォーマットとして種別指定,または位置指定を使用します。
- オブジェクトIDの定義
定義が必要なMIBテーブルのテーブルのオブジェクトIDを定義します。
MIBの仕様として,MIBテーブルのオブジェクトIDが示されている場合は,そのオブジェクトIDを指定します。MIBの仕様としてMIBテーブル中のMIBオブジェクトのオブジェクトIDしか示されていない場合は,MIBオブジェクトのオブジェクトIDの末尾2オクテットを除きます。それが,テーブルのオブジェクトIDとなります。例えば,テーブル型のMIBオブジェクトのオブジェクトIDが.1.3.6.1.4.1.116.100.10.1.1の場合,テーブルのオブジェクトIDは.1.3.6.1.4.1.116.100.10となります。
MIBオブジェクトのオブジェクトIDの末尾から一つ目がMIBオブジェクトを表すサブID,末尾から二つ目はエントリを表すサブID,末尾から三つ目がテーブルを表すサブIDです。
- INDEX種別またはINDEX位置の指定
MIBの仕様で,テーブルのインスタンス識別子に使用されるオブジェクトのSYNTAXがすべて示されている場合は,種別指定をします。「付録E.1(1) ASN.1によるMIB定義文から判定する方法」と同様に,表E-1に従ってINDEX種別を定義します。
インスタンス識別子に使用されるオブジェクトのSYNTAXが不明な場合は,そのオブジェクトがインスタンス識別子のサブIDに,どのようにマッピングされているかを調べます。インスタンス識別子中のIPアドレスは,四つのサブIDにマッピングされますが,その先頭のサブIDが,インスタンス識別子のサブIDの中で何番目の位置かを指定します。インスタンス識別子として先頭のサブIDを1と数えます。例えば,二つのMIBオブジェクトがインスタンス識別子に使用されている場合,一つ目のMIBオブジェクトのSYNTAXが不明で,二つ目のMIBオブジェクトのSYNTAXがIpAddressの場合,INDEX位置の指定は,一つ目のMIBオブジェクトがマッピングされるサブIDの数に,1を加えたものになります。
なお,インスタンス識別子にマッピングされるMIBオブジェクトが可変長の場合は,位置指定による定義はできません。
All Rights Reserved. Copyright (C) 2009, Hitachi, Ltd.