発行日;2012/05/10 | 英語版ドキュメント(2009/02/14 版) | ドキュメントご利用ガイド | ダウンロード ; この章 , ドキュメント全体
(PDF - 10MB) | フィードバック
目次
SNMP の設定
この章では、Catalyst 2950 スイッチまたは 2955 スイッチに Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)を設定する方法について説明します。
![]()
(注) この章で使用するコマンドの構文および使用方法の詳細については、このリリースに対応するスイッチ コマンド リファレンスおよび『Cisco IOS Configuration Fundamentals Command Reference for Release 12.1』を参照してください。
SNMP の概要
SNMP は、マネージャとエージェント間の通信のメッセージ フォーマットを提供するアプリケーションレイヤ プロトコルです。SNMP システムは、SNMP マネージャ、SNMP エージェント、および MIB(管理情報ベース)で構成されます。SNMP マネージャは、CiscoWorks などの Network Management System(NMS; ネットワーク管理システム)に統合できます。エージェントおよび MIB は、スイッチに常駐します。スイッチに SNMP を設定するには、マネージャとエージェントの関係を定義します。
SNMP エージェントは MIB 変数を格納し、SNMP マネージャはこの変数の値を要求または変更できます。マネージャはエージェントから値を取得したり、エージェントに値を格納したりできます。エージェントは、デバイス パラメータやネットワーク データの保存場所である MIB から値を収集します。エージェントはマネージャからのデータ取得要求または設定要求に応答します。
エージェントは非送信請求トラップをマネージャに送信できます。トラップは、ネットワーク上のある状態を SNMP マネージャに通知するメッセージです。トラップは不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC アドレス追跡、TCP 接続の終了、ネイバーとの接続の切断などの重要なイベントの発生を意味する場合があります。
•
「SNMP を使用して MIB 変数にアクセスする方法」
SNMP バージョン
このソフトウェア リリースは、次の SNMP バージョンをサポートしています。
•
SNMPv1:RFC1157 に規定された SNMP(完全インターネット標準)。
•
SNMPv2C は、SNMPv2Classic のバルク検索機能を残し、エラー処理を改善したうえで、SNMPv2Classic のパーティ ベースの管理およびセキュリティ フレームワークをコミュニティ ストリング ベースの管理フレームワークに置き換えたものです。次の機能があります。
–
SNMPv2:RFC 1902 ~ 1907 に規定された SNMP バージョン 2(ドラフト版インターネット標準)
–
SNMPv2C:RFC 1901 に規定された SNMPv2 のコミュニティ ストリング ベースの管理フレームワーク(試験版インターネット プロトコル)
•
SNMPv3:RFC 2273 ~ 2275 に規定された SNMP バージョン 3(相互運用可能な標準ベースのプロトコル)SNMPv3 は、ネットワーク上のパケットを認証、暗号化することでデバイスへのアクセスに対するセキュリティを提供します。SNMPv3 は、次のセキュリティ機能を備えています。
–
メッセージの完全性:パケットが伝送中に改ざんされないようにします。
–
暗号化:パッケージの内容をミキシングし、許可されていない送信元に内容が読まれることを防止します。
![]()
(注) 暗号化を選択するには、priv キーワードを入力します。このキーワードは、暗号化ソフトウェア イメージがインストールされている場合のみ使用可能です。
SNMPv1 と SNMPv2C は、ともにコミュニティベース形式のセキュリティを使用します。エージェントの MIB にアクセスできるマネージャのコミュニティが、IP アドレス Access Control List(ACL; アクセス コントロール リスト)およびパスワードによって定義されます。
SNMPv2C にはバルク検索メカニズムが組み込まれ、より詳細なエラー メッセージを管理ステーションに報告します。バルク検索メカニズムは、テーブルや大量の情報を検索し、必要な往復回数を削減します。SNMPv2C ではエラー処理機能が改善され、さまざまなエラーを区別するための拡張エラー コードが使用されています。これらのエラーは、SNMPv1 では単一のエラー コードで報告されます。SNMPv2 では、エラー リターン コードでエラー タイプが報告されるようになりました。
SNMPv3 は、セキュリティ モデルとセキュリティ レベルの両方を提供します。セキュリティ モデルは、ユーザとユーザが属しているグループ用に設定された認証方式です。セキュリティ レベルは、セキュリティ モデル内で許可されたセキュリティのレベルです。セキュリティ レベルとセキュリティ モデルの組み合わせにより、SNMP パケットを扱うときに使用するセキュリティ メカニズムが決まります。使用可能なセキュリティ モデルは、SNMPv1、SNMPv2C、および SNMPv3 です。
表 27-1 に、セキュリティ モデルとセキュリティ レベルのさまざまな組み合わせについて、その特性を示します。
HMAC-MD5 または HMAC-SHA アルゴリズムに基づいて認証します。
DES 56 ビット暗号化を提供し、CBC-DES(DES-56)標準に基づいて認証します。管理ステーションでサポートされている SNMP バージョンを使用するには、SNMP エージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、および SNMPv3 を使用する通信をサポートするようにソフトウェアを設定できます。
SNMP マネージャ機能
SNMP マネージャは、MIB 情報を使用して、 表 27-2 に示す動作を実行します。
テーブル内の変数から値を取得します。1
get-bulk-request2
テーブルの複数の行など、通常はサイズの小さい多数のデータ ブロックに分割して送信する必要がある巨大なデータ ブロックを取得します。
NMS から送信される get-request、get-next-request、および set-request に対して応答します。
1.この動作では、SNMP マネージャに正確な変数名を認識させる必要はありません。テーブル内を順に検索して、必要な変数を検出します。
SNMP エージェント機能
SNMP エージェントは、次のようにして SNMP マネージャ要求に応答します。
•
MIB 変数の取得:SNMP エージェントは NMS からの要求に応答して、この機能を開始します。エージェントは要求された MIB 変数の値を取得し、この値を使用して NMS に応答します。
•
MIB 変数の設定:SNMP エージェントは NMS からのメッセージに応答して、この機能を開始します。SNMP エージェントは、MIB 変数の値を NMS から要求された値に変更します。
エージェントで重要なイベントが発生したことを NMS に通知するために、SNMP エージェントは非送信請求トラップ メッセージも送信します。トラップ条件の例には、ポートまたはモジュールがアップまたはダウン状態になった場合、スパニング ツリー トポロジが変更された場合、認証に失敗した場合などがあります。
SNMP コミュニティ ストリング
SNMP コミュニティ ストリングは、MIB オブジェクトに対するアクセスを認証し、組み込みパスワードとして機能します。NMS がスイッチにアクセスするには、NMS のコミュニティ ストリング定義が、スイッチ上の 3 つのコミュニティ ストリング定義の少なくとも 1 つと一致していなければなりません。
•
Read-Only(RO):許可された管理ステーションに、コミュニティ ストリングを除く MIB 内のすべてのオブジェクトへの読み取りアクセスを許可しますが、書き込みアクセスは許可しません。
•
Read-Write(RW):許可された管理ステーションに、MIB 内のすべてのオブジェクトへの読み書きアクセスを許可しますが、コミュニティ ストリングに対するアクセスは許可しません。
![]()
(注) クラスタを作成すると、コマンド スイッチがメンバ スイッチと SNMP アプリケーション間のメッセージ交換を管理します。Network Assistant ソフトウェアは、コマンド スイッチ上で最初に設定された RW および RO コミュニティ ストリングにメンバ スイッチ番号(@esN、N はスイッチ番号)を追加し、これらのストリングをメンバ スイッチに伝播します。詳細については、「スイッチのクラスタ化」および Cisco.com から入手できる『Getting Started with Cisco Network Assistant』を参照してください。
SNMP を使用して MIB 変数にアクセスする方法
NMS の例として、CiscoWorks ネットワーク管理ソフトウェアがあります。CiscoWorks 2000 ソフトウェアは、スイッチの MIB 変数を使用してデバイス変数を設定し、ネットワーク上のデバイスをポーリングして特定の情報を取得します。ポーリング結果は、グラフ形式で表示されます。この結果を解析して、インターネットワーキング関連の問題のトラブルシューティング、ネットワーク パフォーマンスの改善、デバイス設定の確認、トラフィック負荷のモニタなどを行うことができます。
図 27-1 に示すように、SNMP エージェントは MIB からデータを収集します。エージェントは SNMP マネージャに対し、トラップ(特定イベントの通知)を送信でき、SNMP マネージャはトラップを受信して処理します。トラップは、ネットワーク上で発生した不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC アドレス トラッキングなどの状況を SNMP マネージャに通知します。SNMP エージェントはさらに、SNMP マネージャから get-request 、 get-next-request 、および set-request 形式で送信される MIB 関連のクエリーに応答します。
![]()
サポート対象の MIB の詳細、およびアクセス手順については、 付録 A「サポート対象 MIB」 を参照してください。
SNMP 通知
SNMP を使用すると、特定のイベントが発生した場合に、スイッチから SNMP マネージャに通知を送信できます。SNMP 通知は、トラップまたは情報要求として送信できます。コマンド構文では、トラップまたは情報を選択するオプションがコマンドにない限り、キーワード traps はトラップ、情報、またはその両方を表します。 snmp-server host コマンドを使用して、トラップまたは情報として SNMP 通知を送信するかどうかを指定します。
![]()
(注) SNMPv1 は informs をサポートしていません。
トラップは信頼性に欠けます。受信側はトラップを受信しても確認応答を送信しないので、トラップが受信されたかどうかが送信側にわからないからです。情報要求の場合、受信した SNMP マネージャは SNMP 応答 Protocol Data Unit(PDU; プロトコル データ ユニット)でメッセージを確認します。送信側が応答を受信しなかった場合は、再び情報要求を送信できます。再送信できるので、情報の方がトラップより意図した宛先に届く可能性が高くなります。
情報の方がトラップより信頼性が高いのは、スイッチおよびネットワークのリソースを多く消費するという特性にも理由があります。送信と同時に廃棄されるトラップと異なり、情報要求は応答を受信するまで、または要求がタイムアウトになるまで、メモリ内に保持されます。トラップの送信は 1 回限りですが、情報は数回にわたって再送信つまり再試行が可能です。再試行によってトラフィックが増え、ネットワークのオーバーヘッドが大きくなります。したがって、トラップにするか情報にするかは、信頼性を取るかリソースを取るかという選択になります。SNMP マネージャですべての通知を受信することが重要な場合は、情報要求を使用してください。ネットワークまたはスイッチ メモリ上のトラフィックが問題になる場合で、なおかつ通知が不要な場合は、トラップを使用してください。
SNMP の設定
ここでは、スイッチに SNMP を設定する方法について説明します。内容は次のとおりです。
SNMP のデフォルト設定
表 27-3 に、SNMP のデフォルト設定を示します。
ディセーブル3
キーワードを入力しなかった場合、セキュリティ レベルはデフォルトで noauth (noAuthNoPriv)になります。
3.これは、スイッチが起動し、スタートアップ コンフィギュレーションに snmp-server グローバル コンフィギュレーション コマンドが設定されていない場合のデフォルトです。
SNMP 設定時の注意事項
スイッチが起動し、スイッチのスタートアップ コンフィギュレーションに少なくとも 1 つの snmp-server グローバル コンフィギュレーション コマンドが設定されている場合、SNMP エージェントはイネーブルになります。
SNMP グループ は、SNMP ユーザを SNMP ビューに対応付けるテーブルです。SNMP ユーザ は、SNMP グループのメンバです。SNMP ホスト は、SNMP トラップ動作の受信側です。SNMP エンジン ID は、ローカルまたはリモート SNMP エンジンの名前です。
![]()
(注) アラーム プロファイルを使用して、SNMP アラーム トラップ通知を SNMP サーバに送信するように Catalyst 2955 スイッチを設定するには、まず snmp-server enable traps alarms グローバル コンフィギュレーション コマンドを使用して SNMP をイネーブル化する必要があります。
SNMP グループを設定するときには、次の注意事項に従ってください。
•
SNMP グループを設定するときは、通知ビューを指定しません。 snmp-server host グローバル コンフィギュレーション コマンドがユーザの通知ビューを自動生成し、そのユーザを対応するグループに追加します。グループの通知ビューを変更すると、そのグループに対応付けられたすべてのユーザが影響を受けます。通知ビューの設定が必要な状況については、『 Cisco IOS Configuration Fundamentals Command Reference for Release 12.1 』を参照してください。
•
リモート ユーザを設定する場合は、ユーザが存在するデバイスのリモート 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 モードで次の手順を実行します。
no snmp-server グローバル コンフィギュレーション コマンドは、デバイスで実行するすべてのバージョン(バージョン 1、バージョン 2C、およびバージョン 3)をディセーブルにします。SNMP をイネーブルにする特定の Cisco IOS コマンドは存在しません。最初に入力する snmp-server グローバル コンフィギュレーション コマンドによって、SNMP のすべてのバージョンがイネーブルになります。
コミュニティ ストリングの設定
SNMP マネージャとエージェントの関係を定義するには、SNMP コミュニティ ストリングを使用します。コミュニティ ストリングは、スイッチ上のエージェントへのアクセスを許可するパスワードと同様に機能します。ストリングに対応する次の特性を 1 つまたは複数指定することもできます。
•
コミュニティ ストリングを使用してエージェントにアクセスできる SNMP マネージャの IP アドレスのアクセス リスト
•
指定のコミュニティにアクセスできるすべての MIB オブジェクトのサブセットを定義する MIB ビュー
•
コミュニティにアクセスできる MIB オブジェクトの読み書き権限または読み取り専用権限
スイッチ上でコミュニティ ストリングを設定するには、特権 EXEC モードで次の手順を実行します。
![]()
(注) SNMP コミュニティのアクセスをディセーブルにするには、そのコミュニティのコミュニティ ストリングをヌル ストリングに設定します(コミュニティ ストリングに値を入力しないでください)。
特定のコミュニティ ストリングを削除するには、 no snmp-server community string グローバル コンフィギュレーション コマンドを使用します。
次に、ストリング comaccess を SNMP に割り当てて読み取り専用アクセスを許可し、IP アクセス リスト 4 がこのコミュニティ ストリングを使用してスイッチの SNMP エージェントにアクセスできるように指定する例を示します。
SNMP グループおよびユーザの設定
スイッチのローカルまたはリモート SNMP サーバ エンジンを表す識別名(エンジン ID)を指定できます。SNMP ユーザを SNMP ビューにマッピングする、SNMP サーバ グループを設定し、新規ユーザを SNMP グループに追加できます。
スイッチ上で SNMP を設定するには、特権 EXEC モードで次の手順を実行します。
SNMP 通知の設定
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生したときにスイッチが生成するシステム アラートです。デフォルトでは、トラップ マネージャは定義されず、トラップは送信されません。この Cisco IOS リリースが稼動しているスイッチでは、トラップ マネージャを無制限に設定できます。
![]()
(注) コマンド構文で traps というワードを使用するコマンドは多数あります。トラップとインフォームのどちらかを選択するオプションがコマンドにないかぎり、traps キーワードは、トラップとインフォームのどちらか一方または両方を意味します。snmp-server host グローバル コンフィギュレーション コマンドを使用して、トラップまたは情報として SNMP 通知を送信するかどうかを指定します。
表 27-4 に、サポートされているスイッチ トラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにして、これを受信するようにトラップ マネージャを設定できます。
表 27-4 に示す通知タイプを受信するには、特定のホストに対して snmp-server host グローバル コンフィギュレーション コマンドを実行します。
特権 EXEC モードで、ホストにトラップまたは情報を送信するようにスイッチを設定します。
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 を設定しておく必要があります。このようにしないと、エラー メッセージが表示され、コマンドが実行されません。snmp-server group [ groupname { v1 | v2c | v3 { auth | noauth | priv }}] [ read readview ] [ write writeview ] [ notify notifyview ] [ access access-list ]
snmp-server host host-addr
[ informs | traps ] [ version { 1 | 2c | 3 { auth | noauth | priv }}] community-string [ notification-type ]•
host-addr には、ホスト(対象となる受信側)の名前またはインターネット アドレスを指定します。
•
(任意)SNMP 情報をホストに送信するには、 informs を指定します。
•
(任意)SNMP トラップをホストに送信するには、 traps (デフォルト)を指定します。
•
(任意)SNMP version ( 1 、 2c 、または 3 )を指定します。SNMPv1 は情報には使用できません。
•
キーワードは、暗号化ソフトウェア イメージがインストールされている場合のみ使用可能です。(任意)バージョン 3 の場合、認証レベルとして auth、noauth 、または priv を選択します。
•
(注) @ 記号は、コンテキスト情報を区切る場合に使用します。このコマンドを設定するとき、@ 記号を SNMP コミュニティ ストリングの一部として使用しないでください。community-string には、 version 1 または version 2c が指定されている場合、通知動作で送信される、パスワードに類似したコミュニティ ストリングを入力します。 version 3 が指定されている場合、SNMPv3 ユーザ名を入力します。
•
(任意) notification-type には、表 27-4に記載されているキーワードを使用します。タイプを指定しなかった場合、すべての通知が送信されます。
スイッチがトラップまたは情報を送信できるようにし、送信する通知のタイプを指定します。通知の種類については、表 27-4 を参照するか、または snmp-server enable traps ? と入力します。
複数のトラップ タイプをイネーブルにするには、トラップ タイプごとに snmp-server enable traps コマンドを個別に入力する必要があります。
を使用してトラップを設定する際に、まずポート セキュリティ トラップを設定して、次に以下のポート セキュリティ トラップ レートを設定します。(任意)送信元インターフェイスを指定します。そこからトラップ メッセージに対応する IP アドレスが取得されます。情報の送信元 IP アドレスも、このコマンドで設定します。
(任意)各トラップ ホストのメッセージ キュー長を設定します。指定できる範囲は 1 ~ 1000 です。デフォルトは 10 です。
(任意)トラップ メッセージを再送信する間隔を設定します。指定できる範囲は 1 ~ 1000 です。デフォルトは 30 秒です。
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 グローバル コンフィギュレーション コマンドを使用します。
エージェントの連絡先と場所の設定
SNMP エージェントのシステム連絡先と場所を設定して、コンフィギュレーション ファイルからこれらの記述にアクセスできるようにするには、特権 EXEC モードで次の手順を実行します。
SNMP を通して使用する TFTP サーバの制限
SNMP を通してコンフィギュレーション ファイルを保存およびロードするために使用する TFTP サーバを、アクセス リストに指定されているサーバに限定するには、特権 EXEC モードで次の手順を実行します。
SNMP の例
次に、SNMP のすべてのバージョンをイネーブルにする例を示します。この設定では、任意の SNMP マネージャがコミュニティ ストリング public を使用して、読み取り専用権限ですべてのオブジェクトにアクセスできます。この設定では、スイッチはトラップを送信しません。
次に、任意の SNMP マネージャがコミュニティ ストリング public を使用して、読み取り専用権限ですべてのオブジェクトにアクセスする例を示します。スイッチは、ホスト 192.180.1.111 および 192.180.1.33(SNMPv1 を使用)や、ホスト 192.180.1.27(SNMPv2C を使用)へ VTP トラップを送信します。コミュニティ ストリング public は、トラップとともに送信されます。
次に、 comaccess コミュニティ ストリングを使用するアクセス リスト 4 のメンバに、すべてのオブジェクトへの読み取り専用アクセスを許可する例を示します。その他の SNMP マネージャは、どのオブジェクトにもアクセスできません。SNMP 認証障害トラップは、SNMPv2C がコミュニティ ストリング public を使用してホスト cisco.com に送信します。
次に、エンティティ MIB トラップをホスト cisco.com に送信する例を示します。コミュニティ ストリングは制限されます。先頭行は、すでにイネーブルに設定されているトラップに加えて、エンティティ MIB トラップを送信するようにスイッチをイネーブルにします。2 行目はこれらのトラップの宛先を指定し、ホスト cisco.com に対する以前の snmp-server host コマンドを無効にします。
次に、コミュニティ ストリング public を使用して、すべてのトラップをホスト myhost.cisco.com に送信するようにスイッチをイネーブルにする例を示します。
次に、ユーザとリモート ホストを関連付けて、ユーザがグローバル コンフィギュレーション モードのときに auth (authNoPriv)認証レベルで情報を送信する例を示します。
SNMP ステータスの表示
不正なコミュニティ ストリング エントリ、エラー、要求変数の数など、SNMP の入出力統計情報を表示するには、 show snmp 特権 EXEC コマンドを使用します。また、 表 27-5 に記載されたその他の特権 EXEC コマンドを使用して、SNMP 情報を表示することもできます。表示されるフィールドの詳細については、『 Cisco IOS Configuration Fundamentals Command Reference, Release 12.1 』を参照してください。