SNMP の概要
簡易ネットワーク管理プロトコル(SNMP)は、SNMP マネージャとエージェント間の通信用メッセージ フォーマットを提供する、アプリケーションレイヤ プロトコルです。SNMP はネットワーク デバイスのモニタリングや管理のための標準化されたフレームワークと共通言語を提供します。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
簡易ネットワーク管理プロトコル(SNMP)は、SNMP マネージャとエージェント間の通信用メッセージ フォーマットを提供する、アプリケーションレイヤ プロトコルです。SNMP はネットワーク デバイスのモニタリングや管理のための標準化されたフレームワークと共通言語を提供します。
SNMP フレームワークは 3 つの部分で構成されます。
SNMP マネージャ:SNMP を使用してネットワーク デバイスのアクティビティを制御し、モニタリングするシステム
[SNMP エージェント(SNMP agent)]:Cisco UCS 内のソフトウェア コンポーネントであり、Cisco UCS のデータを維持し、必要に応じて SNMP マネージャにデータをレポートする管理対象デバイスです。Cisco UCS には、エージェントと MIB 収集が含まれます。SNMP エージェントを有効にしてマネージャとエージェント間のリレーションシップを作成するには、Cisco UCS Manager で SNMP を有効にして設定します。
管理情報ベース:SNMP エージェントの一連の管理対象オブジェクト。Cisco UCS リリース 1.4(1) 以降では、以前よりも多くの MIB をサポートしています。
Cisco UCS は、SNMPv1、SNMPv2c、および SNMPv3 をサポートします。SNMPv1 および SNMPv2c はどちらも、コミュニティベース形式のセキュリティを使用します。SNMP は次のように定義されています。
RFC 3410(http://tools.ietf.org/html/rfc3410)
RFC 3411(http://tools.ietf.org/html/rfc3411)
RFC 3412(http://tools.ietf.org/html/rfc3412)
RFC 3413(http://tools.ietf.org/html/rfc3413)
RFC 3414(http://tools.ietf.org/html/rfc3414)
RFC 3415(http://tools.ietf.org/html/rfc3415)
RFC 3416(http://tools.ietf.org/html/rfc3416)
RFC 3417(http://tools.ietf.org/html/rfc3417)
RFC 3418(http://tools.ietf.org/html/rfc3418)
RFC 3584(http://tools.ietf.org/html/rfc3584)
SNMP の重要な機能の 1 つは、SNMP エージェントから通知を生成できることです。これらの通知では、要求を SNMP マネージャから送信する必要はありません。通知は、不正なユーザ認証、再起動、接続の切断、隣接ルータとの接続の切断、その他の重要なイベントを表示します。
Cisco UCS Manager は、トラップまたはインフォームとして SNMP 通知を生成します。SNMP マネージャはトラップ受信時に確認応答を送信せず、Cisco UCS Manager はトラップが受信されたかどうかを確認できないため、トラップの信頼性はインフォームよりも低くなります。インフォーム要求を受信する SNMP マネージャは、SNMP 応答プロトコル データ ユニット(PDU)でメッセージの受信を確認します。Cisco UCS Manager が PDU を受信しない場合、インフォーム要求を再送できます。
SNMPv1、SNMPv2c、および SNMPv3 はそれぞれ別のセキュリティ モデルを表します。セキュリティ モデルと選択したセキュリティ レベルの組み合わせにより、SNMP メッセージの処理中に適用されるセキュリティ メカニズムが決まります。
セキュリティ レベルは、SNMP トラップに関連付けられているメッセージを表示するために必要な特権を決定します。権限のレベルによって、メッセージが情報開示の保護を必要とするか、またはメッセージが認証されるかが決定されます。サポートされるセキュリティ レベルは、実装されているセキュリティ モデルによって異なります。SNMP セキュリティ レベルは、次の権限の 1 つ以上をサポートします。
noAuthNoPriv:認証なし、暗号化なし
authNoPriv:認証あり、暗号化なし
authPriv:認証あり、暗号化あり
SNMPv3 では、セキュリティ モデルとセキュリティ レベルの両方が提供されています。セキュリティ モデルは、ユーザおよびユーザが属するロールを設定する認証方式です。セキュリティ レベルとは、セキュリティ モデル内で許可されるセキュリティのレベルです。セキュリティ モデルとセキュリティ レベルの組み合わせにより、SNMP パケット処理中に採用されるセキュリティ メカニズムが決まります。
次の表に、セキュリティ モデルとレベルの組み合わせを示します。
モデル |
レベル |
認証 |
暗号化 |
結果 |
---|---|---|---|---|
v1 |
noAuthNoPriv |
コミュニティ ストリング |
なし |
コミュニティ ストリングの照合を使用して認証します。 |
v2c |
noAuthNoPriv |
コミュニティ ストリング |
なし |
コミュニティ ストリングの照合を使用して認証します。 |
v3 |
noAuthNoPriv |
ユーザ名 |
未対応 |
ユーザ名の照合を使用して認証します。 |
v3 |
authNoPriv |
HMAC-MD5 または HMAC-SHA |
未対応 |
Hash-Based Message Authentication Code(HMAC)メッセージ ダイジェスト 5(MD5)アルゴリズムまたは HMAC Secure Hash Algorithm(SHA)アルゴリズムに基づいて認証します。 |
v3 |
authPriv |
HMAC-MD5 または HMAC-SHA |
DES |
HMAC-MD5 アルゴリズムまたは HMAC-SHA アルゴリズムに基づいて認証します。データ暗号規格(DES)の 56 ビット暗号化、および暗号ブロック連鎖(CBC)DES(DES-56)標準に基づいた認証を提供します。 |
SNMPv3 は、ネットワーク経由のフレームの認証と暗号化を組み合わせることによって、デバイスへのセキュア アクセスを実現します。SNMPv3 は、管理操作および暗号化 SNMP メッセージを実行するために、設定されているユーザーのみを承認します。SNMPv3 ユーザーベース セキュリティ モデル(USM)は SNMP メッセージレベル セキュリティを参照し、次のサービスを提供します。
メッセージの完全性:メッセージが不正な方法で変更または破壊されていないこと、悪意なく起こり得る範囲を超えてデータ シーケンスが変更されていないことを保証します。
メッセージの発信元の認証:メッセージ送信者の ID を確認できることを保証します。
メッセージの機密性および暗号化:不正なユーザ、エンティティ、プロセスに対して情報を利用不可にしたり開示しないようにします。
Cisco UCS は、SNMP に対して以下のサポートを提供します。
Cisco UCS は、MIB への読み取り専用アクセスをサポートします。
Cisco UCS で使用可能な特定の MIB およびその入手先については、B シリーズ サーバーは http://www.cisco.com/en/US/docs/unified_computing/ucs/sw/mib/b-series/b_UCS_MIBRef.html を、C シリーズは http://www.cisco.com/en/US/docs/unified_computing/ucs/sw/mib/c-series/b_UCS_Standalone_C-Series_MIBRef.html を参照してください。
Cisco UCS は、SNMPv3 ユーザーに次の認証プロトコルをサポートします。
HMAC-MD5-96(MD5)
HMAC-SHA-96(SHA)
Cisco UCS は、SNMPv3 メッセージ暗号化用のプライバシー プロトコルの 1 つとして Advanced Encryption Standard(AES)を使用し、RFC 3826 に準拠しています。
プライバシー パスワード(priv オプション)では、SNMP セキュリティ暗号化方式として DES または 128 ビット AES を選択できます。AES-128 の設定を有効にして、SNMPv3 ユーザー用のプライバシー パスワードを含めると、Cisco UCS Manager はそのプライバシー パスワードを使用して 128 ビット AES キーを生成します。AES priv パスワードは、8 文字以上にします。パスフレーズをクリア テキストで指定する場合、最大 64 文字を指定できます。
SNMP の設定
Cisco UCS ドメイン からの SNMP メッセージには、システム名ではなくファブリック インターコネクト名が表示されます。
Command or Action | Purpose | |
---|---|---|
Step 1 |
UCS-A# scope monitoring |
モニターリング モードを開始します。 |
Step 2 |
UCS-A /monitoring # enable snmp |
SNMP を有効にします。 |
Step 3 |
UCS-A /monitoring # set snmp community |
snmp コミュニティ モードを開始します。 |
Step 4 |
UCS-A /monitoring # Enter a snmp community: community-name |
SNMP コミュニティを指定します。パスワードとしてコミュニティ名を使用します。コミュニティ名は、最大 32 文字の英数字で指定できます。 |
Step 5 |
UCS-A /monitoring # set snmp syscontact system-contact-name |
SNMP 担当者のシステムの連絡先を指定します。システムの連絡先名(電子メール アドレスや、名前と電話番号など)は、最大 255 文字の英数字で指定できます。 |
Step 6 |
UCS-A /monitoring # set snmp syslocation system-location-name |
SNMP エージェント(サーバー)が実行されるホストの場所を指定します。システム ロケーション名は、最大 512 文字の英数字で指定できます。 |
Step 7 |
UCS-A /monitoring # commit-buffer |
トランザクションをシステムの設定にコミットします。 |
次に、SNMP を有効にし、SnmpCommSystem2 という名前の SNMP コミュニティを設定し、contactperson という名前のシステム連絡先を設定し、systemlocation という名前の連絡先ロケーションを設定し、トランザクションをコミットする例を示します。
UCS-A# scope monitoring
UCS-A /monitoring # enable snmp
UCS-A /monitoring* # set snmp community
UCS-A /monitoring* # Enter a snmp community: SnmpCommSystem2
UCS-A /monitoring* # set snmp syscontact contactperson1
UCS-A /monitoring* # set snmp syslocation systemlocation
UCS-A /monitoring* # commit-buffer
UCS-A /monitoring #
SNMP トラップおよびユーザを作成します。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
UCS-A# scope monitoring |
モニターリング モードを開始します。 |
ステップ 2 |
UCS-A /monitoring # enable snmp |
SNMP を有効にします。 |
ステップ 3 |
UCS-A /monitoring # create snmp-trap {hostname | ip-addr | ip6-addr} |
指定したホスト名、IPv4 アドレス、または IPv6 アドレスで SNMP トラップ ホストを作成します。 ホスト名は IPv4 アドレスの完全修飾ドメイン名にすることができます。 |
ステップ 4 |
UCS-A /monitoring/snmp-trap # set community community-name |
SNMP トラップに使用する SNMP コミュニティ名を指定します。 |
ステップ 5 |
UCS-A /monitoring/snmp-trap # set port port-num |
SNMP トラップに使用するポートを指定します。 |
ステップ 6 |
UCS-A /monitoring/snmp-trap # set version {v1 | v2c | v3} |
トラップに使用する SNMP のバージョンとモデルを指定します。 |
ステップ 7 |
(任意) UCS-A /monitoring/snmp-trap # set notificationtype {traps | informs} |
(任意)
送信するトラップのタイプ。バージョンとして v2c または v3 を選択した場合、以下の可能性があり得ます。
|
ステップ 8 |
(任意) UCS-A /monitoring/snmp-trap # set v3 privilege {auth | noauth | priv} |
(任意)
バージョンに [V3] を選択した場合、トラップに関連付けられる権限は次のいずれかになります。
|
ステップ 9 |
UCS-A /monitoring/snmp-trap # commit-buffer |
トランザクションをシステムの設定にコミットします。 |
次の例は、SNMP を有効にし、IPv4 アドレスを使用して SNMP トラップを作成し、トラップがポート 2 で SnmpCommSystem2 コミュニティを使用するよう指定し、バージョンを v3 に設定し、通知タイプを traps に設定し、v3 権限を priv に設定し、トランザクションをコミットします。
UCS-A# scope monitoring
UCS-A /monitoring # enable snmp
UCS-A /monitoring* # create snmp-trap 100.10.111.112
UCS-A /monitoring/snmp-trap* # set community SnmpCommSystem2
UCS-A /monitoring/snmp-trap* # set port 2
UCS-A /monitoring/snmp-trap* # set version v3
UCS-A /monitoring/snmp-trap* # set notificationtype traps
UCS-A /monitoring/snmp-trap* # set v3 privilege priv
UCS-A /monitoring/snmp-trap* # commit-buffer
UCS-A /monitoring/snmp-trap #
次の例は、SNMP をイネーブルにし、IPv6 アドレスを使用して SNMP トラップを作成し、トラップがポート 2 で SnmpCommSystem3 コミュニティを使用するよう指定し、バージョンを v3 に設定し、通知タイプを traps に設定し、v3 権限を priv に設定し、トランザクションをコミットします。
UCS-A# scope monitoring
UCS-A /monitoring # enable snmp
UCS-A /monitoring* # create snmp-trap 2001::1
UCS-A /monitoring/snmp-trap* # set community SnmpCommSystem3
UCS-A /monitoring/snmp-trap* # set port 2
UCS-A /monitoring/snmp-trap* # set version v3
UCS-A /monitoring/snmp-trap* # set notificationtype traps
UCS-A /monitoring/snmp-trap* # set v3 privilege priv
UCS-A /monitoring/snmp-trap* # commit-buffer
UCS-A /monitoring/snmp-trap #
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
UCS-A# scope monitoring |
モニターリング モードを開始します。 |
ステップ 2 |
UCS-A /monitoring # delete snmp-trap {hostname | ip-addr} |
指定したホスト名または IP アドレスの指定した SNMP トラップ ホストを削除します。 |
ステップ 3 |
UCS-A /monitoring # commit-buffer |
トランザクションをシステムの設定にコミットします。 |
次に、IP アドレス 192.168.100.112 で SNMP トラップを削除し、トランザクションをコミットする例を示します。
UCS-A# scope monitoring
UCS-A /monitoring # delete snmp-trap 192.168.100.112
UCS-A /monitoring* # commit-buffer
UCS-A /monitoring #
ソフトウェアまたはシステムの物理構成を変更せずに、テスト SNMP トラップを生成できます。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
connect nxos |
NX-OS オペレーティング システム ソフトウェアに接続します。 |
ステップ 2 |
(nxos)# test pfm snmp test-trap ? |
テスト トラップ オプションのリストを返します。 |
ステップ 3 |
(nxos)# test pfm snmp test-trap{fan | powersupply | temp_sensor} |
テスト SNMP トラップを生成します。
|
NX-OS コマンドの実行中に、ファブリック インターコネクトへの別の SSH セッションを開き、SNMP パケットがファブリック インターコネクトの管理インターフェイスから送信されることを確認できます。
完全なパケットの場合:
(nxos)# ethanalyzer local interface mgmt capture-filter "udp port 162" limit-captured-frames 0 detail
パケット ヘッダーだけをキャプチャするには
(nxos)# ethanalyzer local interface mgmt capture-filter "udp port 162" limit-captured-frames 0
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
UCS-A# scope monitoring |
モニターリング モードを開始します。 |
ステップ 2 |
UCS-A /monitoring # enable snmp |
SNMP を有効にします。 |
ステップ 3 |
UCS-A /monitoring # create snmp-user user-name |
指定された SNMPv3 ユーザーを作成します。 SNMP ユーザー名は、ローカル ユーザー名と同じにはできません。ローカル ユーザー名と一致しない SNMP ユーザー名を選択します。 |
ステップ 4 |
UCS-A /monitoring/snmp-user # set aes-128 {no | yes} |
AES-128 暗号化の使用を有効または無効にします。 |
ステップ 5 |
UCS-A /monitoring/snmp-user # set auth {md5 | sha} |
MD5 または DHA 認証の使用を指定します。 |
ステップ 6 |
UCS-A /monitoring/snmp-user # set password |
ユーザー パスワードを指定します。 set password コマンドを入力すると、パスワードの入力と確認を促すプロンプトが表示されます。 |
ステップ 7 |
UCS-A /monitoring/snmp-user # set priv-password |
ユーザー プライバシー パスワードを指定します。 set priv-password コマンドを入力すると、プライバシー パスワードの入力と確認を促すプロンプトが表示されます。 |
ステップ 8 |
UCS-A /monitoring/snmp-user # commit-buffer |
トランザクションをシステムの設定にコミットします。 |
次の例は、SNMP を有効にし、snmp-user14 という名前の SNMPv3 ユーザーを作成し、AES-128 暗号化を無効にし、MD5 認証の使用を指定し、パスワードおよびプライバシー パスワードを設定し、トランザクションをコミットします。
UCS-A# scope monitoring
UCS-A /monitoring # enable snmp
UCS-A /monitoring* # create snmp-user snmp-user14
UCS-A /monitoring/snmp-user* # set aes-128 no
UCS-A /monitoring/snmp-user* # set auth md5
UCS-A /monitoring/snmp-user* # set password
Enter a password:
Confirm the password:
UCS-A /monitoring/snmp-user* # set priv-password
Enter a password:
Confirm the password:
UCS-A /monitoring/snmp-user* # commit-buffer
UCS-A /monitoring/snmp-user #
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
UCS-A# scope monitoring |
モニターリング モードを開始します。 |
ステップ 2 |
UCS-A /monitoring # delete snmp-user user-name |
指定した SNMPv3 ユーザーを削除します。 |
ステップ 3 |
UCS-A /monitoring # commit-buffer |
トランザクションをシステムの設定にコミットします。 |
次に、snmp user14 という名前の SNMPv3 ユーザを削除し、トランザクションをコミットする例を示します。
UCS-A# scope monitoring
UCS-A /monitoring # delete snmp-user snmp-user14
UCS-A /monitoring* # commit-buffer
UCS-A /monitoring #