SNMP の設定

SNMP の概要

簡易ネットワーク管理プロトコル(SNMP)は、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 は次のように定義されています。

SNMP 通知

SNMP の重要な機能の 1 つは、SNMP エージェントから通知を生成できることです。これらの通知では、要求を SNMP マネージャから送信する必要はありません。通知は、不正なユーザ認証、再起動、接続の切断、隣接ルータとの接続の切断、その他の重要なイベントを表示します。

Cisco UCS Manager は、トラップまたはインフォームとして SNMP 通知を生成します。SNMP マネージャはトラップ受信時に確認応答を送信せず、Cisco UCS Manager はトラップが受信されたかどうかを確認できないため、トラップの信頼性はインフォームよりも低くなります。インフォーム要求を受信する SNMP マネージャは、SNMP 応答プロトコル データ ユニット(PDU)でメッセージの受信を確認します。Cisco UCS Manager が PDU を受信しない場合、インフォーム要求を再送できます。

SNMP セキュリティ レベルおよび権限

SNMPv1、SNMPv2c、および SNMPv3 はそれぞれ別のセキュリティ モデルを表します。セキュリティ モデルと選択したセキュリティ レベルの組み合わせにより、SNMP メッセージの処理中に適用されるセキュリティ メカニズムが決まります。

セキュリティ レベルは、SNMP トラップに関連付けられているメッセージを表示するために必要な特権を決定します。権限のレベルによって、メッセージが情報開示の保護を必要とするか、またはメッセージが認証されるかが決定されます。サポートされるセキュリティ レベルは、実装されているセキュリティ モデルによって異なります。SNMP セキュリティ レベルは、次の権限の 1 つ以上をサポートします。

  • noAuthNoPriv:認証なし、暗号化なし

  • authNoPriv:認証あり、暗号化なし

  • authPriv:認証あり、暗号化あり

SNMPv3 では、セキュリティ モデルとセキュリティ レベルの両方が提供されています。セキュリティ モデルは、ユーザおよびユーザが属するロールを設定する認証方式です。セキュリティ レベルとは、セキュリティ モデル内で許可されるセキュリティのレベルです。セキュリティ モデルとセキュリティ レベルの組み合わせにより、SNMP パケット処理中に採用されるセキュリティ メカニズムが決まります。

SNMP セキュリティ モデルとレベルのサポートされている組み合わせ

次の表に、セキュリティ モデルとレベルの組み合わせを示します。

表 1. 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 は、ネットワーク経由のフレームの認証と暗号化を組み合わせることによって、デバイスへのセキュア アクセスを実現します。SNMPv3 は、管理操作および暗号化 SNMP メッセージを実行するために、設定されているユーザーのみを承認します。SNMPv3 ユーザーベース セキュリティ モデル(USM)は SNMP メッセージレベル セキュリティを参照し、次のサービスを提供します。

  • メッセージの完全性:メッセージが不正な方法で変更または破壊されていないこと、悪意なく起こり得る範囲を超えてデータ シーケンスが変更されていないことを保証します。

  • メッセージの発信元の認証:メッセージ送信者の ID を確認できることを保証します。

  • メッセージの機密性および暗号化:不正なユーザ、エンティティ、プロセスに対して情報を利用不可にしたり開示しないようにします。

SNMP サポート

Cisco UCS は、SNMP に対して以下のサポートを提供します。

MIB のサポート

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 を参照してください。

SNMPv3 ユーザーの認証プロトコル

Cisco UCS は、SNMPv3 ユーザーに次の認証プロトコルをサポートします。

  • HMAC-MD5-96(MD5)

  • HMAC-SHA-96(SHA)

SNMPv3 ユーザーの AES プライバシー プロトコル

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 の設定

SNMP の有効化と SNMP プロパティの設定

Cisco UCS ドメイン からの SNMP メッセージには、システム名ではなくファブリック インターコネクト名が表示されます。

Procedure

  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

トランザクションをシステムの設定にコミットします。

Example

次に、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 #

What to do next

SNMP トラップおよびユーザを作成します。

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 を選択した場合、以下の可能性があり得ます。

  • [トラップ(traps)]:SNMP トラップ通知

  • [インフォーム(informs)]:SNMP インフォーム通知

ステップ 8

(任意) UCS-A /monitoring/snmp-trap # set v3 privilege {auth | noauth | priv}

(任意)

バージョンに [V3] を選択した場合、トラップに関連付けられる権限は次のいずれかになります。

  • auth:認証あり、暗号化なし

  • noauth:認証なし、暗号化なし

  • priv:認証あり、暗号化あり

ステップ 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 #

SNMP トラップの削除

手順

  コマンドまたはアクション 目的

ステップ 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 トラップの生成

ソフトウェアまたはシステムの物理構成を変更せずに、テスト 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 トラップを生成します。

  • fan - ファンのテスト SNMP トラップを生成します

  • power supply - 電源のテスト用 SNMP トラップを生成します。

  • 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

SNMPv3 ユーザの作成

手順

  コマンドまたはアクション 目的

ステップ 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 #

SNMPv3 ユーザの削除

手順

  コマンドまたはアクション 目的

ステップ 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 #