コンフィグレーションガイド Vol.2
管理データ(MIB:management information base)の収集や設定を行うため,SNMPでは次に示す4種類のオペレーションがあります。
- GetRequest :指定したMIBの情報を取り出します。
- GetNextRequest:指定した次のMIBの情報を取り出します。
- GetBulkRequest:GetNextRequestの拡張版です。
- SetRequest :指定したMIBに値を設定します。
各オペレーションはSNMPマネージャから装置(SNMPエージェント)に対して行われます。各オペレーションについて説明します。
- <この項の構成>
- (1) GetRequestオペレーション
- (2) GetNextRequestオペレーション
- (3) GetBulkRequestオペレーション
- (4) SetRequestオペレーション
- (5) コミュニティによるオペレーション制限
- (6) IPアドレスによるオペレーション制限
- (7) SNMPオペレーションのエラーステータスコード
GetRequestオペレーションは,SNMPマネージャから装置(エージェント機能)に対してMIBの情報を取り出すときに使用します。このオペレーションでは,一つまたは複数MIBを指定できます。
装置が該当するMIBを保持している場合,GetResponseオペレーションでMIB情報を応答します。該当するMIBを保持していない場合は,GetResponseオペレーションでnoSuchNameを応答します。GetRequestオペレーションを次の図に示します。
図22-7 GetRequestオペレーション
SNMPv2Cでは,装置が該当するMIBを保持していない場合は,GetResponseオペレーションでMIB値にnoSuchObjectを応答します。SNMPv2Cの場合のGetRequestオペレーションを次の図に示します。
図22-8 GetRequestオペレーション(SNMPv2C)
GetNextRequestオペレーションは,GetRequestオペレーションに似たオペレーションです。GetRequestオペレーションは,指定したMIBの読み出しに使用しますが,GetNextRequestオペレーションは,指定したMIBの次のMIBを取り出すときに使用します。このオペレーションも一つまたは複数のMIBを指定できます。
装置が指定した次のMIBを保持している場合は,GetResponseオペレーションでMIBを応答します。指定したMIBが最後の場合は,GetResponseでnoSuchNameを応答します。GetNextRequestオペレーションを次の図に示します。
図22-9 GetNextRequestオペレーション
SNMPv2Cの場合,指定したMIBが最後の場合はGetResponseでMIB値にendOfMibViewを応答します。SNMPv2Cの場合のGetNextRequestオペレーションを次の図に示します。
図22-10 GetNextRequestオペレーション(SNMPv2C)
GetBulkRequestオペレーションは,GetNextRequestオペレーションを拡張したオペレーションです。このオペレーションでは繰り返し回数を設定し,指定したMIBの次の項目から指定した繰り返し回数個分のMIBを取得できます。このオペレーションも,一つまたは複数のMIBを指定できます。
装置が,指定したMIBの次の項目から指定した繰り返し回数個分のMIBを保持している場合は,GetResponseオペレーションでMIBを応答します。指定したMIBが最後の場合,または繰り返し数に達する前に最後のMIBになった場合,GetResponseオペレーションでMIB値にendOfMibViewを応答します。GetBulkRequestオペレーションを次の図に示します。
図22-11 GetBulkRequestオペレーション
SetRequestオペレーションは,SNMPマネージャから装置(エージェント機能)に対して行うオペレーションという点でGetRequest,GetNextRequest,GetBulkRequestオペレーションと似ていますが,値の設定方法が異なります。
SetRequestオペレーションでは,設定する値とMIBを指定します。値を設定すると,GetResponseオペレーションでMIBと設定値を応答します。SetRequestオペレーションを次の図に示します。
図22-12 SetRequestオペレーション
MIBを設定できないケースは,次に示す3とおりです。
- MIBが読み出し専用の場合(読み出し専用コミュニティに属するマネージャの場合も含む)
- 設定値が正しくない場合
- 装置の状態によって設定できない場合
各ケースによって,応答が異なります。MIBが読み出し専用の場合,noSuchNameのGetResponse応答をします。SNMPv2Cの場合,MIBが読み出し専用のときはnotWritableのGetResponse応答をします。MIBが読み出し専用の場合のSetRequestオペレーションを次の図に示します。
図22-13 MIB変数が読み出し専用の場合のSetRequestオペレーション
設定値のタイプが正しくない場合,badValueのGetResponse応答をします。SNMPv2Cの場合,設定値のタイプが正しくないときはwrongTypeのGetResponse応答をします。設定値のタイプが正しくない場合のSetRequestオペレーションを次の図に示します。
図22-14 設定値のタイプが正しくない場合のSetRequestオペレーション例
装置の状態によって設定できない場合,genErrorを応答します。例えば,装置内で値を設定しようとしたときに,装置内部で設定タイムアウトを検出した場合などがこれに当てはまります。装置の状態によって設定できない場合のSetRequestオペレーションを次の図に示します。
図22-15 装置の状態によって設定できない場合のSetRequestオペレーション
SNMPv1およびSNMPv2Cでは,オペレーションを実行するSNMPマネージャを限定するため,コミュニティという概念があります。コミュニティはオペレーションを実行するSNMPマネージャとSNMPエージェントを一つのグループとして割り当てる名称です。MIBに対してオペレーションする場合は,SNMPマネージャとSNMPエージェントは,同一のグループ(コミュニティ)に属する必要があります。コミュニティによるオペレーションを次の図に示します。
装置Aはコミュニティ(public)およびコミュニティ(localnetwork)に属しています。コミュニティ(othernetwork)には属していません。この場合,装置Aはコミュニティ(public)およびコミュニティ(localnetwork)のSNMPマネージャA,BからMIBのオペレーションを受け付けますが,コミュニティ(othernetwork)のSNMPマネージャCからのオペレーションは受け付けません。
本装置では,セキュリティを考慮し,アクセスリストを使用することでコミュニティとSNMPマネージャのIPアドレスの組み合わせが合わないときはMIBのオペレーションを受け付けないようにできます。本装置でSNMPv1およびSNMPv2Cを使用するときは,コミュニティをコンフィグレーションコマンドで登録する必要があります。なお,コミュニティは文字列で設定します。また,一般的にコミュニティ名称は,publicを使用している場合が多いです。
オペレーションでエラーが発生した場合,SNMPエージェントはエラーステータスにエラーコードを設定し,何番目のMIB情報でエラーが発生したかをエラー位置番号に設定したGetResponseオペレーションの応答を返します。オペレーションの結果が正常なら,エラーステータスにエラーなしのコードを設定し,MIB情報内にオペレーションしたMIB情報を設定したGetResponseオペレーションの応答を返します。エラーステータスコードを次の表に示します。
エラーステータス コード 内容 noError 0 エラーはありません。 tooBig 1 データサイズが大きくPDUに値を設定できません。 noSuchName 2 指定MIBがない,または書き込みできませんでした。 badValue 3 設定値が不正です。 readOnly 4 書き込みできませんでした(本装置では,応答することはありません)。 genError 5 その他のエラーが発生しました。 noAccess 6 アクセスできないMIBに対してsetを行おうとしました。 wrongType 7 MIBで必要なタイプと異なるタイプが指定されました。 wrongLength 8 MIBで必要なデータ長と異なる長さが指定されました。 wrongEncoding 9 ASN.1符号が不正でした。 wrongValue 10 MIB値が不正でした。 noCreation 11 該当するMIBが存在しません。 inconsistentValue 12 現在何か理由があって値が設定できません。 resourceUnavailable 13 値の設定のためにリソースが必要ですが,リソースが利用できません。 commitFailed 14 値の更新に失敗しました。 undoFailed 15 値の更新に失敗したときに,更新された値を元に戻すのに失敗しました。 notWritable 17 セットできません。 inconsistentName 18 該当するMIBが存在しないため,現在は作成できません。
All Rights Reserved, Copyright(C), 2005, 2012, ALAXALA Networks, Corp.