解説書 Vol.2
- <この項の構成>
- (1) SNMPv1オペレーション,SNMPv2cオペレーションのメッセージフォーマット
- (2) SNMPv3オペレーションのメッセージフォーマット
- (3) SNMPオペレーションメッセージサイズの制限
(1) SNMPv1オペレーション,SNMPv2cオペレーションのメッセージフォーマット
SNMPv1,SNMPv2cのオペレーションを行うメッセージフォーマットは,RFC1157で規定されています。メッセージフォーマットの概要を次の図に示します。
図7-20 SNMPオペレーションメッセージフォーマット
GetRequest,GetNextRequest,GetBulkRequest,SetRequest,GetResponseの各オペレーションのメッセージフォーマットは同じです。PDUタイプの値によってメッセージが区別されます。
オペレーション時は,オペレーションの種別を区別するために次の項目に値を設定してSNMPエージェントにメッセージを送信します。
- PDUタイプに種別を設定する
- フレーム送信シーケンス番号をリクエスト識別子に設定する
- オペレーションするMIBのオブジェクトIDをMIB情報に設定する
PDUタイプコードを次の表に示します。
オペレーション コード GetRequest 0xA0 GetNextRequest 0xA1 GetResponse 0xA2 SetRequest 0xA3 GetBulkRequest 0xA5 オペレーションの結果エラーが発生した場合,SNMPエージェントはエラーステータスにエラーコードを設定し,何番目のMIB情報でエラーが発生したかをエラー位置番号に設定したGetResponseオペレーションの応答を返します。オペレーションの結果が正常なら,エラーステータスにエラーなしのコードを設定し,MIB情報内にオペレーションしたMIB情報を設定したGetResponseオペレーションの応答を返します。エラーステータスコードを次の表に示します。
エラーステータス コード 内容 noError 0 エラーはありません。 tooBig 1 データサイズが大きくPDUに値を設定できません。 noSuchName 2 指定MIBがない,または書き込みできませんでした。 badValue 3 設定値が不正です。 readOnly 4 書き込みできませんでした(本装置では,応答することはありません)。 GenError 5 コード0〜4以外のエラーが発生しました。 noAccess 6 アクセスできないMIBに対してsetを行おうとしました。 wrongType 7 MIBで必要なタイプと異なるタイプが指定されました。 wrongLength 8 MIBで必要なデータ長と異なる長さが指定されました。 wrongEcoding 9 ASN.1符号が不正でした。 wrongValue 10 MIB値が不正でした。 noCreation 11 該当するMIBが存在しません。 inconsistentValue 12 現在何か理由があって値が設定できません。 resourceUnavailable 13 値の設定のためにリソースが必要ですが,リソースが利用できません。 commitFaild 14 値の更新に失敗しました。 undoFaild 15 値の更新に失敗したときに,更新された値を元に戻すのに失敗しました。 notWriteable 17 セットできません。 inconsistentName 18 該当するMIBが存在しないため,現在は作成できません。
(2) SNMPv3オペレーションのメッセージフォーマット
SNMPv3のオペレーションを行うメッセージフォーマットは,RFC3416で規定されています。メッセージフォーマットの概要を次の図に示します。
図7-21 SNMPv3オペレーションメッセージフォーマット
GetRequest,GetNextRequest,GetBulkRequest,SetRequest,Response,SNMPv2-Trap,Reportの各オペレーションのメッセージフォーマットは同じです。PDUタイプの値によってメッセージが区別されます。
オペレーション時は,オペレーションの種別を区別するため,次の項目に値を設定してSNMPエージェントにメッセージを送信します。
- PDUタイプに種別を設定する。
- フレーム送信シーケンス番号をリクエスト識別子に設定する。
- オペレーションするMIBのオブジェクトIDをMIB情報に設定する。
PDUタイプコードを次の表に示します。
表7-3 PDUタイプコード
オペレーション コード GetRequest 0xA0 GetNextRequest 0xA1 Response 0xA2 SetRequest 0xA3 GetBulkRequest 0xA5 SNMPv2-Trap 0xA7 Report 0xA8 オペレーションの結果エラーが発生した場合,SNMPエージェントはエラーステータスにエラーコードを設定し,何番目のMIB情報でエラーが発生したかをエラー位置番号に設定したGetResponseオペレーションの応答を返します。オペレーションの結果が正常であれば,エラーステータスにエラーなしのコードを設定し,MIB情報内にオペレーションしたMIB情報を設定したGetResponseオペレーションの応答を返します。
エラーステータスコードを次の表に示します。
表7-4 エラーステータスコード
エラーステータス コード 内容 noError 0 エラーはありません。 tooBig 1 データサイズが大きくPDUに値を設定できません。 noSuchName 2 指定MIBがない,または書き込みできませんでした。 badValue 3 設定値が不正です。 readOnly 4 書き込みできませんでした(本装置では,応答することはありません)。 GenError 5 コード0〜4以外のエラーが発生しました。 noAccess 6 アクセスできないMIBに対してsetを行おうとしました。 wrongType 7 MIBで必要なタイプと異なるタイプが指定されました。 wrongLength 8 MIBで必要なデータ長と異なる長さが指定されました。 wrongEcoding 9 ASN.1符号が不正でした。 wrongValue 10 MIB値が不正でした。 noCreation 11 該当するMIBが存在しません。 inconsistentValue 12 現在何か理由があって値が設定できません。 resourceUnavailable 13 値の設定のためにリソースが必要ですが,リソースが利用できません。 commitFaild 14 値の更新に失敗しました。 undoFaild 15 値の更新に失敗したときに,更新された値を元に戻すのに失敗しました。 authorizationError 16 認証に失敗しました。 notWriteable 17 セットできません。 inconsistentName 18 該当するMIBが存在しないため,現在は作成できません。
(3) SNMPオペレーションメッセージサイズの制限
本装置では2048バイトまでのSNMPオペレーションメッセージを処理します。2048バイトを超えるSNMPオペレーションメッセージは破棄されます。
Copyright (c)2005, 2011, ALAXALA Networks Corporation. All rights reserved.