この章では、Catalyst 2960 スイッチ上で SNMP(簡易ネットワーク管理プロトコル)を設定する方法について説明します。
- ・ SNMP の概要
- ・ SNMP の設定
- ・ SNMP ステータスの表示
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 ― RFC 1157 に定められた SNMP(完全インターネット標準)
-
・ SNMPv2C は、SNMPv2Classic のバルク検索機能を残し、エラー処理を改善したうえで、
SNMPv2Classic のパーティ ベースの管理およびセキュリティ フレームワークをコミュニティ ストリング ベースの管理フレームワークに置き換えたものです。SNMPv2C には次の機能があります。 - − SNMPv2 ― RFC 1902 〜 1907 に定められた SNMP バージョン 2(ドラフト版インターネット標準)
- − SNMPv2C ― RFC 1901 に定められた SNMPv2 のコミュニティ ストリング ベースの管理フレームワーク(試験版インターネット プロトコル)
- ・ SNMPv3 ― SNMP のバージョン 3 は、RFC 2273 〜 2275 に規定されている相互運用可能な標準ベース プロトコルです。SNMPv3 は、ネットワーク上のパケットを認証、暗号化することで装置へのアクセスに対するセキュリティを提供します。SNMPv3 は、次のセキュリティ機能を備えています。
- − メッセージの完全性 ― パケットが伝送中に改ざんされないようにします。
- − 認証 ― メッセージの送信元が有効かどうかを判別します。
- − 暗号化 ― パッケージの内容をミキシングし、許可されていない送信元に内容が読まれることを防止します。
SNMPv1 と SNMPv2C は、ともにコミュニティベース形式のセキュリティを使用します。エージェントの MIB にアクセスできるマネージャのコミュニティが、IP アドレス Access Control List(ACL; アクセス制御リスト)およびパスワードによって定義されます。
SNMPv2C にはバルク検索メカニズムが組み込まれ、より詳細なエラー メッセージを管理ステーションに報告します。バルク検索メカニズムは、テーブルや大量の情報を検索し、必要な往復回数を削減します。SNMPv2C ではエラー処理機能が改善され、さまざまなエラーを区別するための拡張エラー コードが使用されています。これらのエラーは、SNMPv1 では単一のエラー コードで報告されます。SNMPv2 では、エラー リターン コードでエラー タイプが報告されるようになりました。
SNMPv3 は、セキュリティ モデルとセキュリティ レベルの両方を提供します。セキュリティ モデルは、ユーザとユーザが属しているグループ用に設定された認証方式です。セキュリティ レベルは、セキュリティ モデル内で許可されたセキュリティのレベルです。セキュリティ レベルとセキュリティ モデルの組み合わせにより、SNMP パケットを扱うときに使用するセキュリティ メカニズムが決まります。使用可能なセキュリティ モデルは、SNMPv1、SNMPv2C、および SNMPv3 です。
表27-1 に、セキュリティ モデルとセキュリティ レベルのさまざまな組み合わせについて、その特性を示します。
|
HMAC-MD5 または HMAC-SHA アルゴリズムに基づいて認証します。標準の CBC-DES(DES-56)に基づいた認証に加え、Data Encryption Standard(DES)56 ビット暗号化も可能です。 |
管理ステーションでサポートされている SNMP バージョンを使用するには、SNMP エージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、および SNMPv3 を使用する通信をサポートするようにソフトウェアを設定できます。
SNMP マネージャ機能
SNMP マネージャは、MIB 情報を使用して、 表27-2 に示す動作を実行します。
|
テーブル内の変数から値を取得します。 1 |
|
|
get-bulk-request 2 |
テーブルの複数の行など、通常はサイズの小さい多数のデータ ブロックに分割して送信する必要がある巨大なデータ ブロックを取得します。 |
|
NMS から送信される get-request、get-next-request、および set-request に対して応答します。 |
|
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 はスイッチ番号)を追加し、これらのストリングをメンバー スイッチに伝播します。詳細については、 第5章 「スイッチのクラスタ化」 および 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 関連のクエリーに応答します。
図27-1 SNMP ネットワーク
サポート対象の MIB の詳細、およびアクセス手順については、 サポート対象 MIB を参照してください。
SNMP 通知
SNMP を使用すると、特定のイベントが発生した場合に、スイッチから SNMP マネージャに通知を送信できます。SNMP 通知は、トラップまたは情報要求として送信できます。コマンド構文では、トラップまたは情報を選択するオプションがコマンドにないかぎり、キーワード traps はトラップと情報の一方、またはその両方を表します。 snmp-server host コマンドを使用して、トラップまたは情報として SNMP 通知を送信するかどうかを指定します。
トラップは信頼性に欠けます。受信側はトラップを受信しても確認応答を送信しないので、トラップが受信されたかどうかが送信側にわからないからです。通知要求の場合、受信した SNMP マネージャは SNMP 応答 Protocol Data Unit(PDU; プロトコル データ ユニット)でメッセージを確認します。送信側が応答を受信しなかった場合は、再び通知要求を送信できます。再送信できるので、通知の方がトラップより意図した宛先に届く可能性が高くなります。
通知の方がトラップより信頼性が高いのは、スイッチおよびネットワークのリソースを多く消費するという特性にも理由があります。送信と同時に廃棄されるトラップと異なり、通知要求は応答を受信するまで、または要求がタイムアウトになるまで、メモリ内に保持されます。トラップの送信は 1 回限りですが、情報は数回にわたって再送信すなわち再試行が可能です。再試行によってトラフィックが増え、ネットワークのオーバーヘッドは大きくなります。したがって、トラップにするか通知にするかは、信頼性を取るかリソースを取るかという選択になります。SNMP マネージャですべての通知を受信することが重要な場合は、通知要求を使用してください。ネットワークまたはスイッチ メモリ上のトラフィックが問題になる場合で、なおかつ通知が不要な場合は、トラップを使用してください。
SNMP ifIndex MIB オブジェクト値
NMS の IF-MIB は、物理インターフェイスまたは論理インターフェイスを識別する、ゼロより大きい一意の値である interface index(ifIndex)オブジェクト値の生成および割り当てを行います。スイッチの再起動またはスイッチのソフトウェアのアップグレード時に、スイッチは、インターフェイスにこれと同じ値を使用します。たとえば、スイッチのポート 2 に 10003 という ifIndex 値が割り当てられていると、スイッチの再起動後も同じ値が使用されます。
スイッチは、 表27-3 のいずれかの値を使用して、インターフェイスに ifIndex 値を割り当てます。
|
SVI 3 |
|
|
物理(ギガビット イーサネットまたは SFP 4 モジュール インターフェイス) |
|
SNMP の設定
- ・ SNMP のデフォルト設定
- ・ SNMP 設定時の注意事項
- ・ SNMP エージェントのディセーブル化
- ・ コミュニティ ストリングの設定
- ・ SNMP グループおよびユーザの設定
- ・ SNMP 通知の設定
- ・ エージェント コンタクトおよびロケーションの設定
- ・ SNMP を通して使用する TFTP サーバの制限
- ・ SNMP の例
SNMP のデフォルト設定
表27-4 に、SNMP のデフォルト設定を示します。
|
ディセーブル 5 |
|
|
キーワードを入力しなかった場合、セキュリティ レベルはデフォルトで noauth (noAuthNoPriv)になります。 |
|
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モードで次の手順を実行します。
no snmp-server グローバル コンフィギュレーション コマンドを使用すると、デバイス上で稼働しているすべてのバージョン(バージョン 1、バージョン 2C、バージョン 3)がディセーブルになります。SNMP をイネーブルにする特定の Cisco IOS コマンドは存在しません。最初に入力する snmp-server グローバル コンフィギュレーション コマンドによって、SNMP のすべてのバージョンがイネーブルになります。
コミュニティ ストリングの設定
SNMP マネージャとエージェントの関係を定義するには、SNMP コミュニティ ストリングを使用します。コミュニティ ストリングは、スイッチ上のエージェントへのアクセスを許可するパスワードと同様に機能します。ストリングに対応する次の特性を 1 つまたは複数指定することもできます。
- ・ コミュニティ ストリングを使用してエージェントにアクセスできる SNMP マネージャの IP アドレスのアクセス リスト
- ・ 指定のコミュニティにアクセスできるすべての MIB オブジェクトのサブセットを定義する MIB ビュー
- ・ コミュニティにアクセスできる MIB オブジェクトの読み書き権限または読み取り専用権限
スイッチ上でコミュニティ ストリングを設定するには、イネーブル EXEC モードで次の手順を実行します。
特定のコミュニティ ストリングを削除するには、 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 モードで次の手順を実行します。
SNMP 通知の設定
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生したときにスイッチが生成するシステム アラートです。デフォルトでは、トラップ マネージャは定義されず、トラップは送信されません。この Cisco IOS リリースが稼働しているスイッチでは、トラップ マネージャを無制限に設定できます。
表27-5 に、サポートされているスイッチ トラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにして、これを受信するようにトラップ マネージャを設定できます。
表27-5 に記載されている通知タイプを受信するには、特定のホストに対して 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 ユーザを設定します。
|
|
|
snmp-server group groupname { v1 | v2c | v3 { auth | noauth | priv } } [ read readview ] [ write writeview ] [ notify notifyview ] [ access access-list ] |
||
|
snmp-server host
host-addr
|
|
|
|
スイッチがトラップまたは情報を送信できるようにし、送信する通知のタイプを指定します。通知タイプの一覧については、 表27-5 を参照するか、 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 を使用して、読み取り専用権限ですべてのオブジェクトにアクセスできます。この設定では、スイッチはトラップを送信しません。
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
SNMP ステータスの表示
不正なコミュニティ ストリング エントリ、エラー、要求変数の数など、SNMP の入出力統計情報を表示するには、 show snmp イネーブル EXEC コマンドを使用します。また、 表27-6 に記載されたその他のイネーブル EXEC コマンドを使用して、SNMP 情報を表示することもできます。この場合に表示されるフィールドの詳細については、『 Cisco IOS Configuration Fundamentals Command Reference 』Release 12.2 を参照してください。
