この章では、Catalyst 3550スイッチに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アドレスのアクセス制御リストとパスワードによって定義されています。
SNMPv2Cには、一括検索メカニズムと管理ステーションへのより詳細なエラー メッセージ報告機能が組み込まれています。一括検索メカニズムは表や大量の情報を検索し、必要なラウンドトリップ数を最小限にします。SNMPv2Cの改良されたエラー処理には、各種のエラー状況を区別する拡張エラー コードが組み込まれています。エラー状況は、SNMPv1の単一のエラー コードを使用して報告されます。SNMPv2Cのエラー リターン コードが、エラー タイプを報告します。
SNMPv3は、セキュリティ モデルとセキュリティ レベルの両方を備えています。セキュリティ モデルは、ユーザおよびそのユーザが所属するグループに対して設定する認証方法です。セキュリティ レベルは、1つのセキュリティ モデルの中で許可されるセキュリティのレベルを表します。セキュリティ モデルとセキュリティ レベルの組み合わせによって、SNMPパケットを処理するときに使用するセキュリティ メカニズムが決まります。使用可能なモデルはSNMPv1、SNMPv2C、およびSNMPv3です。
表27-1 に、セキュリティ モデルおよびセキュリティ レベルをさまざまに組み合わせた場合の特性を示します。
|
HMAC-MD5またはHMAC-SHAアルゴリズムに基づいて認証を行います。 |
管理ステーションがサポートするSNMPのバージョンを使用するには、SNMPエージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、またはSNMPv3を使用した通信をサポートするようにソフトウェアを設定できます。
SNMPマネージャの機能
SNMPマネージャはMIB情報を使用し、 表27-2 に示す動作を実行します。
|
テーブル内の変数から値を取得します。 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内のオブジェクトすべてに対する読み取りおよび書き込みアクセス権を与えます。ただし、コミュニティ ストリングへのアクセスは許可しません。
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通知をトラップまたはインフォームのどちらで送信するかを指定するには、 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のデフォルト設定
表27-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リリースが稼働するスイッチでは、無制限にトラップ マネージャを設定できます。
表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ユーザを設定します。
|
|
|
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-4 を参照するか、または 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トラップ通知プライオリティの設定
送信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コマンドを使用します。 表27-5 に示されたイネーブルEXECコマンドを使用し、SNMP情報を表示することもできます。この出力に表示されるフィールドの詳細については、『 Cisco IOS Configuration Fundamentals Command Reference 』Release 12.2を参照してください。
