4. MIBモジュールの構造
この文書では、3つの独立したMIBモジュールが記述されています:
- SNMP-TARGET-MIB: 管理ターゲットMIB
- SNMP-NOTIFICATION-MIB: 通知MIB
- SNMP-PROXY-MIB: プロキシMIB
特定のタイプのアプリケーションによるこれらのMIBの使用については、この文書の後半で説明します:
- 通知オリジネータアプリケーションにおける管理ターゲットMIBと通知MIBの使用は、セクション5で説明されています。
- 通知オリジネータアプリケーションにおける通知のフィルタリングのための通知MIBの使用は、セクション6で説明されています。
- プロキシ転送アプリケーションにおける管理ターゲットMIBとプロキシMIBの使用は、セクション7で説明されています。
4.1. 管理ターゲットMIBモジュール
SNMP-TARGET-MIBモジュールには、管理ターゲットを定義するためのオブジェクトが含まれています。これは、2つのテーブルと適合性/準拠ステートメントで構成されています。
4.1.1. 構造の概要
SNMP-TARGET-MIBは以下を提供します:
-
snmpTargetAddrTable: トランスポートドメインとアドレスに関する情報を含みます。エントリのグループ化メカニズムを提供するsnmpTargetAddrTagListが含まれています。
-
snmpTargetParamsTable: 特定のトランスポートドメインとアドレスにメッセージを送信する際に使用するSNMPバージョンとセキュリティ情報を含みます。
管理ターゲットMIBは、トランスポートアドレスを指定し、SNMPエンティティによって生成されるSNMPメッセージのパラメータを指定するための汎用メカニズムを提供することを目的としています。この文書内では、通知の生成とプロキシ転送に使用されます。ただし、他の目的にも使用できます。
4.1.2. タグリスト
snmpTargetAddrTagListオブジェクトは、snmpTargetAddrTable内のエントリをグループ化するために使用されます。このオブジェクトの値には、特定の操作に使用するターゲットアドレスを選択するために使用されるタグ値のリストが含まれています。
タグ値は任意のオクテット文字列ですが、区切り文字を含むことはできません。区切り文字は、以下の文字のいずれかとして定義されています:
- ASCII空白文字(0x20)
- ASCIIタブ文字(0x09)
- ASCII復帰改行(CR)文字(0x0D)
- ASCII改行(LF)文字(0x0A)
区切り文字は、タグリスト内のタグ値を区切るために使用されます。このタイプのオブジェクトには以下を含めることができます:
- 空のリストを表すゼロ長のオクテット文字列、または
- 単一のタグ値(区切り文字は許可されません)、または
- 単一の区切り文字で区切られたタグ値のリスト
タグ値のリストの場合、これらの制約は以下を意味します:
- 先頭または末尾の区切り文字があってはなりません
- 複数の隣接する区切り文字があってはなりません
4.1.3. SNMP-TARGET-MIBの主要なオブジェクト
snmpTargetSpinLock
このオブジェクトは、複数のマネージャーによるSNMP-TARGET-MIBモジュール内のテーブルエントリの変更を容易にするために使用されます。特に、snmpTargetAddrTagListオブジェクトを変更する際に役立ちます。
snmpTargetAddrTable
SNMPメッセージの生成に使用されるトランスポートアドレスのテーブル。各エントリには以下が含まれます:
- snmpTargetAddrName: このエントリのローカル一意識別子
- snmpTargetAddrTDomain: トランスポートタイプ(例:snmpUDPDomain)
- snmpTargetAddrTAddress: トランスポートアドレス
- snmpTargetAddrTimeout: 予想される最大往復時間
- snmpTargetAddrRetryCount: 未配信メッセージの再試行回数
- snmpTargetAddrTagList: エントリをグループ化するためのタグ値のリスト
- snmpTargetAddrParams: snmpTargetParamsTableエントリへの参照
- snmpTargetAddrStorageType: このエントリのストレージタイプ
- snmpTargetAddrRowStatus: エントリを作成/削除するための行ステータス
snmpTargetParamsTable
特定のターゲットにSNMPメッセージを生成する際に使用するSNMPパラメータを含みます。各エントリには以下が含まれます:
- snmpTargetParamsName: ローカル一意識別子
- snmpTargetParamsMPModel: メッセージ処理モデル(0=SNMPv1、1=SNMPv2c、3=SNMPv3)
- snmpTargetParamsSecurityModel: セキュリティモデル(1=SNMPv1、2=SNMPv2c、3=USM)
- snmpTargetParamsSecurityName: セキュリティ名(コミュニティまたはユーザー名)
- snmpTargetParamsSecurityLevel: セキュリティレベル(noAuthNoPriv、authNoPriv、authPriv)
- snmpTargetParamsStorageType: このエントリのストレージタイプ
- snmpTargetParamsRowStatus: エントリを作成/削除するための行ステータス
4.2. 通知MIBモジュール
SNMP-NOTIFICATION-MIBモジュールには、通知の生成を構成するためのオブジェクトが含まれています。3つのテーブルが含まれています。
4.2.1. 構造の概要
SNMP-NOTIFICATION-MIBは以下を提供します:
- snmpNotifyTable: タグ値に基づいて通知を受信する管理ターゲットを選択します。
- snmpNotifyFilterProfileTable: フィルタープロファイルをターゲットパラメータ名に関連付けます。
- snmpNotifyFilterTable: 選択的な通知配信のためのフィルタールールを定義します。
4.2.2. SNMP-NOTIFICATION-MIBの主要なオブジェクト
snmpNotifyTable
通知を受信する必要がある管理ターゲットと、生成する通知のタイプ(trapまたはinform)を選択します。各エントリには以下が含まれます:
- snmpNotifyName: ローカル一意識別子
- snmpNotifyTag: snmpTargetAddrTagListと照合するタグ値
- snmpNotifyType: trap(1)またはinform(2)
- snmpNotifyStorageType: このエントリのストレージタイプ
- snmpNotifyRowStatus: エントリを作成/削除するための行ステータス
snmpNotifyFilterProfileTable
フィルタープロファイル名をターゲットパラメータ名に関連付けます。各エントリには以下が含まれます:
- snmpTargetParamsName: インデックス、snmpTargetParamsTableを参照
- snmpNotifyFilterProfileName: フィルタープロファイルの名前
- snmpNotifyFilterProfileStorType: ストレージタイプ
- snmpNotifyFilterProfileRowStatus: 行ステータス
snmpNotifyFilterTable
どの通知をどの管理ターゲットに送信するかを決定するために使用されるフィルタールールを定義します。各エントリには以下が含まれます:
- snmpNotifyFilterProfileName: インデックス、フィルタープロファイルを参照
- snmpNotifyFilterSubtree: インデックス、サブツリーのオブジェクト識別子
- snmpNotifyFilterMask: OID一致のためのビットマスク
- snmpNotifyFilterType: included(1)またはexcluded(2)
- snmpNotifyFilterStorageType: ストレージタイプ
- snmpNotifyFilterRowStatus: 行ステータス
4.3. プロキシMIBモジュール
SNMP-PROXY-MIBモジュールには、プロキシフォワーダアプリケーションが使用する変換を定義するためのオブジェクトが含まれています。単一のテーブルで構成されています。
4.3.1. 構造の概要
SNMP-PROXY-MIBは以下を提供します:
- snmpProxyTable: SNMPメッセージのプロキシ転送のための変換ルールを定義します。
4.3.2. SNMP-PROXY-MIBの主要なオブジェクト
snmpProxyTable
プロキシフォワーダが使用する変換パラメータを定義します。各エントリには以下が含まれます:
- snmpProxyName: ローカル一意識別子
- snmpProxyType: プロキシ操作のタイプ:
- read(1): 読み取りクラスPDUを転送
- write(2): 書き込みクラスPDUを転送
- trap(3): trap通知を転送
- inform(4): inform通知を転送
- snmpProxyContextEngineID: 一致する受信コンテキストエンジンID
- snmpProxyContextName: 一致する受信コンテキスト名
- snmpProxyTargetParamsIn: 受信メッセージパラメータのsnmpTargetParamsTableへの参照
- snmpProxySingleTargetOut: 単一ターゲット転送の場合、ターゲットアドレス名を指定
- snmpProxyMultipleTargetOut: 複数ターゲット転送の場合、タグ値を指定
- snmpProxyStorageType: このエントリのストレージタイプ
- snmpProxyRowStatus: エントリを作成/削除するための行ステータス
4.4. 適合性と準拠
各MIBモジュールには以下が含まれます:
- オブジェクトグループ: 関連するオブジェクトの論理的なグループ化
- 準拠ステートメント: 適合性のために実装する必要があるオブジェクトを定義
- モジュール準拠: 最小実装要件を指定
SNMP-TARGET-MIB準拠
実装は以下をサポートする必要があります:
- snmpTargetBasicGroup: 基本的なターゲットアドレスとパラメータオブジェクト
- snmpTargetResponseGroup: 応答/再試行処理のためのオブジェクト(コマンドジェネレータと通知オリジネータ用)
SNMP-NOTIFICATION-MIB準拠
実装は以下をサポートする必要があります:
- snmpNotifyGroup: 基本的な通知選択オブジェクト
- snmpNotifyFilterGroup: 通知フィルタリングオブジェクト(オプションだが推奨)
SNMP-PROXY-MIB準拠
実装は以下をサポートする必要があります:
- snmpProxyGroup: すべてのプロキシ変換オブジェクト
4.5. 使用パターン
パターン1: 簡単な通知構成
管理ステーションにtrap通知を送信するには:
- 管理ステーションのアドレスを指定するsnmpTargetAddrTableにエントリを作成
- SNMPバージョンとセキュリティパラメータを指定するsnmpTargetParamsTableにエントリを作成
- snmpTargetAddrTagListと一致するタグを持つsnmpNotifyTableにエントリを作成
パターン2: フィルタリングされた通知
管理ステーションに特定の通知のみを送信するには:
- パターン1を構成(簡単な通知構成)
- フィルタープロファイルをターゲットパラメータに関連付けるsnmpNotifyFilterProfileTableにエントリを作成
- 含める/除外するOIDサブツリーを定義するsnmpNotifyFilterTableにエントリを作成
パターン3: プロキシ転送
プロキシを介してリクエストを転送するには:
- ターゲットSNMPエンジンのsnmpTargetAddrTableとsnmpTargetParamsTableにエントリを作成
- 以下を指定するsnmpProxyTableにエントリを作成:
- 一致する受信コンテキストとセキュリティパラメータ
- 送信ターゲットアドレス(snmpProxySingleTargetOutを介して)
- プロキシタイプ(read、write、trap、またはinform)
4.6. セキュリティとアクセス制御
この文書で定義されているMIBモジュールには、MAX-ACCESSがread-writeおよび/またはread-createのオブジェクトが含まれています。これらのオブジェクトを設定すると、以下が可能になります:
- SNMPトラフィックを未承認の宛先にリダイレクト
- セキュリティパラメータを変更し、セキュリティを弱める可能性がある
- フィルタリングルールを変更し、機密情報を開示する可能性がある
推奨事項:
- RFC 3415で定義されているVACM(ビューベースアクセス制御モデル)を使用して、これらのMIBオブジェクトへのアクセスを制限
- 承認されたセキュリティ管理者のみがこれらのオブジェクトへの書き込みアクセスを持つ
- これらのオブジェクトを変更する際にSNMPv3の認証と暗号化(authPriv)を使用
- これらのオブジェクトへの変更を監査目的で記録
4.7. 実装に関する注意事項
ストレージタイプ
各テーブルの*StorageTypeオブジェクトにより、実装は構成の永続性を制御できます:
- volatile: 再起動時に構成が失われる(デフォルト)
- nonVolatile: 再起動後も構成が保持される
- permanent: 構成を削除できない
- readOnly: 構成は読み取り専用(SNMPを介して変更できない)
- other: 実装固有のストレージ
行ステータス
*RowStatusオブジェクトは、標準のRowStatusテキスト規則(RFC 2579)に従います:
- createAndGoを使用して、1ステップでエントリを作成してアクティブ化
- createAndWaitを使用して、エントリを作成し、アクティブ化前に他の列を設定
- activeを使用して、エントリが動作可能であることを示す
- notInServiceを使用して、エントリを一時的に非アクティブ化
- notReady(読み取り専用)を使用して、エントリをまだアクティブにできないことを示す
- destroyを使用して、エントリを削除
インデックスに関する考慮事項
IMPLIEDキーワードは、いくつかのテーブルインデックス(例:snmpTargetAddrName)で使用されます。これは以下を意味します:
- インデックスの長さはOIDで個別にエンコードされない
- インデックス文字列は可変長で、OIDの残りを消費する
- テーブルごとに1つのIMPLIEDインデックスのみが表示でき、それは最後でなければならない
この設計上の選択により、個別の長さエンコーディングのオーバーヘッドなしに、より長く、より記述的な名前が可能になります。