この章では、Catalyst 3750スイッチにSNMP(簡易ネットワーク管理プロトコル)を設定する方法について説明します。特に明記しないかぎり、 スイッチ という用語はスタンドアロン スイッチおよびスイッチ スタックを意味します。
SNMPの概要
SNMPはアプリケーション レイヤ プロトコルで、マネージャとエージェント間の通信用メッセージ形式を規定します。SNMPシステムは、SNMPマネージャ、SNMPエージェント、およびMIB(管理情報ベース)で構成されます。SNMPマネージャは、CiscoWorksなどのNetwork Management System(NMS;ネットワーク管理システム)の一部に組み入れることができます。エージェントおよびMIBはスイッチ上で動作します。スイッチにSNMPを設定するには、マネージャとエージェント間の関係を定義します。
SNMPエージェントはMIB変数を格納し、SNMPマネージャは、この変数の値を要求または変更できます。マネージャは、エージェントから値を取得したり、エージェントに値を保管することもできます。エージェントは、デバイス パラメータおよびネットワーク データに関する情報の保管場所であるMIBからデータを収集します。また、エージェントはマネージャから要求されるデータ取得または設定に対応します。
エージェントは、非送信請求トラップをマネージャに送信します。トラップとは、ネットワーク上のある状態をSNMPマネージャに通知するメッセージです。トラップは、不正なユーザ認証、再起動、リンクのステータス(アップまたはダウン)、MAC(メディア アクセス制御)アドレス追跡、TCP接続の切断、ネイバとの接続の切断、その他の重要なイベントを表示します。
Catalyst 3750では、スイッチ スタック全体のSNMP要求およびトラップがスタック マスターで処理されます。スタック マスターは、すべてのスタック メンバーに関連する要求またはトラップをトランスペアレントに管理します。新しいスタック マスターが選択されると、新しいマスターが以前のスタック マスターの設定に従ってSNMP要求およびトラップの処理を継続します。SNMP管理ステーションとのIP接続は、新しいマスターが制御を引き継いだあとも、有効であるとみなされます。
スイッチ スタックの詳細については、 スイッチ スタックの管理 を参照してください。
- SNMPのバージョン
- SNMPマネージャの機能
- SNMPエージェントの機能
- SNMPコミュニティ ストリング
- SNMPによるMIB変数へのアクセス
- SNMP通知
- SNMP ifIndex MIBオブジェクト値
SNMPのバージョン
このソフトウェア リリースでは、次のSNMPバージョンをサポートしています。
- SNMPv1 ― SNMP、完全インターネット標準(RFC 1157に定義)。
- SNMPv2Cは、SNMPv2Classicのパーティベース管理およびセキュリティ フレームワークをSNMPv2Cのコミュニティストリングベース管理フレームワークに置き換えるもので、SNMPv2Classicの一括検索を保持しながら、エラー処理が改良されています。SNMPv2Cの機能は次のとおりです。
- SNMPv2 ― SNMPのバージョン2、インターネット標準草案(RFC 1902〜1907に定義)。
- SNMPv2C ― SNMPv2に対応するコミュニティストリングベース管理フレームワーク、実験的インターネット プロトコル(RFC 1901に定義)。
- SNMPv3 ― SNMPのバージョン3は、RFC 2273〜2275に定義された相互運用可能な標準ベース プロトコルです。SNMPv3はネットワーク経由でパケットの認証および暗号化を行い、デバイスへの安全なアクセスを実現します。以下のセキュリティ機能が組み込まれています。
- メッセージ整合性 ― パケットが送信中に不正に変更されないようにします。
- 認証 ― メッセージの送信元が有効かどうかを判別します。
- 暗号化 ― パッケージの内容をスクランブルし、不正送信元に読み取られないようにします。
SNMPv1とSNMPv2Cは、ともにコミュニティベース形式のセキュリティを使用します。エージェントのMIBにアクセスできるマネージャのコミュニティは、IPアドレスのアクセス制御リストとパスワードによって定義されています。
SNMPv2Cには、一括検索メカニズムと管理ステーションへのより詳細なエラー メッセージ報告機能が組み込まれています。一括検索メカニズムは表や大量の情報を検索し、必要なラウンドトリップ数を最小限にします。SNMPv2Cの改良されたエラー処理には、各種のエラー状況を区別する拡張エラー コードが組み込まれています。エラー状況は、SNMPv1の単一のエラー コードを使用して報告されます。SNMPv2Cのエラー リターン コードが、エラー タイプを報告します。
SNMPv3は、セキュリティ モデルとセキュリティ レベルの両方を備えています。セキュリティ モデルは、ユーザおよびそのユーザが所属するグループに対して設定する認証方法です。セキュリティ レベルは、1つのセキュリティ モデルの中で許可されるセキュリティのレベルを表します。セキュリティ モデルとセキュリティ レベルの組み合わせによって、SNMPパケットを処理するときに使用するセキュリティ メカニズムが決まります。使用可能なセキュリティ モデルはSNMPv1、SNMPv2C、およびSNMPv3です。
SNMPセキュリティ モデルおよびレベル に、セキュリティ モデルおよびセキュリティ レベルをさまざまに組み合わせた場合の特性を示します。
|
HMAC-MD5またはHMAC-SHAアルゴリズムに基づいて認証を行います。 |
管理ステーションがサポートするSNMPのバージョンを使用するには、SNMPエージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、およびSNMPv3プロトコルによる通信をサポートするようにソフトウェアを設定できます。
SNMPマネージャの機能
SNMPマネージャはMIB情報を使用し、 SNMPの動作 に示す動作を実行します。
|
テーブル内の変数から値を取得します。 1 |
|
|
get-bulk-request 2 |
|
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内のオブジェクトすべてに対する読み取りおよび書き込みアクセス権を与えます。ただし、コミュニティ ストリングへのアクセスは許可しません。
- read-write-all ― 許可した管理ステーションに、コミュニティ ストリングも含めたMIB内のオブジェクトすべてに対する読み取りおよび書き込みアクセス権を与えます。
SNMPによるMIB変数へのアクセス
NMSの一例は、CiscoWorksネットワーク管理ソフトウェアです。CiscoWorks2000ソフトウェアは、スイッチのMIB変数を使用してデバイスの変数を設定し、ネットワーク上のデバイスに対するポーリングを実行して特定の情報を入手します。ポーリング結果は、グラフ形式で表示されます。この結果を分析して、インターネットワーキングに関する問題のトラブルシューティング、ネットワーク パフォーマンスの改善、デバイスの設定の確認、トラフィック負荷のモニタなどを行うことができます。
SNMPネットワーク に示すように、SNMPエージェントはMIBからデータを収集します。エージェントはSNMPマネージャに対してトラップ(特定イベントの通知)を送信し、SNMPマネージャはトラップを受信してそれを処理します。トラップは、ネットワーク上で発生した不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MACアドレス追跡などに関する条件をSNMPマネージャに通知します。SNMPエージェントはさらに、SNMPマネージャから get-request 、 get-next-request 、および set-request 形式で送られるMIB関連のクエリに応答します。
サポートされているMIBとそのアクセス方法については、 サポートされているMIB を参照してください。
SNMP通知
SNMPを使用すると、スイッチは特定のイベントが発生したときにSNMPマネージャに通知を送信できます。SNMP通知は、トラップまたはインフォーム要求として送信できます。コマンド構文内に、トラップまたはインフォームを選択するオプションが指定されていない場合、キーワード traps はトラップまたはインフォーム、あるいはその両方を表します。SNMP通知をトラップまたはインフォームのどちらで送信するかを指定するには、 snmp-server host コマンドを使用します。
レシーバはトラップの受信時に確認応答を送信しないため、トラップは信頼性が低く、送信側はトラップが受信されたかどうかを判別できません。SNMPマネージャはインフォーム要求を受信すると、SNMP応答Protocol Data Unit(PDU;プロトコル データ ユニット)を使用してメッセージを確認します。送信側が応答を受信しない場合は、インフォーム要求を再送信します。このため、インフォームの方がトラップよりも目的の宛先に到達する可能性が高くなります。
インフォームはトラップよりも信頼性が高いため、スイッチおよびネットワーク内のリソースの消費量も多くなります。送信後すぐに廃棄されるトラップと異なり、インフォーム要求は応答を受信するか、または要求が時間切れになるまでメモリ内に保持されます。トラップの送信は1回限りですが、インフォームは何回も再送信されたり、再試行されることがあります。再試行が繰り返されるとトラフィックが増加し、ネットワークのオーバーヘッドが大きくなるため、トラップおよびインフォームを使用する場合は信頼性とリソースのどちらを重視するかの選択が必要となります。SNMPマネージャですべての通知を受信することが重要な場合はインフォーム要求を使用し、ネットワーク トラフィックまたはスイッチのメモリが重要で、通知が必要ない場合は、トラップを使用します。
SNMP ifIndex MIBオブジェクト値
NMSでは、IF-MIBによってinterface index(ifIndex)オブジェクト値の生成および割り当てが行われます。この値は、物理または論理インターフェイスを識別する0より大きな一意の数です。スイッチが再起動するか、スイッチ ソフトウェアがアップグレードされても、スイッチはインターフェイスで同じ値を使用します。たとえば、スイッチがポート2に10003のifIndex値を割り当てる場合、この値はスイッチの再起動後も変わりません。
スイッチはインターフェイスにifIndex値を割り当てる場合に、 ifIndex値 に記載されている値の1つを使用します。
|
SVI 3 |
|
|
物理(ギガビット イーサネットまたはSFP 4 モジュール インターフェイスなど) |
|
SNMPの設定
ここでは、スイッチにSNMPを設定する方法について説明します。具体的な設定情報は次のとおりです。
- SNMPのデフォルト設定
- SNMP設定時の注意事項
- SNMPエージェントのディセーブル化
- コミュニティ ストリングの設定
- SNMPグループおよびユーザの設定
- SNMP通知の設定
- エージェント コンタクトおよびロケーションの設定
- SNMP経由で使用するTFTPサーバの制限
- SNMPの例
SNMPのデフォルト設定
SNMPのデフォルト設定 に、SNMPのデフォルト設定を示します。
SNMP設定時の注意事項
SNMP グループ は、SNMPユーザをSNMPビューにマッピングするテーブルです。SNMP ユーザ は、SNMPグループのメンバーです。SNMP ホスト は、SNMPトラップ動作の受信側です。SNMP エンジンID は、ローカルまたはリモートSNMPエンジンの名前です。
- SNMPグループを設定する場合は、通知ビューを指定しないでください。 snmp-server host グローバル コンフィギュレーション コマンドを使用すると、ユーザ用の通知ビューが自動生成され、そのユーザに関連付けられたグループに追加されます。グループの通知ビューを変更すると、そのグループに関連付けられたすべてのユーザに影響を与えます。通知ビューを設定する時期については、『 Cisco IOS Configuration Fundamentals Command Reference 』Release 12.1を参照してください。
- リモート ユーザを設定するには、ユーザが所属するデバイスのリモートSNMPエージェントのIPアドレスまたはポート番号を指定します。
- 特定のエージェントのリモート ユーザを設定する前に、 snmp-server engineID グローバル コンフィギュレーション コマンドで remote オプションを指定し、SNMPエンジンIDを設定してください。リモート エージェントのSNMPエンジンIDおよびユーザ パスワードは、認証およびプライバシ ダイジェストを計算するために使用されます。リモート エンジンIDを先に設定しないと、コンフィギュレーション コマンドは失敗します。
- SNMPインフォームを設定する場合は、SNMPデータベース内のリモート エージェントのSNMPエンジンIDを設定してから、プロキシ要求またはインフォームを送信する必要があります。
- SNMPエンジンIDの値を変更すると、重大な悪影響を及ぼします。(コマンドラインから入力した)ユーザのパスワードは、パスワードおよびローカル エンジンIDに基づいてMD5またはSHAセキュリティ ダイジェストに変換されます。コマンドライン パスワードはその後、RFC 2274の要求に従って破棄されます。この破棄が原因で、エンジンIDの値が変更されると、SNMPv3ユーザのセキュリティ ダイジェストが無効になるので、 snmp-server user username グローバル コンフィギュレーション コマンドを使用してSNMPユーザを再設定しなければなりません。同様に、エンジンIDが変更された場合は、コミュニティ ストリングを再設定する必要があります。
SNMPエージェントのディセーブル化
no snmp-server グローバル コンフィギュレーション コマンドは、デバイス上で実行されているすべてのバージョン(バージョン1、バージョン2C、およびバージョン3)をディセーブルにします。SNMPをイネーブルにする特定のIOSコマンドはありません。最初に入力する snmp-server グローバル コンフィギュレーション コマンドによって、SNMPのすべてのバージョンがイネーブルになります。
コミュニティ ストリングの設定
SNMPマネージャとエージェント間の関係を定義するには、SNMPコミュニティ ストリングを使用します。コミュニティ ストリングはパスワードと同様に機能し、スイッチのエージェントへのアクセスを許可します。任意で、ストリングに関連付けられた次の特性を1つまたは複数指定することができます。
特定のコミュニティ ストリングを削除するには、 no snmp-server community string グローバル コンフィギュレーション コマンドを使用します。
次に、SNMPにストリング comaccess を割り当て、読み取り専用アクセスを許可し、IPアクセス リスト4がコミュニティ ストリングを使用してスイッチのSNMPエージェントにアクセスするよう指定する方法を示します。
Switch(config)# snmp-server community comaccess ro 4
SNMPグループおよびユーザの設定
スイッチ上のローカルまたはリモートSNMPサーバ エンジンに、識別名(エンジンID)を指定できます。SNMPユーザをSNMPビューにマッピングするSNMPサーバ グループを設定し、SNMPグループに新規ユーザを追加できます。
SNMP通知の設定
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生した場合に、スイッチが生成するシステム アラートです。デフォルトでトラップ マネージャは定義されていないため、トラップは送信されません。IOSリリースが稼働するスイッチでは、無制限にトラップ マネージャを設定できます。
スイッチの通知タイプ に、サポートされているスイッチのトラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにし、トラップ マネージャがトラップを受信するように設定できます。
スイッチの通知タイプ に示す通知タイプを受信する場合は、特定のホストに対して snmp-server host グローバル コンフィギュレーション コマンドを実行します。
ホストにトラップまたはインフォームを送信するようにスイッチを設定するには、イネーブルEXECモードで次の手順を実行します。
|
snmp-server user username groupname remote host [ udp-port port ] { v1 | v2c | v3 [ auth { md5 | sha } auth-password ]} [ encrypted ] [ access access-list ] |
||
|
snmp-server host
host-addr
|
|
|
|
トラップまたはインフォームを送信するスイッチをイネーブルにし、送信する通知タイプを指定します。通知タイプの一覧については、 スイッチの通知タイプ を参照するか、または snmp-server enable traps ? と入力してください。 複数のトラップ タイプをイネーブルにするには、トラップ タイプごとに snmp-server enable traps コマンドを個別に入力する必要があります。 |
||
|
(任意)送信元インターフェイスを指定します。これにより、トラップ メッセージ用のIPアドレスが設定されます。このコマンドを実行すると、インフォーム用の送信元IPアドレスも設定されます。 |
||
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を経由してコンフィギュレーション ファイルの保存およびロードに使用するTrivial File Transfer Protocol(TFTP;簡易ファイル転送プロトコル)サーバを、アクセス リストに指定されたサーバに限定するには、イネーブルEXECモードで次の手順を実行します。
SNMPの例
次に、SNMPのすべてのバージョンをイネーブルにする例を示します。この設定では、コミュニティ ストリング public を使用してすべてのオブジェクトに読み取り専用権限でアクセスするようにSNMPマネージャを許可します。この設定により、スイッチがトラップを送信することはありません。
Switch(config)# snmp-server community public
次に、コミュニティ ストリング public を使用してすべてのオブジェクトに読み取り専用権限でアクセスするようにSNMPマネージャを許可する例を示します。このスイッチは、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
SNMPステータスの表示
違法なコミュニティ ストリング エントリ、エラー、および要求された変数を含む、SNMP入出力の統計情報を表示するには、 show snmp イネーブルEXECコマンドを使用します。また、SNMP情報の表示には、 SNMP情報表示用のコマンド に記載されているその他のイネーブルEXECコマンドも使用できます。この出力に表示されるフィールドの詳細については、『 Cisco IOS Configuration Fundamentals Command Reference 』Release 12.1を参照してください。
