11.4. Use of Reports (レポートの使用)
11.4. Use of Reports (レポートの使用)
このセクションでは, USM がエラーやその他の情報を伝達するために SNMP レポート (Report) メカニズムをどのように使用するかについて説明します。
Report PDU (レポート PDU)
[RFC3416] で定義されているレポート PDU (Report PDU) は, メッセージ処理中に発生したエラーに関する情報を返すために USM によって使用されます。レポートは以下の点で特に重要です:
- ディスカバリー (Discovery) - 権威あるエンジンの snmpEngineID を返す
- 時刻同期 (Time synchronization) - 現在のエンジン時刻値を返す
- エラー通知 (Error notification) - 認証, プライバシー, またはその他のセキュリティ関連エラーを示す
USM Statistics (USM 統計情報)
USM は, さまざまなエラー状態を追跡するいくつかのカウンターを維持します。これらのカウンターは, MIB モジュールの usmStats グループで定義されています (セクション 5):
usmStatsUnsupportedSecLevels- サポートされていないセキュリティレベルのメッセージusmStatsNotInTimeWindows- タイムウィンドウ外のメッセージusmStatsUnknownUserNames- 未知のユーザー名を持つメッセージusmStatsUnknownEngineIDs- 未知のエンジン ID を持つメッセージusmStatsWrongDigests- 不正な認証ダイジェストを持つメッセージusmStatsDecryptionErrors- 復号化エラーを持つメッセージ
Report Generation (レポート生成)
USM が受信メッセージ処理中にエラーを検出すると, 次の内容を含むレポート-PDU を生成してもよいです (MAY):
- 適切な USM 統計カウンターオブジェクト
- そのカウンターの現在値
- 受信したメッセージから得られる関連 msgID (マッチング用)
重要な考慮事項:
- すべてのエラーに対して常にレポートが生成されるわけではありません。決定はセキュリティレベルとエラータイプに依存します。
- 特定のエラーのレポート (ディスカバリー用の
usmStatsNotInTimeWindowsなど) は建設的に使用されます。 - 無限ループを避けるため, 別のレポートに応答してレポートを送信してはなりません (MUST NOT)。
Security Levels for Reports (レポートのセキュリティレベル)
レポートは, エラーに応じて異なるセキュリティレベルで送信されます:
-
noAuthNoPriv - 以下の場合に使用:
- ディスカバリー (未知の engineID)
- 時刻同期の失敗
- 未知のユーザー名
-
リクエストと同じ - 以下の場合に使用:
- 認証失敗 (間違ったダイジェスト)
- 復号化エラー
- タイムウィンドウ外エラー (同期後)
Report Reception (レポート受信)
コマンドジェネレーターまたは通知発信者がレポート-PDU を受信したとき:
-
ディスカバリー応答: レポートに
usmStatsUnknownEngineIDsが含まれ, varBind に非ゼロの engineID が含まれている場合, アプリケーションは権威あるエンジンのアイデンティティを正常に発見しました。 -
時刻同期応答: レポートに
usmStatsNotInTimeWindowsが含まれている場合, アプリケーションは securityParameters からmsgAuthoritativeEngineBootsとmsgAuthoritativeEngineTimeを抽出してローカルキャッシュを更新する必要があります。 -
エラー指示: 他のレポートタイプの場合, アプリケーションはレポートを元のリクエストが指定された理由で失敗したことの指示として扱う必要があります。
Report Handling Best Practices (レポート処理のベストプラクティス)
-
レポートストームを避ける: 実装は, ネットワークの輻輳を防ぐためにレポート生成をレート制限または抑制する必要があります。
-
レポートをログに記録: セキュリティ関連のレポートは, 監査とセキュリティ分析のためにログに記録する必要があります。
-
ユーザーフィードバック: レポートが認証または承認の失敗を示す場合, アプリケーションはユーザーに明確なフィードバックを提供する必要があります。
-
タイムウィンドウエラー: 複数の
usmStatsNotInTimeWindowsレポートの後, 実装はクロックスキューを疑い, 手動介入が必要になる場合があります。
Privacy and Reports (プライバシーとレポート)
プライバシーを含むメッセージに応答して生成されるレポートには, 特別な処理が必要な場合があります:
- 復号化が失敗した場合, レポートは
usmStatsDecryptionErrorsを示す必要があります。 - 可能であれば, レポート自体は元のメッセージで要求されたものと同じセキュリティレベルで送信する必要があります。
- セキュリティレベルを決定できない場合 (重大なメッセージ破損のため), レポートは
noAuthNoPrivで送信する必要があります。