SNMP について
簡易ネットワーク管理プロトコル(SNMP)は、SNMP マネージャとエージェント間の通信用メッセージ フォーマットを提供する、アプリケーションレイヤ プロトコルです。SNMP では、ネットワーク内のデバイスのモニタリングと管理に使用する標準フレームワークと共通言語が提供されます。
SNMP 機能の概要
SNMP フレームワークは 3 つの部分で構成されます。
-
SNMP マネージャ:SNMP を使用してネットワーク デバイスのアクティビティを制御し、モニタリングするシステム
-
SNMP エージェント:デバイスのデータを維持し、必要に応じてこれらのデータを管理システムに報告する、管理対象デバイス内のソフトウェア コンポーネント。Cisco Nexus デバイスはエージェントおよび MIB をサポートします。SNMP エージェントをイネーブルにするには、マネージャとエージェントの関係を定義する必要があります。
-
MIB(Management Information Base; 管理情報ベース):SNMP エージェントの管理対象オブジェクトの集まり
SNMP は、RFC 3411 ~ 3418 で規定されています。
デバイスは、SNMPv1、SNMPv2c、および SNMPv3 をサポートします。SNMPv1 および SNMPv2c はどちらも、コミュニティベース形式のセキュリティを使用します。
Cisco NX-OS は IPv6 による SNMP をサポートしています。
SNMP 通知
SNMP の重要な機能の 1 つは、SNMP エージェントから通知を生成できることです。これらの通知では、要求を SNMP マネージャから送信する必要はありません。通知は、不正なユーザ認証、再起動、接続の切断、隣接ルータとの接続の切断、その他の重要なイベントを表示します。
Cisco NX-OS は、トラップまたはインフォームとして SNMP 通知を生成します。トラップは、エージェントからホスト レシーバ テーブルで指定された SNMP マネージャに送信される、非同期の非確認応答メッセージです。インフォームは、SNMP エージェントから SNMP マネージャに送信される非同期メッセージで、マネージャは受信したという確認応答が必要です。
トラップの信頼性はインフォームより低くなります。SNMP マネージャはトラップを受信しても確認応答(ACK)を送信しないからです。デバイスは、トラップが受信されたかどうかを判断できません。インフォーム要求を受信する SNMP マネージャは、SNMP 応答プロトコル データ ユニット(PDU)でメッセージの受信を確認応答します。デバイスが応答を受信しない場合、インフォーム要求を再び送信できます。
複数のホスト レシーバーに通知を送信するよう Cisco NX-OS を設定できます。
次の表は、デフォルトで有効になっている SNMP トラップを示します。
Trap Type | 説明 |
---|---|
全体 | : coldStart |
エンティティ | : entity_fan_status_change |
エンティティ | : entity_mib_change |
エンティティ | : entity_module_status_change |
エンティティ | : entity_module_inserted |
エンティティ | : entity_module_removed |
エンティティ | : entity_power_out_change |
エンティティ | : entity_power_status_change |
エンティティ | : entity_unrecognised_module |
リンク | : cErrDisableInterfaceEventRev1 |
リンク | : cieLinkDown |
リンク | : cieLinkUp |
リンク | : cmn-mac-move-notification |
リンク | : delayed-link-state-change |
リンク | : extended-linkDown |
リンク | : extended-linkUp |
リンク | : linkDown |
リンク | : linkUp |
rf | : redundancy_framework |
ライセンス | : notify-license-expiry |
ライセンス | : notify-no-license-for-feature |
ライセンス | : notify-licensefile-missing |
ライセンス | : notify-license-expiry-warning |
upgrade | : UpgradeOpNotifyOnCompletion |
upgrade | : UpgradeJobStatusNotify |
エンティティ | : entity_sensor |
rmon | : fallingAlarm |
rmon | : hcRisingAlarm |
rmon | : hcFallingAlarm |
rmon | : risingAlarm |
SNMPv3
SNMPv3 は、ネットワーク経由のフレームの認証と暗号化を組み合わせることによって、デバイスへのセキュア アクセスを実現します。SNMPv3 が提供するセキュリティ機能は次のとおりです。
-
メッセージの完全性:パケットが伝送中に改ざんされていないことを保証します。
-
認証:メッセージのソースが有効かどうかを判別します。
-
暗号化:許可されていないソースにより判読されないように、パケットの内容のスクランブルを行います。
SNMPv3 では、セキュリティ モデルとセキュリティ レベルの両方が提供されています。セキュリティ モデルは、ユーザおよびユーザが属するロールを設定する認証方式です。セキュリティ レベルとは、セキュリティ モデル内で許可されるセキュリティのレベルです。セキュリティ モデルとセキュリティ レベルの組み合わせにより、SNMP パケット処理中に採用されるセキュリティ メカニズムが決まります。
SNMPv1、SNMPv2、SNMPv3 のセキュリティ モデルおよびセキュリティ レベル
セキュリティ レベルは、SNMP メッセージを開示から保護する必要があるかどうか、およびメッセージを認証するかどうか判断します。セキュリティ モデル内のさまざまなセキュリティ レベルは、次のとおりです。
-
noAuthNoPriv:認証または暗号化を実行しないセキュリティ レベル。このレベルは、SNMPv3 ではサポートされていません。
-
authNoPriv:認証は実行するが、暗号化を実行しないセキュリティ レベル。
-
authPriv:認証と暗号化両方を実行するセキュリティ レベル。
SNMPv1、SNMPv2c、および SNMPv3 の 3 つのセキュリティ モデルを使用できます。セキュリティ モデルとセキュリティ レベルの組み合わせにより、SNMP メッセージの処理中に適用されるセキュリティ メカニズムが決まります。次の表に、セキュリティ モデルとレベルの組み合わせの意味を示します。
モデル |
レベル |
認証 |
暗号化 |
結果 |
---|---|---|---|---|
v1 |
noAuthNoPriv |
コミュニティ ストリング |
なし |
コミュニティ ストリングの照合を使用して認証します。 |
v2c |
noAuthNoPriv |
コミュニティ ストリング |
なし |
コミュニティ ストリングの照合を使用して認証します。 |
v3 |
authNoPriv |
HMAC-MD5、HMAC-SHA、または SHA-256 |
未対応 |
Hash-Based Message Authentication Code(HMAC)メッセージ ダイジェスト 5(MD5)アルゴリズムまたは HMAC Secure Hash Algorithm(SHA)アルゴリズムに基づいて認証します。 |
v3 |
authPriv |
HMAC-MD5、HMAC-SHA、または SHA-256 |
DES |
HMAC-MD5 アルゴリズムまたは HMAC-SHA アルゴリズムに基づいて認証します。データ暗号規格(DES)の 56 ビット暗号化、および暗号ブロック連鎖(CBC)DES(DES-56)標準に基づいた認証を提供します。 |
ユーザベースのセキュリティ モデル
SNMPv3 ユーザベース セキュリティ モデル(USM)は SNMP メッセージレベル セキュリティを参照し、次のサービスを提供します。
-
メッセージの完全性:メッセージが不正な方法で変更または破壊されず、データ シーケンスが悪意なく起こり得る範囲を超えて変更されていないことを保証します。
-
メッセージ発信元の認証:受信データを発信したユーザのアイデンティティが確認されたことを保証します。
-
メッセージの機密性:情報が使用不可であること、または不正なユーザ、エンティティ、またはプロセスに開示されないことを保証します。
SNMPv3 は、設定済みユーザによる管理動作のみを許可し、SNMP メッセージを暗号化します。
Cisco NX-OS は、SNMPv3 に 3 つの認証プロトコルを使用します。
-
HMAC-MD5-96 認証プロトコル
-
HMAC-SHA-96 認証プロトコル
-
SHA-256 認証プロトコル
Cisco NX-OS リリース 9.3(7) 以降では、SNMPv3 に HMAC-SHA-256 認証プロトコルが使用されます。
Note |
SHA-256 SNMP ユーザがスイッチで設定されている場合、ISSD は install all コマンドを使用することを推奨します。そうしないと、設定が失われます。 |
Cisco NX-OS は、SNMPv3 メッセージ暗号化用プライバシー プロトコルの 1 つとして、Advanced Encryption Standard(AES)を使用し、RFC 3826 に準拠します。
priv オプションで、SNMP セキュリティ暗号化方式として、DES または 128 ビット AES 暗号化を選択できます。priv オプションおよび aes-128 トークンは、128 ビットの AES キーを生成するためのプライバシ パスワードであることを示します。AES のプライバシー パスワードは最小で 8 文字です。パスフレーズをクリア テキストで指定する場合は、大文字と小文字を区別して、最大 64 文字の英数字を指定できます。ローカライズド キーを使用する場合は、最大 130 文字を指定できます。
Note |
外部の AAA サーバを使用して SNMPv3 を使う場合、外部 AAA サーバのユーザー設定でプライバシー プロトコルに AES を指定する必要があります。 |
CLI および SNMP ユーザの同期
SNMPv3 ユーザ管理は、Access Authentication and Accounting(AAA)サーバ レベルで集中化できます。この中央集中型ユーザ管理により、Cisco NX-OSの SNMP エージェントは AAA サーバのユーザ認証サービスを利用できます。ユーザ認証が検証されると、SNMP PDU の処理が進行します。AAA サーバはユーザ グループ名の格納にも使用されます。SNMP はグループ名を使用して、スイッチでローカルに使用できるアクセス ポリシーまたはロール ポリシーを適用します。
ユーザ グループ、ロール、またはパスワードの設定が変更されると、SNMP と AAA の両方のデータベースが同期化されます。
Cisco NX-OS は、次のようにユーザ設定を同期化します。
-
snmp-server user コマンドで指定された認証パスフレーズは、CLI ユーザのパスワードになります。
-
username コマンドで指定されたパスワードが SNMP ユーザの認証およびプライバシー パスフレーズになります。
-
SNMP または CLI を使用してユーザを作成または削除すると、SNMP と CLI の両方でユーザが作成または削除されます。
-
ユーザとロールの対応関係の変更は、SNMP と CLI で同期化されます。
-
CLI から行ったロール変更(削除または変更)は、SNMP と同期します。
Note |
パスフレーズまたはパスワードをローカライズしたキーおよび暗号形式で設定した場合、Cisco NX-OS はユーザ情報(パスワードやロールなど)を同期させません。 Cisco NX-OS はデフォルトで、同期したユーザ設定を 60 分間維持します。 |
グループベースの SNMP アクセス
Note |
グループが業界全体で使用されている標準 SNMP 用語なので、この SNMP の項では、ロールのことをグループと言います。 |
SNMP アクセス権は、グループ別に編成されます。SNMP 内の各グループは、CLI を使用する場合のロールに似ています。各グループは読み取りアクセス権または読み取りと書き込みアクセス権を指定して定義します。
ユーザ名が作成され、ユーザのロールが管理者によって設定され、ユーザがそのロールに追加されていれば、そのユーザはエージェントとの通信を開始できます。
SNMP および Embedded Event Manager
Embedded Event Manager(EEM)機能は、SNMP MIB オブジェクトを含むイベントをモニタし、これらのイベントに基づいてアクションを開始します。SNMP 通知の送信もアクションの 1 つです。EEM は SNMP 通知として、CISCO-EMBEDDED-EVENT-MGR-MIB の cEventMgrPolicyEvent を送信します。
マルチ インスタンス サポート
デバイスは、プロトコル インスタンスや仮想ルーティングおよびフォワーディング(VRF)インスタンスなどの論理ネットワーク エンティティの複数のインスタンスをサポートできます。大部分の既存 MIB は、これら複数の論理ネットワーク エンティティを識別できません。たとえば、元々の OSPF-MIB ではデバイス上のプロトコル インスタンスが 1 つであることが前提になりますが、現在はデバイス上で複数の OSPF インスタンスを設定できます。
SNMPv3 ではコンテキストを使用して、複数のインスタンスを識別します。SNMP コンテキストは管理情報のコレクションであり、SNMP エージェントを通じてアクセスできます。デバイスは、さまざまな論理ネットワーク エンティティの複数のコンテキストをサポートできます。SNMP コンテキストによって、SNMP マネージャはさまざまな論理ネットワーク エンティティに対応するデバイス上でサポートされる、MIB モジュールの複数のインスタンスの 1 つにアクセスできます。
Cisco NX-OS は、SNMP コンテキストと論理ネットワーク エンティティ間のマッピングのために、CISCO-CONTEXT-MAPPING-MIB をサポートします。SNMP コンテキストは VRF、プロトコル インスタンス、またはトポロジに関連付けることができます。
SNMPv3 は、SNMPv3 PDU の contextName フィールドでコンテキストをサポートします。この contextName フィールドを特定のプロトコル インスタンスまたは VRF にマッピングできます。
SNMPv2c の場合は、SNMP-COMMUNITY-MIB の snmpCommunityContextName MIB オブジェクトを使用して、SNMP コミュニティをコンテキストにマッピングできます(RFC 3584)。さらに CISCO-CONTEXT-MAPPING-MIB または CLI を使用すると、この snmpCommunityContextName を特定のプロトコル インスタンスまたは VRF にマッピングできます。
SNMP のハイ アベイラビリティ
Cisco NX-OS は、SNMP のステートレス リスタートをサポートします。リブートまたはスーパーバイザ スイッチオーバーの後、Cisco NX-OS は実行コンフィギュレーションを適用します。
SNMP の仮想化サポート
Cisco NX-OS は、SNMP のインスタンスを 1 つサポートします。SNMP は複数の MIB モジュール インスタンスをサポートし、それらを論理ネットワーク エンティティにマッピングします。
SNMP も VRF を認識します。特定の VRF を使用して、SNMP 通知ホスト レシーバに接続するように SNMP を設定できます。通知が発生した VRF に基づいて、SNMP ホスト レシーバへの通知をフィルタリングするように SNMP を設定することもできます。