この章では、Catalyst 3550 スイッチに 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 に定義)
- ・ SNMPv2C は、SNMPv2Classic のパーティベース管理およびセキュリティ フレームワークを SNMPv2C のコミュニティストリングベース管理フレームワークに置き換えるもので、SNMPv2Classic の一括検索を保持しながら、エラー処理が改良されています。SNMPv2C の機能は次のとおりです。
- − SNMPv2 ― SNMP のバージョン 2、ドラフト インターネット規格(RFC1902 〜 1907 に定義)
- − SNMPv2C ― SNMPv2 に対応するコミュニティ ストリング ベースの管理フレームワーク、実験的インターネット プロトコル(RFC 1901 に定義)
- ・ SNMPv3 ― SNMP のバージョン 3 は、RFC 2273 〜 2275 に定義された相互運用可能な標準ベース プロトコルです。SNMPv3 はネットワーク経由でパケットの認証および暗号化を行い、デバイスへの安全なアクセスを実現します。以下のセキュリティ機能が組み込まれています。
SNMPv1 と SNMPv2C は、共にコミュニティベース形式のセキュリティを使用します。エージェントの MIB にアクセスできるマネージャのコミュニティは、IP アドレスの Access control List(ACL; アクセス制御リスト)とパスワードによって定義されています。
SNMPv2C には、一括検索メカニズムと管理ステーションへのより詳細なエラー メッセージ報告機能が組み込まれています。一括検索メカニズムは表や大量の情報を検索し、必要なラウンドトリップ数を最小限にします。SNMPv2C の改良されたエラー処理には、各種のエラー状況を区別する拡張エラー コードが組み込まれています。エラー状況は、SNMPv1 の単一のエラー コードを使用して報告されます。SNMPv2C のエラー リターン コードが、エラー タイプを報告します。
SNMPv3 は、セキュリティ モデルとセキュリティ レベルの両方を備えています。セキュリティ モデルは、ユーザおよびそのユーザが所属するグループに対して設定する認証方法です。セキュリティ レベルは、1 つのセキュリティ モデルの中で許可されるセキュリティのレベルを表します。セキュリティ モデルとセキュリティ レベルの組み合わせによって、SNMP パケットを処理するときに使用するセキュリティ メカニズムが決まります。使用可能なモデルは SNMPv1、SNMPv2C、および SNMPv3 です。
表28-1 に、セキュリティ モデルおよびセキュリティ レベルをさまざまに組み合わせた場合の特性を示します。
|
HMAC-MD5 または HMAC-SHA アルゴリズムに基づいて認証を行います。 |
管理ステーションがサポートする SNMP のバージョンを使用するには、SNMP エージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、または SNMPv3 を使用した通信をサポートするようにソフトウェアを設定できます。
SNMP マネージャの機能
SNMP マネージャは MIB 情報を使用し、 表28-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 から要求された値に変更します。
また、SNMP エージェントは非送信請求トラップ メッセージを送信し、エージェントで重要なイベントが発生したことを NMS に通知します。トラップ条件の例には、ポートまたはモジュールが起動または停止した場合、スパニングツリー トポロジーの変更が発生した場合、認証障害が発生した場合などがあります。
SNMP コミュニティ ストリング
SNMP コミュニティ ストリングは MIB オブジェクトへのアクセスを認証し、内蔵パスワードとして機能します。NMS がスイッチにアクセスするには、NMS 上のコミュニティ ストリングの定義が、スイッチの 3 つのコミュニティ ストリングの定義と最低限 1 つ一致する必要があります。
- ・ read-only(RO) ― 許可した管理ステーションに、コミュニティ ストリングを除く MIB 内のオブジェクトすべてに対する読み取りアクセス権を与えます。ただし、書き込みアクセスは許可しません。
- ・ read-write(RW) ― 許可した管理ステーションに、MIB 内のオブジェクトすべてに対する読み取りおよび書き込みアクセス権を与えます。ただし、コミュニティ ストリングへのアクセスは許可しません。
SNMP による MIB 変数へのアクセス
NMS の一例は、CiscoWorks ネットワーク管理ソフトウェアです。CiscoWorks 2000 ソフトウェアは、スイッチの MIB 変数を使用してデバイスの変数を設定し、ネットワーク上のデバイスに対するポーリングを実行して特定の情報を入手します。ポーリング結果は、グラフ形式で表示されます。この結果を分析して、インターネットワーキングに関する問題のトラブルシューティング、ネットワーク パフォーマンスの改善、デバイスの設定の確認、トラフィック負荷のモニタなどを行うことができます。
図28-1 に示すように、SNMP エージェントは MIB からデータを収集します。エージェントは SNMP マネージャに対してトラップ(特定イベントの通知)を送信し、SNMP マネージャはトラップを受信してそれを処理します。トラップは、ネットワーク上で発生した不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC アドレス追跡などに関する条件を SNMP マネージャに通知します。SNMP エージェントはさらに、SNMP マネージャから get-request 、 get-next-request 、 set-request 形式で送られる MIB 関連のクエリーに応答します。
図28-1 SNMP ネットワーク
サポートされている MIB とそのアクセス方法については、 付録A 「サポートされている MIB」 を参照してください。
SNMP 通知
SNMP を使用し、スイッチは特定のイベントが発生したときに SNMP マネージャに通知を送信できます。SNMP 通知は、トラップまたはインフォーム要求として送信されます。コマンド構文内に、トラップまたはインフォームを選択するオプションが指定されていない場合、キーワード traps はトラップまたはインフォーム、またはその両方を表します。SNMP 通知をトラップまたはインフォームのどちらで送信するかを指定するには、 snmp-server host コマンドを使用します。
レシーバーはトラップの受信時に確認応答を送信しないため、トラップは信頼性が低く、送信側はトラップが受信されたかどうかを判別できません。SNMP マネージャはインフォーム要求を受信すると、SNMP 応答 Protocol Data Unit(PDU; プロトコル データ ユニット)を使用してメッセージを確認します。送信側が応答を受信しない場合は、インフォーム要求を再送信します。このため、インフォームの方がトラップよりも目的の宛先に到達する可能性が高くなります。
インフォームはトラップよりも信頼性が高いため、スイッチおよびネットワーク内のリソースの消費量も多くなります。送信後すぐに廃棄されるトラップと異なり、インフォーム要求は応答が受信されるか、または要求が時間切れになるまでメモリ内に保持されます。トラップの送信は 1 回限りですが、インフォームは何回も再送信されたり、再試行されることがあります。再試行が繰り返されるとトラフィックが増加し、ネットワークのオーバーヘッドが大きくなるため、トラップおよびインフォームには信頼性とリソースのバランスが必要となります。SNMP マネージャですべての通知を受信することが重要な場合はインフォーム要求を使用し、ネットワーク トラフィックまたはスイッチのメモリが重要で、通知が必要ない場合は、トラップを使用します。
SNMP ifIndex MIB オブジェクト値
NMSでは、IF-MIBはインターフェイス インデックス(ifIndex)のオブジェクト値を生成および割り当てます。オブジェクト値は物理または論理インターフェイスを識別し、ゼロより大きい一意の識別番号です。スイッチが再起動する、またはスイッチのソフトウェアがアップグレードされるとき、スイッチはインターフェイスに同じ値を使用します。たとえば、ポート2にifIndex値10003を割り当てた場合、スイッチが再起動したあとでもこの値は同じです。
スイッチ上で ifindex の持続性をイネーブルにするには、 snmp-server ifindex persist グローバル コンフィギュレーション コマンドを使用します。
SNMP の設定
ここでは、スイッチにSNMPを設定する方法について説明します。具体的な設定情報は次のとおりです。
- ・ SNMP のデフォルト設定
- ・ SNMP 設定時の注意事項
- ・ SNMP エージェントのディセーブル化
- ・ コミュニティ ストリングの設定
- ・ SNMP グループおよびユーザの設定
- ・ SNMP 通知の設定
- ・ SNMP トラップ通知プライオリティの設定
- ・ エージェント コンタクトおよびロケーション情報の設定
- ・ SNMP 経由で使用する TFTP サーバの制限
- ・ SNMP の例
SNMP のデフォルト設定
表28-3 に、SNMP のデフォルト設定を示します。
|
ディセーブル 3 |
|
SNMP 設定時の注意事項
スイッチの起動時、スタートアップ コンフィギュレーションに snmp-server グローバル コンフィギュレーション コマンドが最低 1 つでもあれば、SNMP エージェントはイネーブルになります。
SNMP グループ は、SNMP ユーザを SNMP ビューにマッピングするテーブルです。SNMP ユーザ は、SNMP グループのメンバーです。SNMP ホスト は、SNMP トラップ動作の受信側です。SNMP エンジン ID は、ローカルまたはリモート 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 データベース内のリモート エージェントの SNMP エンジン ID を設定してから、プロキシ要求またはインフォームを送信する必要があります。
- ・ ローカル ユーザがリモート ホストと関連していない場合、スイッチはインフォームを auth (authNoPriv)および priv (authPriv)認証レベル用に送信しません。
- ・ SNMP エンジン ID の値を変更すると、重大な悪影響を及ぼします。ユーザのパスワード(コマンド ラインに入力したパスワード)が、パスワードおよびローカル エンジン ID に基づいて Message Digest 5(MD5)または Secure Hash Algorithm(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 グローバル コンフィギュレーション コマンドを使用します。
次に、SNMP にストリング comaccess を割り当て読み取り専用アクセスを許可し、IP アクセス リスト 4 がコミュニティ ストリングを使用してスイッチの SNMP エージェントにアクセスするよう指定する方法を示します。
Switch(config)# snmp-server community comaccess ro 4
SNMP グループおよびユーザの設定
スイッチのローカルまたはリモート SNMP サーバ エンジンに、識別名(engineID)を指定できます。SNMP ユーザを SNMP ビューにマッピングする SNMP サーバ グループを設定し、SNMP グループに新規ユーザを追加できます。
スイッチで SNMP を設定するには、イネーブル EXEC モードで次の手順を実行します。
SNMP 通知の設定
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生した場合に、スイッチが生成するシステム アラートです。デフォルトではトラップ マネージャが定義されていないため、トラップは送信されません。この Cisco IOS リリースが稼働するスイッチでは、無制限にトラップ マネージャを設定できます。
表28-4 に、サポートされているスイッチのトラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにし、トラップ マネージャがトラップを受信するように設定できます。
表28-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 ユーザを設定します。
|
|
|
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 ] |
|
|
|
トラップまたはインフォームを送信するスイッチをイネーブルにし、送信する通知タイプを指定します。通知タイプの一覧については、 表28-4 を参照するか、または snmp-server enable traps ? を入力してください。 複数のトラップ タイプをイネーブルにする場合は、トラップ タイプごとに snmp-server enable traps コマンドを入力します。 |
||
|
(任意)送信元インターフェイスを指定します。これにより、トラップ メッセージ用の IP アドレスが設定されます。このコマンドを実行すると、インフォーム用の送信元 IP アドレスも設定されます。 |
||
|
(任意)各トラップ ホストのメッセージ キュー長を設定します。指定できる範囲は 1 〜 1000 で、デフォルトは 10 です。 |
||
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 トラップ通知プライオリティの設定
送信 SNMP トラップ通知にプライオリティをつけることにより、輻輳が発生してもネットワーク間を効率的に移動させることができます。スイッチには、次の SNMP パケットに関するプライオリティ オプションがあります。
これらのマーカーは、SNMP パケットがネットワーク間を移動する際に受信するプライオリティを指定します。最大 8 つの異なる IP precedence マーキングまたは最大 64 個の異なる IP DSCP マーキングを設定できます。デフォルトの IP precedence および DSCP マーカーは 0 で、SNMP パケットを通常のトラフィックとして転送します。マーカーの最大値(IP precedence は 7、DSCP は 63)は、一般にネットワーク制御トラフィック用に予約されています。ネットワーク内の SNMP 通知の重要度に対応する値を選択してください。たとえば、発信 SNMP 通知により高いプライオリティを割り当てるには、IP precedence を 6 に設定します。
DSCP は、IP precedence と部分的に下位互換性があります。IP precedence 値のように機能する DSCP 値を選択するには、0、8、16、24、32、40、48、および 56 の値を使用します。DSCP には、64 個の値を使用することが可能ですが、ネットワークは最下位ビットを無視するか、または値のブロックを同じものとして扱います。
スイッチに発信 SNMP トラップ通知のプライオリティを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
snmp-server ip { precedence precedence-value | dscp dscp-value } |
||
SNMP トラップを受信するようにホストを指定する場合は、
snmp-server host
グローバル コンフィギュレーション コマンドを使用します。特定のトラップ タイプをイネーブルにするには、
snmp-server enable traps
グローバル コンフィギュレーション コマンドを使用します。
エージェント コンタクトおよびロケーション情報の設定
SNMP エージェントのシステム コンタクトおよびロケーションを設定して、コンフィギュレーション ファイルからこれらの記述にアクセスできるようにするには、イネーブル EXEC モードで次の手順を実行します。
SNMP 経由で使用する TFTP サーバの制限
SNMP を経由してコンフィギュレーション ファイルの保存およびロードに使用する TFTP(簡易ファイル転送プロトコル)サーバを、アクセス リストに指定されたサーバに限定するには、イネーブル EXEC モードで次の手順を実行します。
SNMP の例
最初に、SNMP のすべてのバージョンをイネーブルにする例を示します。この設定では、SNMP マネージャが読み取り専用権限でコミュニティ ストリング public を使用し、すべてのオブジェクトにアクセスすることを許可します。この設定により、スイッチがトラップを送信することはありません。
Switch(config)# snmp-server community public
次に、SNMP マネージャが読み取り専用権限でコミュニティ ストリング public を使用し、すべてのオブジェクトへのアクセスを許可する例を示します。このスイッチは、SNMPv1 を使用してホスト 192.180.1.111 および 192.180.1.33 に、SNMPv2C を使用してホスト 192.180.1.27 に、それぞれ 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 マネージャは、オブジェクトにアクセスしません。コミュニティ ストリング public を使用し、SNMPv2C によって SNMP 認証失敗トラップがホスト 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 コマンドを使用します。 表28-5 に示されたイネーブル EXEC コマンドを使用し、SNMP 情報を表示することもできます。この出力に表示されるフィールドの詳細については、『 Cisco IOS Configuration Fundamentals Command Reference 』Release 12.2 を参照してください。
