SNMP の概要
SNMP は、マネージャとエージェント間の通信のメッセージ フォーマットを提供するアプリケーションレイヤ プロトコルです。SNMP システムは、SNMP マネージャ、SNMP エージェント、および MIB(管理情報ベース)で構成されます。SNMP マネージャは、CiscoWorks などの Network Management System(NMS; ネットワーク管理システム)に統合できます。エージェントおよび MIB は、スイッチに常駐します。スイッチに SNMP を設定するには、マネージャとエージェントの関係を定義します。
SNMP エージェントは MIB 変数を格納し、SNMP マネージャはこの変数の値を要求または変更できます。マネージャはエージェントから値を取得したり、エージェントに値を格納したりできます。エージェントは、デバイス パラメータやネットワーク データの保存場所である MIB から値を収集します。エージェントはマネージャからのデータ取得要求または設定要求に応答します。
エージェントは非送信請求トラップをマネージャに送信できます。トラップは、ネットワーク上のある状態を SNMP マネージャに通知するメッセージです。トラップは不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC(メディア アクセス制御)アドレス追跡、TCP 接続の終了、ネイバーとの接続の切断などの重要なイベントの発生を意味する場合があります。
ここでは、次の概要について説明します。
•
「SNMP バージョン」
•
「SNMP マネージャ機能」
•
「SNMP エージェント機能」
•
「SNMP コミュニティ ストリング」
•
「SNMP を使用して MIB 変数にアクセスする方法」
•
「SNMP 通知」
•
「SNMP ifIndex MIB オブジェクト値」
SNMP バージョン
このソフトウェア リリースは、次の SNMP バージョンをサポートしています。
•
SNMPv1:RFC1157 に定められた SNMP(完全インターネット標準)
•
SNMPv2C は、SNMPv2Classic のバルク検索機能を残し、エラー処理を改善したうえで、SNMPv2Classic のパーティ ベースの管理およびセキュリティ フレームワークをコミュニティ ストリング ベースの管理フレームワークに置き換えたものです。SNMPv2C には次の機能があります。
–
SNMPv2:RFC 1902 ~ 1907 に定められた SNMP バージョン 2(ドラフト版インターネット標準)
–
SNMPv2C:RFC 1901 に定められた SNMPv2 のコミュニティ ストリング ベースの管理フレームワーク(試験版インターネット プロトコル)
•
SNMPv3:SNMP のバージョン 3 は、RFC 2273 ~ 2275 に規定されている相互運用可能な標準ベース プロトコルです。SNMPv3 は、ネットワーク上のパケットを認証、暗号化することでデバイスへのアクセスに対するセキュリティを提供します。SNMPv3 は、次のセキュリティ機能を備えています。
–
メッセージの完全性:パケットが伝送中に改ざんされないようにします。
–
認証:メッセージの送信元が有効かどうかを判別します。
–
暗号化:パッケージの内容をミキシングし、許可されていない送信元に内容が読まれることを防止します。
(注) 暗号化を選択するには、priv キーワードを入力します。このキーワードは、暗号化ソフトウェア イメージがインストールされている場合だけ使用可能です。
SNMPv1 と SNMPv2C は、ともにコミュニティベース形式のセキュリティを使用します。エージェントの MIB にアクセスできるマネージャのコミュニティは、IP アドレス Access Control List(ACL; アクセス コントロール リスト)およびパスワードによって定義されます。
SNMPv2C にはバルク検索メカニズムが組み込まれ、より詳細なエラー メッセージを管理ステーションに報告します。バルク検索メカニズムは、テーブルや大量の情報を検索し、必要な往復回数を削減します。SNMPv2C ではエラー処理機能が改善され、さまざまなエラーを区別するための拡張エラー コードが使用されています。これらのエラーは、SNMPv1 では単一のエラー コードで報告されます。SNMPv2 では、エラー リターン コードでエラー タイプが報告されるようになりました。
SNMPv3 は、セキュリティ モデルとセキュリティ レベルの両方を提供します。セキュリティ モデルは、ユーザとユーザが属しているグループ用に設定された認証方式です。セキュリティ レベルは、セキュリティ モデル内で許可されたセキュリティのレベルです。セキュリティ レベルとセキュリティ モデルの組み合わせにより、SNMP パケットを扱うときに使用するセキュリティ メカニズムが決まります。使用可能なセキュリティ モデルは、SNMPv1、SNMPv2C、および SNMPv3 です。
表 32-1 に、セキュリティ モデルとセキュリティ レベルのさまざまな組み合わせについて、その特性を示します。
表 32-1 SNMP セキュリティ モデルおよびセキュリティ レベル
|
|
|
|
|
SNMPv1 |
noAuthNoPriv |
コミュニティ ストリング |
なし |
コミュニティ ストリングの照合を使用して認証します。 |
SNMPv2C |
noAuthNoPriv |
コミュニティ ストリング |
なし |
コミュニティ ストリングの照合を使用して認証します。 |
SNMPv3 |
noAuthNoPriv |
ユーザ名 |
なし |
ユーザ名の照合を使用して認証します。 |
SNMPv3 |
authNoPriv |
MD5 または SHA |
なし |
HMAC-MD5 または HMAC-SHA アルゴリズムに基づいて認証します。 |
SNMPv3 |
authPriv (暗号化ソフトウェア イメージが必要) |
MD5 または SHA |
DES |
HMAC-MD5 または HMAC-SHA アルゴリズムに基づいて認証します。 標準の CBC-DES(DES-56)に基づいた認証に加え、Data Encryption Standard(DES)56 ビット暗号化も可能です。 |
管理ステーションでサポートされている SNMP バージョンを使用するには、SNMP エージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、および SNMPv3 を使用する通信をサポートするようにソフトウェアを設定できます。
SNMP マネージャ機能
SNMP マネージャは、MIB 情報を使用して、 表 32-2 に示す動作を実行します。
表 32-2 SNMP の動作
|
|
get-request |
特定の変数から値を取得します。 |
get-next-request |
テーブル内の変数から値を取得します。 |
get-bulk-request |
テーブルの複数の行など、通常はサイズの小さい多数のデータ ブロックに分割して送信する必要がある巨大なデータ ブロックを取得します。 |
get-response |
NMS から送信される get-request、get-next-request、および set-request に対して応答します。 |
set-request |
特定の変数に値を格納します。 |
trap |
SNMP エージェントから SNMP マネージャに送られる、イベントの発生を伝える非送信請求メッセージです。 |
SNMP エージェント機能
SNMP エージェントは、次のようにして SNMP マネージャ要求に応答します。
•
MIB 変数の取得:SNMP エージェントは NMS からの要求に応答して、この機能を開始します。エージェントは要求された MIB 変数の値を取得し、この値を使用して NMS に応答します。
•
MIB 変数の設定:SNMP エージェントは NMS からのメッセージに応答して、この機能を開始します。SNMP エージェントは、MIB 変数の値を NMS から要求された値に変更します。
エージェントで重要なイベントが発生したことを NMS に通知する場合にも、SNMP エージェントは非送信請求トラップ メッセージを送信します。トラップ条件の例には、ポートまたはモジュールがアップまたはダウン状態になった場合、スパニング ツリー トポロジが変更された場合、認証に失敗した場合などがありますが、これだけではありません。
SNMP コミュニティ ストリング
SNMP コミュニティ ストリングは、MIB オブジェクトに対するアクセスを認証し、組み込みパスワードとして機能します。NMS がスイッチにアクセスするには、NMS のコミュニティ ストリング定義が、スイッチ上の 3 つのコミュニティ ストリング定義の少なくとも 1 つと一致していなければなりません。
コミュニティ ストリングのアトリビュートは、次の 3 つのいずれかです。
•
Read-Only(RO):許可された管理ステーションに、コミュニティ ストリングを除く MIB 内のすべてのオブジェクトへの読み取りアクセスを許可しますが、書き込みアクセスは許可しません。
•
Read-Write(RW):許可された管理ステーションに、MIB 内のすべてのオブジェクトへの読み書きアクセスを許可しますが、コミュニティ ストリングに対するアクセスは許可しません。
•
クラスタを作成すると、コマンド スイッチがメンバー スイッチと SNMP アプリケーション間のメッセージ交換を管理します。Network Assistant ソフトウェアは、コマンド スイッチ上で最初に設定された RW および RO コミュニティ ストリングにメンバー スイッチ番号( @esN 、 N はスイッチ番号)を追加し、これらのストリングをメンバー スイッチに伝播します。詳細については、 第 6 章「スイッチのクラスタ化」 および Cisco.com から入手できる『 Getting Started with Cisco Network Assistant 』を参照してください。
SNMP を使用して MIB 変数にアクセスする方法
NMS の例として、CiscoWorks ネットワーク管理ソフトウェアがあります。CiscoWorks 2000 ソフトウェアは、スイッチの MIB 変数を使用してデバイス変数を設定し、ネットワーク上のデバイスをポーリングして特定の情報を取得します。ポーリング結果は、グラフ形式で表示されます。この結果を解析して、インターネットワーキング関連の問題のトラブルシューティング、ネットワーク パフォーマンスの改善、デバイス設定の確認、トラフィック負荷のモニタなどを行うことができます。
図 32-1 に示すように、SNMP エージェントは MIB からデータを収集します。エージェントは SNMP マネージャに対し、トラップ(特定イベントの通知)を送信でき、SNMP マネージャはトラップを受信して処理します。トラップは、ネットワーク上で発生した不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC アドレス トラッキングなどの状況を SNMP マネージャに通知します。SNMP エージェントはさらに、SNMP マネージャから get-request 、 get-next-request 、および set-request 形式で送信される MIB 関連のクエリーに応答します。
図 32-1 SNMP ネットワーク
サポート対象の MIB の詳細、およびアクセス手順については、 付録 A「サポート対象 MIB」 を参照してください。
SNMP 通知
SNMP を使用すると、特定のイベントが発生した場合に、スイッチから SNMP マネージャに通知を送信できます。SNMP 通知は、トラップまたは情報要求として送信できます。コマンド構文では、トラップまたは情報を選択するオプションがコマンドにないかぎり、キーワード traps はトラップ、情報、またはその両方を表します。 snmp-server host コマンドを使用して、SNMP 通知をトラップとして送信するのか、情報として送信するのかを指定します。
(注) SNMPv1 は informs をサポートしていません。
トラップは信頼性に欠けます。受信側はトラップを受信しても確認応答を送信しないので、トラップが受信されたかどうかが送信側にわからないからです。通知要求の場合、受信した SNMP マネージャは SNMP 応答 Protocol Data Unit(PDU; プロトコル データ ユニット)でメッセージを確認します。送信側が応答を受信しなかった場合は、再び通知要求を送信できます。再送信できるので、通知の方がトラップより意図した宛先に届く可能性が高くなります。
通知の方がトラップより信頼性が高いのは、スイッチおよびネットワークのリソースを多く消費するという特性にも理由があります。送信と同時に廃棄されるトラップと異なり、通知要求は応答を受信するまで、または要求がタイムアウトになるまで、メモリ内に保持されます。トラップの送信は 1 回限りですが、情報は数回にわたって再送信、つまり再試行が可能です。再試行によってトラフィックが増え、ネットワークのオーバーヘッドが大きくなります。したがって、トラップにするか通知にするかは、信頼性を取るかリソースを取るかという選択になります。SNMP マネージャですべての通知を受信することが重要な場合は、通知要求を使用してください。ネットワークのトラフィックまたはスイッチ上のメモリが問題になる場合で、なおかつ通知が不要な場合は、トラップを使用してください。
SNMP ifIndex MIB オブジェクト値
NMS の IF-MIB は、物理インターフェイスまたは論理インターフェイスを識別する、ゼロより大きい一意の値である interface index(ifIndex)オブジェクト値の生成および割り当てを行います。スイッチの再起動またはスイッチのソフトウェアのアップグレード時に、スイッチは、インターフェイスにこれと同じ値を使用します。たとえば、スイッチのポート 2 に 10003 という ifIndex 値が割り当てられていると、スイッチの再起動後も同じ値が使用されます。
スイッチは、 表 32-3 のいずれかの値を使用して、インターフェイスに ifIndex 値を割り当てます。
表 32-3 ifIndex 値
|
|
SVI |
1 ~ 4999 |
EtherChannel |
5000 ~ 5012 |
ループバック |
5013 ~ 5077 |
トンネル |
5078 ~ 5142 |
物理(ギガビット イーサネットまたは SFPモジュール インターフェイス) |
10000 ~ 14500 |
ヌル |
14501 |
(注) スイッチは、範囲内の連続した値を使用しない場合があります。
SNMP の設定
ここでは、次の設定情報について説明します。
•
「SNMP のデフォルト設定」
•
「SNMP 設定時の注意事項」
•
「SNMP エージェントのディセーブル化」
•
「コミュニティ ストリングの設定」
•
「SNMP グループおよびユーザの設定」
•
「SNMP 通知の設定」
•
「CPU しきい値通知のタイプと値の設定」
•
「エージェント コンタクトおよびロケーションの設定」
•
「SNMP を通して使用する TFTP サーバの制限」
•
「SNMP の例」
SNMP のデフォルト設定
表 32-4 に、SNMP のデフォルト設定を示します。
表 32-4 SNMP のデフォルト設定
|
|
SNMP エージェント |
ディセーブル |
SNMP トラップ レシーバー |
未設定 |
SNMP トラップ |
TCP 接続のトラップ( tty )以外は、イネーブルではありません。 |
SNMP バージョン |
version キーワードがない場合、デフォルトはバージョン 1 になります。 |
SNMPv3 認証 |
キーワードを入力しなかった場合、セキュリティ レベルはデフォルトで noauth (noAuthNoPriv)になります。 |
SNMP 通知タイプ |
タイプを指定しなかった場合、すべての通知が送信されます。 |
SNMP 設定時の注意事項
スイッチが起動し、スイッチのスタートアップ コンフィギュレーションに少なくとも 1 つの snmp-server グローバル コンフィギュレーション コマンドが設定されている場合、SNMP エージェントはイネーブルになります。
SNMP グループ は、SNMP ユーザを SNMP ビューに対応付けるテーブルです。SNMP ユーザ は、SNMP グループのメンバーです。SNMP ホスト は、SNMP トラップ動作の受信側です。SNMP エンジン ID は、ローカルまたはリモート SNMP エンジンの名前です。
SNMP グループを設定するときには、次の注意事項に従ってください。
•
SNMP グループを設定するときは、通知ビューを指定しません。 snmp-server host グローバル コンフィギュレーション コマンドがユーザの通知ビューを自動生成し、そのユーザを対応するグループに追加します。グループの通知ビューを変更すると、そのグループに対応付けられたすべてのユーザが影響を受けます。通知ビューの設定が必要な状況については、『 Cisco IOS Configuration Fundamentals Command Reference, Release 12.2 』を参照してください。
•
リモート ユーザを設定する場合は、ユーザが存在するデバイスのリモート SNMP エージェントに対応する IP アドレスまたはポート番号を指定します。
•
特定のエージェントのリモート ユーザを設定する前に、 snmp-server engineID グローバル コンフィギュレーション コマンドを remote オプションとともに使用して、SNMP エンジン ID を設定してください。リモート エージェントの SNMP エンジン ID およびユーザ パスワードを使用して認証およびプライバシ ダイジェストが算出されます。先にリモート エンジン ID を設定しておかないと、コンフィギュレーション コマンドがエラーになります。
•
SNMP 情報を設定するときには、プロキシ要求または情報の送信先となるリモート エージェントの SNMP エンジン ID を SNMP データベースに設定しておく必要があります。
•
ローカル ユーザとリモート ホストに関連がない場合、スイッチは、 auth (authNoPriv)および priv (authPriv)認証レベルの通知を送信しません。
•
SNMP エンジン ID の値を変更すると、重大な影響が生じます。(コマンド ラインで入力された)ユーザのパスワードは、パスワードおよびローカル エンジン ID に基づいて、MD5 または SHA セキュリティ ダイジェストに変換されます。コマンド ラインのパスワードは、RFC 2274 の規定に従って廃棄されます。このようにパスワードが廃棄されるため、エンジン ID 値を変更した場合は SNMPv3 ユーザのセキュリティ ダイジェストが無効となり、 snmp-server user username グローバル コンフィギュレーション コマンドを使用して、SNMP ユーザを再設定する必要があります。エンジン ID を変更した場合は、同様の制限によってコミュニティ ストリングも再設定する必要があります。
SNMP エージェントのディセーブル化
SNMP エージェントをディセーブルにするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
no snmp-server |
SNMP エージェントの動作をディセーブルにします。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show running-config |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
no snmp-server グローバル コンフィギュレーション コマンドを使用すると、デバイス上で稼動しているすべてのバージョン(バージョン 1、バージョン 2C、バージョン 3)がディセーブルになります。
SNMP をイネーブルにする特定の Cisco IOS コマンドは存在しません。最初に入力する snmp-server グローバル コンフィギュレーション コマンドによって、SNMP のすべてのバージョンがイネーブルになります。
コミュニティ ストリングの設定
SNMP マネージャとエージェントの関係を定義するには、SNMP コミュニティ ストリングを使用します。コミュニティ ストリングは、スイッチ上のエージェントへのアクセスを許可するパスワードと同様に機能します。ストリングに対応する次の特性を 1 つまたは複数指定することもできます。
•
コミュニティ ストリングを使用してエージェントにアクセスできる SNMP マネージャの IP アドレスのアクセス リスト
•
指定のコミュニティにアクセスできるすべての MIB オブジェクトのサブセットを定義する MIB ビュー
•
コミュニティにアクセスできる MIB オブジェクトの読み書き権限または読み取り専用権限
スイッチ上でコミュニティ ストリングを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server community string [ view view-name ] [ ro | rw ] [ access-list-number ] |
コミュニティ ストリングを設定します。 (注) コンテキスト情報を区切るには @ 記号を使用します。このコマンドの設定時に SNMP コミュニティ ストリングの一部として @ 記号を使用しないでください。 • string には、パスワードと同様に機能し、SNMP プロトコルへのアクセスを許可するストリングを指定します。任意の長さのコミュニティ ストリングを 1 つまたは複数設定できます。 • (任意) view には、コミュニティにアクセスできるビュー レコードを指定します。 • (任意)許可された管理ステーションで MIB オブジェクトを取得する場合は読み取り専用( ro )、許可された管理ステーションで MIB オブジェクトを取得および変更する場合は読み書き( rw )を指定します。デフォルトでは、コミュニティ ストリングはすべてのオブジェクトに対する読み取り専用アクセスが許可されています。 • (任意) access-list-number には、1 ~ 99 および 1300 ~ 1999 の標準 IP アクセス リスト番号を入力します。 |
ステップ 3 |
access-list access-list-number { deny | permit } source [ source-wildcard ] |
(任意)ステップ 2 で標準 IP アクセス リスト番号を指定してリストを作成した場合は、必要に応じてコマンドを繰り返します。 • access-list-number には、ステップ 2 で指定したアクセス リスト番号を入力します。 • deny キーワードは、条件が一致した場合にアクセスを拒否します。 permit キーワードは、条件が一致した場合にアクセスを許可します。 • source には、コミュニティ ストリングを使用してエージェントにアクセスできる SNMP マネージャの IP アドレスを入力します。 • (任意) source-wildcard には、送信元に適用するワイルドカード ビットをドット付き 10 進表記で入力します。無視するビット位置には 1 を入れます。 アクセス リストの末尾には、すべてに対する暗黙の拒否ステートメントが常に存在することに注意してください。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
(注) SNMP コミュニティのアクセスをディセーブルにするには、そのコミュニティのコミュニティ ストリングをヌル ストリングに設定します(コミュニティ ストリングに値を入力しないでください)。
特定のコミュニティ ストリングを削除するには、 no snmp-server community string グローバル コンフィギュレーション コマンドを使用します。
次に、ストリング comaccess を SNMP に割り当てて読み取り専用アクセスを許可し、IP アクセス リスト 4 がこのコミュニティ ストリングを使用してスイッチの SNMP エージェントにアクセスできるように指定する例を示します。
Switch(config)# snmp-server community comaccess ro 4
SNMP グループおよびユーザの設定
スイッチのローカルまたはリモート SNMP サーバ エンジンを表す識別名(エンジン ID)を指定できます。SNMP ユーザを SNMP ビューにマッピングする、SNMP サーバ グループを設定し、新規ユーザを SNMP グループに追加できます。
スイッチ上で SNMP を設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server engineID { local engineid-string | remote ip-address [ udp-port port-number ] engineid-string } |
SNMP のローカル コピーまたはリモート コピーの名前を設定します。 • engineid-string は、SNMP のコピー名を指定する 24 文字の ID ストリングです。末尾にゼロが含まれる場合は、24 文字のエンジン ID すべてを指定する必要はありません。指定するのは、エンジン ID のうちゼロだけが続く箇所を除いた部分だけです。たとえば、123400000000000000000000 というエンジン ID を設定する場合、次のように入力できます。 snmp-server engineID local 1234 • remote を指定した場合、SNMP のリモート コピーが置かれているデバイスの ip-address を指定し、任意でリモート デバイスの UDP ポートを指定します。デフォルト値は 162 です。 |
ステップ 3 |
snmp-server group groupname { v1 | v2c | v3 { auth | noauth | priv } } [ read readview ] [ write writeview ] [ notify notifyview ] [ access access-list ] |
リモート デバイスに新規 SNMP グループを設定します。 • groupname には、グループ名を指定します。 • 次のようにセキュリティ モデルを指定します。 – v1 は、最も安全性の低いセキュリティ モデルです。 – v2c は、2 番めに安全性の低いセキュリティ モデルです。標準の 2 倍の幅で情報および整数を伝送できます。 – 最も安全な v3 の場合、認証レベルを選択する必要があります。 auth :MD5 および SHA によるパケット認証が可能です。 noauth :noAuthNoPriv というセキュリティ レベルをイネーブルにします。キーワードを指定しなかった場合、これがデフォルトです。 priv :DES によるパケット暗号化をイネーブルにします( privacy とも呼ばれます)。 キーワードは、暗号化ソフトウェア イメージがインストールされている場合だけ使用可能です。 • (任意) read readview とともに、エージェントの内容を表示できるビューの名前を表すストリング(64 文字以下)を入力します。 • (任意) write writeview とともに、データを入力し、エージェントの内容を設定するビューの名前を表すストリング(64 文字以下)を入力します。 • (任意) notify notifyview とともに、通知、情報、またはトラップを指定するビューの名前を表すストリング(64 文字以下)を入力します。 • (任意) access access-list とともに、アクセス リスト名のストリング(64 文字以下)を入力します。 |
ステップ 4 |
snmp-server user username groupname { remote host [ udp-port port ]} { v1 [ access access-list ] | v2c [ access access-list ] | v3 [ encrypted ] [ access access-list ] [ auth { md5 | sha } auth-password ]} |
SNMP グループに対して新規ユーザを追加します。 • username は、エージェントに接続するホスト上のユーザ名です。 • groupname は、ユーザが対応付けられるグループの名前です。 • remote を入力して、 ユーザが所属するリモート SNMP エンティティおよびそのエンティティのホスト名または IP アドレスとともに、任意で UDP ポート番号を指定します。デフォルト値は 162 です。 • SNMP バージョン番号( v1 、 v2c 、または v3 )を入力します。 v3 を入力する場合は、次のオプションを追加します。 – encrypted は、パスワードを暗号化形式で表示するように指定します。このキーワードは、 v3 キーワードが指定されている場合だけ使用可能です。 – auth は認証レベル設定セッションで、HMAC-MD5-96( md5 )または HMAC-SHA-96( sha )認証レベルを使用できます。パスワード ストリング(64 文字以下)が必要です。 • (任意) access access-list とともに、アクセス リスト名のストリング(64 文字以下)を入力します。 |
ステップ 5 |
end |
特権 EXEC モードに戻ります。 |
ステップ 6 |
show running-config |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
SNMP 通知の設定
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生したときにスイッチが生成するシステム アラートです。デフォルトでは、トラップ マネージャは定義されず、トラップは送信されません。この Cisco IOS リリースが稼動しているスイッチでは、トラップ マネージャを無制限に設定できます。
(注) コマンド構文で traps というワードを使用するコマンドは多数あります。トラップまたは情報を選択するオプションがコマンドにないかぎり、キーワード traps はトラップ、情報、またはその両方を表します。snmp-server host グローバル コンフィギュレーション コマンドを使用して、SNMP 通知をトラップとして送信するのか、情報として送信するのかを指定します。
表 32-5 に、サポートされているスイッチ トラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにして、これを受信するようにトラップ マネージャを設定できます。
表 32-5 スイッチの通知タイプ
|
|
bgp |
Border Gateway Protocol(BGP)状態変化トラップを生成します。このオプションは、拡張マルチレイヤ イメージがインストールされている場合だけ使用できます。 |
bridge |
Spanning-Tree Protocol(STP; スパニング ツリー プロトコル)ブリッジ MIB トラップを生成します。 |
cluster |
クラスタ設定が変更された場合に、トラップを生成します。 |
config |
SNMP 設定が変更された場合に、トラップを生成します。 |
copy-config |
SNMP コピー設定が変更された場合に、トラップを生成します。 |
entity |
SNMP エンティティが変更された場合に、トラップを生成します。 |
cpu threshold |
CPU-related トラップを使用できます。 |
envmon |
環境モニタ トラップを生成します。ファン(fan)、シャットダウン(shutdown)、ステータス(status)、電源(supply)、温度(temperature)の環境トラップのいずれかまたはすべてをイネーブルにできます。 |
errdisable |
ポート VLAN が errdisable ステートになった場合に、トラップを生成します。1 分あたりの最大トラップ レートも設定できます。指定できる範囲は 0 ~ 10000 です。デフォルトは 0 で、レート制限がないという意味です。 |
flash |
SNMP FLASH 通知を生成します。 |
hsrp |
Hot Standby Router Protocol(HSRP)が変更された場合に、トラップを生成します。 |
ipmulticast |
IP マルチキャスト ルーティングが変更された場合に、トラップを生成します。 |
mac-notification |
MAC アドレス通知のトラップを生成します。 |
msdp |
Multicast Source Discovery Protocol(MSDP)が変更された場合に、トラップを生成します。 |
ospf |
Open Shortest Path First(OSPF)が変更された場合に、トラップを生成します。シスコ固有、エラー、リンクステート アドバタイズ、レート制限、再送信、ステート変更に関するトラップの一部または全部をイネーブルにできます。 |
pim |
Protocol-Independent Multicast(PIM)が変更された場合に、トラップを生成します。無効な PIM メッセージ、ネイバー変更、および Rendezvous Point(RP; ランデブー ポイント)マッピングの変更に関するトラップの一部または全部をイネーブルにできます。 |
port-security |
SNMP ポート セキュリティ トラップを生成します。1 秒あたりの最大トラップ レートも設定できます。指定できる範囲は 0 ~ 1000 です。デフォルトは 0 で、レート制限がないという意味です。 を使用してトラップを設定する際に、次のように最初にポート セキュリティ トラップを設定してから、ポート セキュリティ トラップ レートを設定します。 • snmp-server enable traps port-security • snmp-server enable traps port-security trap-rate rate |
rtr |
SNMP Response Time Reporter(RTR)のトラップを生成します。 |
snmp |
認証、コールド スタート、ウォーム スタート、リンク アップ、またはリンク ダウンについて、SNMP タイプ通知のトラップを生成します。 |
storm-control |
SNMP ストーム制御のトラップを生成します。1 分あたりの最大トラップ レートも設定できます。指定できる範囲は 0 ~ 1000 です。デフォルトは 0 に設定されています(制限なしの状態では、発生ごとにトラップが送信されます)。 |
stpx |
SNMP STP 拡張 MIB トラップを生成します。 |
syslog |
SNMP の Syslog トラップを生成します。 |
tty |
TCP 接続のトラップを生成します。このトラップは、デフォルトでイネーブルに設定されています。 |
vlan-membership |
SNMP VLAN メンバシップが変更された場合に、トラップを生成します。 |
vlancreate |
SNMP VLAN 作成トラップを生成します。 |
vlandelete |
SNMP VLAN 削除トラップを生成します。 |
vtp |
VLAN Trunking Protocol(VTP; VLAN トランキング プロトコル)が変更された場合に、トラップを生成します。 |
(注) fru-ctrl、insertion、および removal キーワードは、コマンドラインのヘルプ ストリングに表示されますが、サポートされていません。SNMP 情報通知の送信をイネーブルにするには、snmp-server enable traps グローバル コンフィギュレーション コマンドと snmp-server host host-addr informs グローバル コンフィギュレーション コマンドを組み合わせて使用します。
表 32-5 に示す通知タイプを受信する場合は、特定のホストに対して snmp-server host グローバル コンフィギュレーション コマンドを実行します。
ホストにトラップまたは情報を送信するようにスイッチを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server engineID remote ip-address engineid-string |
リモート ホスト用のエンジン ID を指定します。 |
ステップ 3 |
snmp-server user username groupname { remote host [ udp-port port ]} { v1 [ access access-list ] | v2c [ access access-list ] | v3 [ encrypted ] [ access access-list ] [ auth { md5 | sha } auth-password ]} |
ステップ 2 で設定したリモート ホストと対応付ける SNMP ユーザを設定します。 (注) アドレスに対応するリモート ユーザを設定するには、先にリモート ホストのエンジン ID を設定しておく必要があります。このようにしないと、エラー メッセージが表示され、コマンドが実行されません。 |
ステップ 4 |
snmp-server group groupname { v1 | v2c | v3 { auth | noauth | priv } } [ read readview ] [ write writeview ] [ notify notifyview ] [ access access-list ] |
SNMP グループを設定します。 |
ステップ 5 |
snmp-server host host-addr [ informs | traps ] [ version { 1 | 2c | 3 { auth | noauth | priv }}] community-string [ notification-type ] |
SNMP トラップ動作の受信側を指定します。 • host-addr には、ホスト(対象となる受信側)の名前またはインターネット アドレスを指定します。 • (任意)SNMP 情報をホストに送信するには、 informs を指定します。 • (任意)SNMP トラップをホストに送信するには、 traps (デフォルト)を指定します。 • (任意)SNMP の バージョン ( 1 、 2c 、または 3 )を指定します。SNMPv1 は informs をサポートしていません。 • (任意)バージョン 3 の場合、認証レベルとして auth、noauth 、または priv を選択します。 キーワードは、暗号化ソフトウェア イメージがインストールされている場合だけ使用可能です。 • community-string には、 version 1 または version 2c が指定されている場合、通知動作で送信される、パスワードに類似したコミュニティ ストリングを入力します。 version 3 が指定されている場合、SNMPv3 ユーザ名を入力します。 (注) コンテキスト情報を区切るには @ 記号を使用します。このコマンドの設定時に SNMP コミュニティ ストリングの一部として @ 記号を使用しないでください。 • (任意) notification-type には、表 32-5に記載されているキーワードを使用します。タイプを指定しなかった場合、すべての通知が送信されます。 |
ステップ 6 |
snmp-server enable traps notification-types |
スイッチがトラップまたは情報を送信できるようにし、送信する通知のタイプを指定します。通知タイプの一覧については、表 32-5を参照するか、 snmp-server enable traps ? と入力してください。 複数のトラップ タイプをイネーブルにするには、トラップ タイプごとに snmp-server enable traps コマンドを個別に入力する必要があります。 を使用してトラップを設定する際に、次のように最初にポート セキュリティ トラップを設定してから、ポート セキュリティ トラップ レートを設定します。 • snmp-server enable traps port-security • snmp-server enable traps port-security trap-rate rate |
ステップ 7 |
snmp-server trap-source interface-id |
(任意)送信元インターフェイスを指定します。そこからトラップ メッセージに対応する IP アドレスが取得されます。情報の送信元 IP アドレスも、このコマンドで設定します。 |
ステップ 8 |
snmp-server queue-length length |
(任意)各トラップ ホストのメッセージ キュー長を設定します。指定できる範囲は 1 ~ 1000 です。デフォルトは 10 です。 |
ステップ 9 |
snmp-server trap-timeout seconds |
(任意)トラップ メッセージを再送信する間隔を設定します。指定できる範囲は 1 ~ 1000 です。デフォルトは 30 秒です。 |
ステップ 10 |
end |
特権 EXEC モードに戻ります。 |
ステップ 11 |
show running-config |
設定を確認します。 |
ステップ 12 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
snmp-server host コマンドでは、通知を受信するホストを指定します。 snmp-server enable trap コマンドによって、指定された通知メカニズム(トラップおよび情報)がグローバルでイネーブルになります。ホストが情報を受信できるようにするには、そのホストに対応する snmp-server host informs コマンドを設定し、 snmp-server enable traps コマンドを使用して情報をグローバルにイネーブルにする必要があります。
指定したホストがトラップを受信しないようにするには、 no snmp-server host host グローバル コンフィギュレーション コマンドを使用します。キーワードを指定しないで no snmp-server host コマンドを使用すると、ホストへのトラップはディセーブルになりますが、情報はディセーブルになりません。情報をディセーブルにするには、 no snmp-server host informs グローバル コンフィギュレーション コマンドを使用してください。特定のトラップ タイプをディセーブルにするには、 no snmp-server enable traps notification-types グローバル コンフィギュレーション コマンドを使用します。
CPU しきい値通知のタイプと値の設定
CPU しきい値通知のタイプと値を設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
process cpu threshold type { total | process | interrupt } rising percentage interval seconds [ falling fall-percentage interval seconds ] |
CPU しきい値通知のタイプと値を次のように設定します。 • total :通知タイプを CPU の総利用率に設定します。 • process :通知タイプを CPU プロセスの利用率に設定します。 • interrupt :通知タイプを CPU の割り込み利用率に設定します。 • rising percentage :CPU リソースの割合(1 ~ 100)。設定された期間にこの値を超えた場合は、CPU しきい値通知が送信されます。 • interval seconds :CPU のしきい値を超える時間を秒数で指定します(5 ~ 86400 秒)。この値に一致した場合は、CPU しきい値通知が送信されます。 • falling fall-percentage :CPU リソースの割合(1 ~ 100)。設定された期間に使用率がこのレベルを下回った場合は、CPU しきい値通知が送信されます。 この値は、 rising percentage の値以下である必要があります。 falling fall-percentage の値が指定されない場合、この値は rising percentage の値と同じになります。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show running-config |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
エージェント コンタクトおよびロケーションの設定
SNMP エージェントのシステム コンタクトおよびロケーションを設定して、コンフィギュレーション ファイルからこれらの記述にアクセスできるようにするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server contact text |
システム コンタクトを表すストリングを設定します。 次に例を示します。
snmp-server contact Dial System Operator at beeper 21555 .
|
ステップ 3 |
snmp-server location text |
システム ロケーションを表すストリングを設定します。 次に例を示します。
snmp-server location Building 3/Room 222
|
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
SNMP を通して使用する TFTP サーバの制限
SNMP を通してコンフィギュレーション ファイルを保存およびロードするために使用する TFTP(簡易ファイル転送プロトコル)サーバを、アクセス リストに指定されているサーバに限定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server tftp-server-list access-list-number |
SNMP を通してコンフィギュレーション ファイルをコピーするために使用する TFTP サーバを、アクセス リスト内のサーバに限定します。 access-list-number には、1 ~ 99 および 1300 ~ 1999 の標準 IP アクセス リスト番号を入力します。 |
ステップ 3 |
access-list access-list-number { deny | permit } source [ source-wildcard ] |
標準アクセス リストを作成し、必要な回数だけこのコマンドを繰り返します。 • access-list-number には、ステップ 2 で指定したアクセス リスト番号を入力します。 • deny キーワードは、条件が一致した場合にアクセスを拒否します。 permit キーワードは、条件が一致した場合にアクセスを許可します。 • source には、スイッチにアクセスできる TFTP サーバの IP アドレスを入力します。 • (任意) source-wildcard には、送信元に適用するワイルドカード ビットをドット付き 10 進表記で入力します。無視するビット位置には 1 を入れます。 アクセス リストの末尾には、すべてに対する暗黙の拒否ステートメントが常に存在することに注意してください。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
SNMP の例
次に、SNMP のすべてのバージョンをイネーブルにする例を示します。この設定では、任意の SNMP マネージャがコミュニティ ストリング public を使用して、読み取り専用権限ですべてのオブジェクトにアクセスできます。この設定では、スイッチはトラップを送信しません。
Switch(config)# snmp-server community public
次に、任意の SNMP マネージャがコミュニティ ストリング public を使用して、読み取り専用権限ですべてのオブジェクトにアクセスする例を示します。スイッチは、ホスト 192.180.1.111 および 192.180.1.33(SNMPv1 を使用)や、ホスト 192.180.1.27(SNMPv2C を使用)へ VTP トラップを送信します。コミュニティ ストリング public は、トラップとともに送信されます。
Switch(config)# snmp-server community public
Switch(config)# snmp-server enable traps vtp
Switch(config)# snmp-server host 192.180.1.27 version 2c public
Switch(config)# snmp-server host 192.180.1.111 version 1 public
Switch(config)# snmp-server host 192.180.1.33 public
次に、 comaccess コミュニティ ストリングを使用するアクセス リスト 4 のメンバーに、すべてのオブジェクトへの読み取り専用アクセスを許可する例を示します。その他の SNMP マネージャは、どのオブジェクトにもアクセスできません。SNMP 認証障害トラップは、SNMPv2C がコミュニティ ストリング public を使用してホスト cisco.com に送信します。
Switch(config)# snmp-server community comaccess ro 4
Switch(config)# snmp-server enable traps snmp authentication
Switch(config)# snmp-server host cisco.com version 2c public
次に、エンティティ MIB トラップをホスト cisco.com に送信する例を示します。コミュニティ ストリングは制限されます。先頭行は、すでにイネーブルに設定されているトラップに加えて、エンティティ MIB トラップを送信するようにスイッチをイネーブルにします。2 行めはこれらのトラップの宛先を指定し、ホスト cisco.com に対する以前の snmp-server host コマンドを上書きします。
Switch(config)# snmp-server enable traps entity
Switch(config)# snmp-server host cisco.com restricted entity
次に、コミュニティ ストリング public を使用して、すべてのトラップをホスト myhost.cisco.com に送信するようにスイッチをイネーブルにする例を示します。
Switch(config)# snmp-server enable traps
Switch(config)# snmp-server host myhost.cisco.com public
次に、ユーザとリモート ホストを関連付けて、ユーザがグローバル コンフィギュレーション モードの時に auth (authNoPriv)認証レベルで情報を送信する例を示します。
Switch(config)# snmp-server engineID remote 192.180.1.27 00000063000100a1c0b4011b
Switch(config)# snmp-server group authgroup v3 auth
Switch(config)# snmp-server user authuser authgroup remote 192.180.1.27 v3 auth md5 mypassword
Switch(config)# snmp-server user authuser authgroup v3 auth md5 mypassword
Switch(config)# snmp-server host 192.180.1.27 informs version 3 auth authuser config
Switch(config)# snmp-server enable traps
Switch(config)# snmp-server inform retries 0