18.1.3 SNMPv1,SNMPv2Cオペレーション
管理データ(MIB:management information base)の収集や設定を行うため,SNMPでは次に示す4種類のオペレーションがあります。
-
GetRequest :指定したMIBの情報を取り出します。
-
GetNextRequest:指定した次のMIBの情報を取り出します。
-
GetBulkRequest:GetNextRequestの拡張版です。
-
SetRequest :指定したMIBに値を設定します。
各オペレーションはSNMPマネージャから装置(SNMPエージェント)に対して行われます。各オペレーションについて説明します。
- 〈この項の構成〉
(1) GetRequestオペレーション
GetRequestオペレーションは,SNMPマネージャから装置(エージェント機能)に対してMIBの情報を取り出すときに使用します。このオペレーションでは,一つまたは複数MIBを指定できます。
装置が該当するMIBを保持している場合,GetResponseオペレーションでMIB情報を応答します。該当するMIBを保持していない場合は,GetResponseオペレーションでnoSuchNameを応答します。GetRequestオペレーションを次の図に示します。
SNMPv2Cでは,装置が該当するMIBを保持していない場合は,GetResponseオペレーションでMIB値にnoSuchObjectを応答します。SNMPv2Cの場合のGetRequestオペレーションを次の図に示します。
(2) GetNextRequestオペレーション
GetNextRequestオペレーションは,GetRequestオペレーションに似たオペレーションです。GetRequestオペレーションは,指定したMIBの読み出しに使用しますが,GetNextRequestオペレーションは,指定したMIBの次のMIBを取り出すときに使用します。このオペレーションも一つまたは複数のMIBを指定できます。
装置が指定した次のMIBを保持している場合は,GetResponseオペレーションでMIBを応答します。指定したMIBが最後の場合は,GetResponseでnoSuchNameを応答します。GetNextRequestオペレーションを次の図に示します。
SNMPv2Cの場合,指定したMIBが最後の場合はGetResponseでMIB値にendOfMibViewを応答します。SNMPv2Cの場合のGetNextRequestオペレーションを次の図に示します。
(3) GetBulkRequestオペレーション
GetBulkRequestオペレーションは,GetNextRequestオペレーションを拡張したオペレーションです。このオペレーションでは繰り返し回数を設定し,指定したMIBの次の項目から指定した繰り返し回数個分のMIBを取得できます。このオペレーションも,一つまたは複数のMIBを指定できます。
装置が,指定したMIBの次の項目から指定した繰り返し回数個分のMIBを保持している場合は,GetResponseオペレーションでMIBを応答します。指定したMIBが最後の場合,または繰り返し数に達する前に最後のMIBになった場合,GetResponseオペレーションでMIB値にendOfMibViewを応答します。GetBulkRequestオペレーションを次の図に示します。
(4) SetRequestオペレーション
SetRequestオペレーションは,SNMPマネージャから装置(エージェント機能)に対して行うオペレーションという点でGetRequest,GetNextRequest,GetBulkRequestオペレーションと似ていますが,値の設定方法が異なります。
SetRequestオペレーションでは,設定する値とMIBを指定します。値を設定すると,GetResponseオペレーションでMIBと設定値を応答します。SetRequestオペレーションを次の図に示します。
(a) MIBを設定できない場合の応答
MIBを設定できないケースは,次に示す3とおりです。
-
MIBが読み出し専用の場合(読み出し専用コミュニティに属するマネージャの場合も含む)
-
設定値が正しくない場合
-
装置の状態によって設定できない場合
各ケースによって,応答が異なります。MIBが読み出し専用の場合,noSuchNameのGetResponse応答をします。SNMPv2Cの場合,MIBが読み出し専用のときはnotWritableのGetResponse応答をします。MIBが読み出し専用の場合のSetRequestオペレーションを次の図に示します。
設定値のタイプが正しくない場合,badValueのGetResponse応答をします。SNMPv2Cの場合,設定値のタイプが正しくないときはwrongTypeのGetResponse応答をします。設定値のタイプが正しくない場合のSetRequestオペレーションを次の図に示します。
装置の状態によって設定できない場合,genErrorを応答します。例えば,装置内で値を設定しようとしたときに,装置内部で設定タイムアウトを検出した場合などがこれに当てはまります。装置の状態によって設定できない場合のSetRequestオペレーションを次の図に示します。
(5) コミュニティによるオペレーション制限
SNMPv1およびSNMPv2Cでは,オペレーションを実行するSNMPマネージャを限定するため,コミュニティという概念があります。コミュニティはオペレーションを実行するSNMPマネージャとSNMPエージェントを一つのグループとして割り当てる名称です。MIBに対してオペレーションする場合は,SNMPマネージャとSNMPエージェントは,同一のグループ(コミュニティ)に属する必要があります。コミュニティによるオペレーションを次の図に示します。
装置Aはコミュニティ(public)およびコミュニティ(localnetwork)に属しています。コミュニティ(othernetwork)には属していません。この場合,装置Aはコミュニティ(public)およびコミュニティ(localnetwork)のSNMPマネージャA,BからMIBのオペレーションを受け付けますが,コミュニティ(othernetwork)のSNMPマネージャCからのオペレーションは受け付けません。
(6) IPアドレスによるオペレーション制限
本装置では,セキュリティを考慮し,アクセスリストを使用することでコミュニティとSNMPマネージャのIPアドレスの組み合わせが合わないときはMIBのオペレーションを受け付けないようにできます。本装置でSNMPv1およびSNMPv2Cを使用するときは,コミュニティをコンフィグレーションコマンドで登録する必要があります。なお,コミュニティは文字列で設定します。また,一般的にコミュニティ名称は,publicを使用している場合が多いです。
(7) SNMPオペレーションのエラーステータスコード
オペレーションでエラーが発生した場合,SNMPエージェントはエラーステータスにエラーコードを設定し,何番目のMIB情報でエラーが発生したかをエラー位置番号に設定したGetResponseオペレーションの応答を返します。オペレーションの結果が正常なら,エラーステータスにエラーなしのコードを設定し,MIB情報内にオペレーションしたMIB情報を設定したGetResponseオペレーションの応答を返します。エラーステータスコードを次の表に示します。