5. 通知オリジネータにおける管理ターゲットの識別
通知オリジネータアプリケーションは、snmpTargetAddrTableとsnmpTargetParamsTableを使用して、通知を送信する必要がある管理ターゲットを識別し、通知を送信する際に使用するSNMPバージョンとセキュリティパラメータを決定します。
通知の生成をトリガーするイベントが発生すると、通知オリジネータは:
-
snmpNotifyTableを参照して、この通知に使用する必要がある通知タグを決定します。snmpNotifyTable内の各エントリは、タグ値を通知タイプ(trapまたはinform)に関連付けます。
-
通知タグを照合してsnmpTargetAddrTableからターゲットアドレスを選択します。snmpTargetAddrTable内の各エントリについて:
a. snmpTargetAddrTagListオブジェクトにはタグ値のリストが含まれています。
b. snmpTargetAddrTagList内のいずれかのタグ値がsnmpNotifyTableで指定されたタグと一致する場合、このターゲットアドレスが選択されます。
-
選択された各ターゲットアドレスのトランスポートパラメータを取得します:
a. snmpTargetAddrTDomainはトランスポートドメインを指定します(例:snmpUDPDomain、snmpTCPDomain)。
b. snmpTargetAddrTAddressはトランスポートアドレスを指定します(例:IPアドレスとポート)。
-
選択された各ターゲットアドレスのSNMPパラメータを取得します:
a. snmpTargetAddrParamsオブジェクトはsnmpTargetParamsTable内のエントリを参照します。
b. 参照されたsnmpTargetParamsTableエントリから、通知オリジネータは以下を取得します:
- snmpTargetParamsMPModel(メッセージ処理モデル)
- snmpTargetParamsSecurityModel(セキュリティモデル)
- snmpTargetParamsSecurityName(セキュリティ名)
- snmpTargetParamsSecurityLevel(セキュリティレベル)
-
取得したパラメータを使用して、選択された各管理ターゲットに通知を生成して送信します。
構成例
linkDown通知を送信する必要がある通知オリジネータを考えてみましょう。構成には以下が含まれる場合があります:
snmpNotifyTableエントリ:
- snmpNotifyName: "linkDownNotify"
- snmpNotifyTag: "criticalDevices"
- snmpNotifyType: trap(1)
snmpTargetAddrTableエントリ:
エントリ1:
- snmpTargetAddrName: "mgmtStation1"
- snmpTargetAddrTDomain: snmpUDPDomain
- snmpTargetAddrTAddress: 192.0.2.1:162
- snmpTargetAddrTagList: "criticalDevices monitoring"
- snmpTargetAddrParams: "snmpv3Params"
エントリ2:
- snmpTargetAddrName: "mgmtStation2"
- snmpTargetAddrTDomain: snmpUDPDomain
- snmpTargetAddrTAddress: 192.0.2.2:162
- snmpTargetAddrTagList: "criticalDevices"
- snmpTargetAddrParams: "snmpv2cParams"
snmpTargetParamsTableエントリ:
エントリsnmpv3Params:
- snmpTargetParamsMPModel: 3 (SNMPv3)
- snmpTargetParamsSecurityModel: 3 (USM)
- snmpTargetParamsSecurityName: "operator"
- snmpTargetParamsSecurityLevel: authPriv(3)
エントリsnmpv2cParams:
- snmpTargetParamsMPModel: 1 (SNMPv2c)
- snmpTargetParamsSecurityModel: 2 (SNMPv2c)
- snmpTargetParamsSecurityName: "public"
- snmpTargetParamsSecurityLevel: noAuthNoPriv(1)
linkDownイベントが発生すると:
-
通知オリジネータはsnmpNotifyTableを参照し、「criticalDevices」タグを持つ通知をtrapとして送信する必要があることを確認します。
-
snmpTargetAddrTableをスキャンし、タグリストに「criticalDevices」を含む2つのエントリを見つけます:「mgmtStation1」と「mgmtStation2」。
-
mgmtStation1の場合、USMセキュリティ、authPrivレベル、およびセキュリティ名「operator」を使用して、192.0.2.1:162にSNMPv3 trapを送信します。
-
mgmtStation2の場合、コミュニティ文字列「public」を使用して、192.0.2.2:162にSNMPv2c trapを送信します。
Informリクエストのタイムアウトと再試行
通知タイプがinform(InformRequest-PDU)の場合、snmpTargetAddrTableはタイムアウトと再試行パラメータも提供します:
-
snmpTargetAddrTimeout: リクエストをタイムアウトと見なす前に応答を待機する時間(100分の1秒単位)を指定します。
-
snmpTargetAddrRetryCount: 応答が受信されない場合にinformリクエストの送信を再試行する回数を指定します。
通知オリジネータは、これらのパラメータを使用して、informリクエストの信頼性の高い通知配信を実装します。
たとえば、snmpTargetAddrTimeoutが1500(15秒)で、snmpTargetAddrRetryCountが3の場合、通知オリジネータは:
- informリクエストを送信します。
- 応答を受信するために最大15秒待機します。
- 応答が受信されない場合、最大3回再試行します。
- 合計4回の試行(初期試行+3回の再試行)または60秒(4×15秒)の後に諦めます。先に到達した方が優先されます。
管理ターゲット識別のセキュリティに関する考慮事項
通知の管理ターゲットを識別する際:
-
構成の認証: 管理ターゲットの構成(snmpTargetAddrTable、snmpTargetParamsTable、およびsnmpNotifyTable)は、未承認の変更を防ぐためにアクセス制御によって保護する必要があります。
-
機密情報: セキュリティ名、特にSNMPv1またはSNMPv2c(コミュニティ文字列)と一緒に使用される場合は、開示から保護する必要があります。snmpTargetParamsTableは、承認されたユーザーのみがアクセスできる必要があります。
-
通知フィルタリング: 適切な通知フィルタリング(次のセクションで説明)がない場合、構成されたすべての管理ターゲットがすべての通知を受信し、機密情報が未承認の受信者に開示される可能性があります。
-
タグの選択: タグを使用すると、管理ターゲットを柔軟にグループ化できますが、誤った方向への通知を防ぐためにタグが正しく適用されるように注意する必要があります。