SNMP の概要
SNMP はアプリケーション レイヤ プロトコルで、マネージャとエージェント間の通信用メッセージ形式を規定します。SNMP システムは、SNMP マネージャ、SNMP エージェント、および
Management Information Base(MIB ; 管理情報ベース)で構成されます。SNMP マネージャは、
CiscoWorks などの Network Management System(NMS; ネットワーク管理システム)の一部に組み入れることができます。エージェントおよび MIB はスイッチ上で動作します。スイッチに SNMP を設定するには、マネージャとエージェント間の関係を定義します。
SNMP エージェントは MIB 変数を格納し、SNMP マネージャは、この変数の値を要求または変更できます。マネージャは、エージェントから値を取得したり、エージェントに値を保管することもできます。エージェントは、デバイス パラメータおよびネットワーク データに関する情報の保管場所である MIB からデータを収集します。また、エージェントはマネージャから要求されるデータ取得または設定に対応します。
エージェントは、非送信請求トラップをマネージャに送信します。トラップとは、ネットワーク上のある状態を SNMP マネージャに通知するメッセージです。トラップは、不正なユーザ認証、再起動、リンクのステータス(アップまたはダウン)、MAC(メディア アクセス制御)アドレス追跡、TCP 接続の切断、ネイバとの接続の切断、その他の重要なイベントを意味します。
Catalyst 3750 では、スイッチ スタック全体の SNMP 要求およびトラップがスタック マスターで処理されます。スタック マスターは、すべてのスタック メンバーに関連する要求またはトラップをトランスペアレントに管理します。新しいスタック マスターが選択されると、新しいマスターが以前のスタック マスターの設定に従って SNMP 要求およびトラップの処理を継続します。SNMP 管理ステーションとの IP 接続は、新しいマスターが制御を引き継いだあとも、有効であるとみなされます。
スイッチ スタックの詳細については、 第 5 章「スイッチ スタックの管理」 を参照してください。
ここでは、次の概要について説明します。
• 「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 はネットワーク経由でパケットの認証および暗号化を行い、デバイスへの安全なアクセスを実現します。以下のセキュリティ機能が組み込まれています。
–メッセージ整合性 ― パケットが送信中に不正に変更されないようにします。
–認証 ― メッセージの送信元が有効かどうか判別します。
–暗号化 ― パッケージの内容をスクランブルし、不正送信元に読み取られないようにします。
(注) 暗号化を選択する場合は、privキーワードを指定します。このキーワードは、暗号化ソフトウェア イメージがインストールされている場合のみ使用できます。
SNMPv1 と SNMPv2C は、ともにコミュニティベース形式のセキュリティを使用します。エージェントの MIB にアクセスできるマネージャのコミュニティは、IP アドレスのアクセス制御リストとパスワードによって定義されています。
SNMPv2C には、一括検索メカニズムと管理ステーションへのより詳細なエラー メッセージ報告機能が組み込まれています。一括検索メカニズムは表や大量の情報を検索し、必要なラウンドトリップ数を最小限にします。SNMPv2C の改良されたエラー処理には、各種のエラー状況を区別する拡張エラー コードが組み込まれています。エラー状況は、SNMPv1 の単一のエラー コードを使用して報告されます。SNMPv2C のエラー リターン コードが、エラー タイプを報告します。
SNMPv3 は、セキュリティ モデルとセキュリティ レベルの両方を備えています。セキュリティ モデルは、ユーザおよびそのユーザが所属するグループに対して設定する認証方法です。セキュリティ レベルは、1 つのセキュリティ モデルの中で許可されるセキュリティのレベルを表します。セキュリティ モデルとセキュリティ レベルの組み合わせによって、SNMP パケットを処理するときに使用するセキュリティ メカニズムが決まります。使用可能なセキュリティ モデルは SNMPv1、SNMPv2C、および SNMPv3 です。
表31-1 に、セキュリティ モデルおよびセキュリティ レベルをさまざまに組み合わせた場合の特性を示します。
表31-1 SNMP セキュリティ モデルおよびレベル
|
|
|
|
|
SNMPv1 |
noAuthNoPriv |
コミュニティ ストリング |
なし |
認証にコミュニティ ストリングの照合を使用します。 |
SNMPv2C |
noAuthNoPriv |
コミュニティ ストリング |
なし |
認証にコミュニティ ストリングの照合を使用します。 |
SNMPv3 |
noAuthNoPriv |
ユーザ名 |
なし |
認証にユーザ名の照合を使用します。 |
SNMPv3 |
authNoPriv |
MD5 または SHA |
なし |
HMAC-MD5 または HMAC-SHA アルゴリズムに基づいて認証を行います。 |
SNMPv3 |
authPriv (暗号化ソフトウェア イメージが必要) |
MD5 または SHA |
DES |
HMAC-MD5 または HMAC-SHA アルゴリズムに基づいて認証を行います。 CBC-DES(DES-56)標準に基づく認証のほかに、DES(56 ビット)暗号化を行います。 |
管理ステーションがサポートする SNMP のバージョンを使用するには、SNMP エージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、または SNMPv3 による通信をサポートするようにソフトウェアを設定できます。
SNMP マネージャの機能
SNMP マネージャは MIB 情報を使用し、 表31-2 に示す動作を実行します。
表31-2 SNMP の動作
|
|
get-request |
特定の変数から値を取得します。 |
get-next-request |
テーブル内の変数から値を取得します。 |
get-bulk-request |
テーブルの複数行など、大きなデータブロックを取得します。小さなデータブロックを何回も送信する必要はありません。 |
get-response |
NMS から送られる get-request、get-next-request、および set-request に応答します。 |
set-request |
特定の変数に値を格納します。 |
trap |
イベントの発生時に、SNMP エージェントから SNMP マネージャに送られる、非送信請求メッセージです。 |
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 アプリケーション間のメッセージ交換を管理します。Network Assistant ソフトウェアは、コマンド スイッチ上で最初に設定された RW および RO コミュニティ ストリングにメンバー スイッチ番号( @esN 、 N はスイッチ番号)を追加し、これらのストリングをメンバー スイッチに伝播します。詳細については、 第 6 章「スイッチのクラスタ設定」 および Cisco.com から入手できる『 Getting Started with Cisco Network Assistant 』を参照してください。
SNMP による MIB 変数へのアクセス
NMS の一例は、CiscoWorks ネットワーク管理ソフトウェアです。CiscoWorks2000 ソフトウェアは、スイッチの MIB 変数を使用してデバイスの変数を設定し、ネットワーク上のデバイスに対するポーリングを実行して特定の情報を入手します。ポーリング結果は、グラフ形式で表示されます。この結果を分析して、インターネットワーキングに関する問題のトラブルシューティング、ネットワーク パフォーマンスの改善、デバイスの設定の確認、トラフィック負荷のモニタなどを行うことができます。
図31-1に示すように、SNMP エージェントは MIB からデータを収集します。エージェントは SNMP マネージャに対してトラップ(特定イベントの通知)を送信し、SNMP マネージャはトラップを受信してそれを処理します。トラップは、ネットワーク上で発生した不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC アドレス追跡などに関する条件を SNMP マネージャに通知します。SNMP エージェントはさらに、SNMP マネージャから get-request 、 get-next-request 、および set-request 形式で送られる MIB 関連のクエリーに応答します。
図31-1 SNMP ネットワーク
サポートされている MIB とそのアクセス方法については、 付録 A「サポートされている MIB」 を参照してください。
SNMP 通知
SNMP を使用すると、スイッチは特定のイベントが発生したときに SNMP マネージャに通知を送信できます。SNMP 通知は、トラップまたはインフォーム要求として送信できます。コマンド構文内に、トラップまたはインフォームを選択するオプションが指定されていない場合、キーワード traps はトラップまたはインフォーム、あるいはその両方を表します。SNMP 通知をトラップまたはインフォームのどちらで送信するかを指定するには、 snmp-server host コマンドを使用します。
(注) SNMPv1 はインフォームをサポートしていません。
レシーバーはトラップの受信時に確認応答を送信しないため、トラップは信頼性が低く、送信側はトラップが受信されたかどうかを判別できません。SNMP マネージャはインフォーム要求を受信すると、SNMP 応答 Protocol Data Unit(PDU; プロトコル データ ユニット)を使用してメッセージを確認します。送信側が応答を受信しない場合は、インフォーム要求を再送信します。このため、インフォームの方がトラップよりも目的の宛先に到達する可能性が高くなります。
インフォームはトラップよりも信頼性が高いため、スイッチおよびネットワーク内のリソースの消費量も多くなります。送信後すぐに廃棄されるトラップと異なり、インフォーム要求は応答を受信するか、または要求が時間切れになるまでメモリ内に保持されます。トラップの送信は 1 回限りですが、インフォームは何回も再送信されたり、再試行されることがあります。再試行が繰り返されるとトラフィックが増加し、ネットワークのオーバーヘッドが大きくなるため、トラップおよびインフォームを使用する場合は信頼性とリソースのどちらを重視するかの選択が必要となります。SNMP マネージャですべての通知を受信することが重要な場合はインフォーム要求を使用し、ネットワーク トラフィックまたはスイッチのメモリが重要で、通知が必要ない場合は、トラップを使用します。
SNMP ifIndex MIB オブジェクト値
NMS では、IF-MIB によって interface index(ifIndex)オブジェクト値の生成および割り当てが行われます。この値は、物理または論理インターフェイスを識別する 0 より大きな一意の数です。スイッチが再起動するか、スイッチ ソフトウェアがアップグレードされても、スイッチはインターフェイスで同じ値を使用します。たとえば、スイッチがポート 2 に 10003 の ifIndex 値を割り当てた場合、この値はスイッチの再起動後も変わりません。
スイッチはインターフェイスに ifIndex 値を割り当てる場合に、 表31-3 に記載されている値の 1 つを使用します。
表31-3 ifIndex 値
|
|
SVI |
1~4999 |
EtherChannel |
5000~5012 |
ループバック |
5013~5077 |
トンネル |
5078~5142 |
物理(ギガビット イーサネットまたは SFPモジュール インターフェイスなど) |
10000~14500 |
ヌル |
14501 |
(注) スイッチが範囲内の値を順番に使用するとは限りません。
SNMP の設定
ここでは、次の設定について説明します。
• 「SNMP のデフォルト設定」
• 「SNMP 設定時の注意事項」
• 「SNMP エージェントのディセーブル化」
• 「コミュニティ ストリングの設定」
• 「SNMP グループおよびユーザの設定」
• 「SNMP 通知の設定」
• 「エージェント コンタクトおよびロケーションの設定」
• 「SNMP 経由で使用する TFTP サーバの制限」
• 「SNMP の例」
SNMP のデフォルト設定
表31-4 に、SNMP のデフォルト設定を示します。
表31-4 SNMP のデフォルト設定
|
|
SNMP エージェント |
ディセーブル |
SNMP トラップ レシーバー |
設定なし |
SNMP トラップ |
TCP 接続のトラップ( tty )を除きイネーブルなし |
SNMP バージョン |
version キーワードを指定しない場合、デフォルトはバージョン 1 です。 |
SNMPv3 認証 |
キーワードを指定しない場合、デフォルトは noauth (noAuthNoPriv)セキュリティ レベルです。 |
SNMP 通知タイプ |
タイプを指定しない場合、すべての通知が送信されます。 |
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 データベース内のリモート エージェントの SNMP エンジン ID を設定してから、プロキシ要求またはインフォームを送信できます。
• ローカル ユーザがリモート ホストに関連付けられていない場合、スイッチは auth (authNoPriv)および priv (authPriv)認証レベルのインフォームを送信しません。
• SNMP エンジン ID の値を変更すると、重大な悪影響を及ぼします。(コマンドラインから入力した)ユーザのパスワードは、パスワードおよびローカル エンジン ID に基づいて MD5 または SHA セキュリティ ダイジェストに変換されます。コマンドライン パスワードはその後、RFC 2274 の要求に従って破棄されます。この破棄が原因で、エンジン ID の値が変更されると、SNMPv3 ユーザのセキュリティ ダイジェストが無効になるので、 snmp-server user username グローバル コンフィギュレーション コマンドを使用して SNMP ユーザを再設定する必要があります。同様に、エンジン ID が変更された場合は、コミュニティ ストリングを再設定する必要があります。
SNMP エージェントのディセーブル化
SNMP エージェントをディセーブルにするには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
no snmp-server |
SNMP エージェントの動作をディセーブルにします。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show running-config |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
no snmp-server グローバル コンフィギュレーション コマンドは、デバイス上で実行されているすべてのバージョン(バージョン 1、バージョン 2C、およびバージョン 3)をディセーブルにします。SNMP をイネーブルにする特定の Cisco IOS コマンドはありません。最初に入力する snmp-server グローバル コンフィギュレーション コマンドによって、SNMP のすべてのバージョンがイネーブルになります。
コミュニティ ストリングの設定
SNMP マネージャとエージェント間の関係を定義するには、SNMP コミュニティ ストリングを使用します。コミュニティ ストリングはパスワードと同様に機能し、スイッチのエージェントへのアクセスを許可します。任意で、ストリングに関連付けられた次の特性を 1 つまたは複数指定できます。
• エージェントへアクセスするコミュニティ ストリングの使用が許可されている、SNMP マネージャの IP アドレスに関するアクセス リスト。
• MIB ビュー。指定のコミュニティにアクセス可能な全 MIB オブジェクトのサブセットを定義します。
• コミュニティにアクセス可能な MIB オブジェクトの読み取りおよび書き込み権限、または読み取り専用権限。
スイッチ上でコミュニティ ストリングを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server community string [ view view-name ] [ ro | rw ] [ access-list-number ] |
コミュニティ ストリングを設定します。 • string には、パスワードのように機能し、SNMP プロトコルへのアクセスを許可するストリングを指定します。任意の長さで、1 つまたは複数のコミュニティ ストリングを設定できます。 • (任意) view には、コミュニティにアクセス可能なビュー レコードを指定します。 • (任意)許可した管理ステーションに MIB オブジェクトを検索させる場合は読み取り専用( ro )、MIB オブジェクトを検索して変更させる場合は読み取り/書き込み( rw )を指定します。デフォルトでは、コミュニティ ストリングはすべてのオブジェクトへの読み取り専用アクセスを許可します。 • (任意) access-list-number には、1 ~ 99 および 1300 ~ 1999 の範囲で標準の IP アクセス リスト番号を入力します。 |
ステップ 3 |
access-list access-list-number { deny | permit } source [ source-wildcard ] |
(任意)ステップ 2 で標準の IP アクセス リスト番号を指定した場合はリストを作成し、必要な回数だけこのコマンドを繰り返します。 • access-list-number には、ステップ 2 で指定したアクセス リスト番号を入力します。 • deny キーワードを指定すると、条件が一致した場合にアクセスが拒否されます。 permit キーワードを指定すると、条件が一致した場合にアクセスが許可されます。 • source には、エージェントへアクセスするコミュニティ ストリングの使用が許可されている SNMP マネージャの IP アドレスを入力します。 • (任意) source-wildcard を指定する場合は、送信元に適用するワイルドカード ビットをドット付き 10 進表記で入力します。無視するビット位置に 1 を配置します。 アクセス リストの末尾には、すべてに適用される暗黙の拒否ステートメントが常に存在することに注意してください。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
(注) SNMP コミュニティのアクセスをディセーブルにするには、そのコミュニティに対するコミュニティ ストリングをヌル ストリングに設定します(コミュニティ ストリングに値を入力しない)。
特定のコミュニティ ストリングを削除するには、 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 を設定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server engineID { local engineid-string | remote ip-address [ udp-port port-number ] engineid-string } |
SNMP のローカル コピーまたはリモート コピーのいずれかの名前を設定します。 • engineid-string は、SNMP のコピー名を含む 24 文字の ID ストリングです。後続の値がゼロの場合、エンジン ID に 24 文字すべてを指定する必要はありません。後続値がすべてゼロとなる位置まで、エンジン ID の一部を指定します。たとえば、123400000000000000000000 のエンジン ID を設定する場合は、 snmp-server engineID local 1234 と入力します。 • remote を選択した場合は、SNMP のリモート コピーが格納されたデバイスの ip-address 、および任意でリモート デバイス上の UDP ポートを指定します。デフォルト値は 162 です。 |
ステップ 3 |
snmp-server group groupname { v1 | v2c | v3 { auth | noauth | priv } } [ read readview ] [ write writeview ] [ notify notifyview ] [ access access-list ] |
リモート デバイスに新規の SNMP グループを設定します。 • groupname には、グループ名を指定します。 • セキュリティ モデルを指定します。 – v1 は、使用可能なセキュリティ モデルのうち、安全性が最も低いモデルです。 – v2c は、2 番めに安全性が低いモデルです。このモデルを使用すると、インフォームおよび整数を標準の 2 倍の幅で伝送できます。 – v3 は最も安全性が高いモデルで、認証レベルを選択する必要があります。 auth ― Message Digest 5(MD5)および Secure Hash Algorithm(SHA)パケット認証をイネーブルにします。 noauth ― noAuthNoPriv セキュリティ レベルをイネーブルにします。キーワードを指定しない場合は、このレベルがデフォルトです。 priv ― Data Encryption Standard(DES; データ暗号化規格)パケット暗号化(別名 プライバシ )をイネーブルにします。
(注) privキーワードは、暗号化ソフトウェア イメージがインストールされている場合のみ使用できます。
• (任意) read readview には、エージェントの内容表示のみが可能なビューの名前を示すストリング(64 文字以下)を指定します。 • (任意) write writeview には、データを入力してエージェントの内容を設定するビューの名前を示すストリング(64 文字以下)を指定します。 • (任意) notify notifyview には、通知、インフォーム、またはトラップを指定するビューの名前を示すストリング(64 文字以下)を指定します。 • (任意) access access-list には、アクセス リストの名前を示すストリング(64 文字以下)を指定して、入力します。 |
ステップ 4 |
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 ]} |
SNMP グループに新規ユーザを追加します。 • username は、エージェントに接続されたホスト上のユーザ名です。 • groupname は、ユーザが関連付けられているグループの名前です。 • (ユーザが属するリモート SNMP エンティティおよびホスト名を指定する場合は、 remote を入力します。このエンティティの IP アドレスを指定する場合は、さらにオプションの UDP ポート番号を指定します。デフォルト値は 162 です。 • SNMP バージョン番号( v1 、 v2c 、または v3 )を入力します。 v3 を入力する場合は、次のオプションを使用します。 – encrypted ― パスワードが暗号化形式で表示されるように指定します。このキーワードは、 v3 キーワードが指定されている場合のみ、使用できます。 – auth ― 認証レベル設定セッションです。HMAC-MD5-96( md5 )または HMAC-SHA-96( sha )認証レベルのいずれかを指定でき、パスワード ストリング(64 文字以下)が必要となります。 • (任意) access access-list には、アクセス リストの名前を示すストリング(64 文字以下)を指定して、入力します。 |
ステップ 5 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 6 |
show running-config |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
SNMP 通知の設定
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生した場合に、スイッチが生成するシステム アラートです。デフォルトでトラップ マネージャは定義されていないため、トラップは送信されません。Cisco IOS リリースが稼働するスイッチでは、無制限にトラップ マネージャを設定できます。
(注) 多くのコマンドは、コマンド構文内でワードtrapsを使用します。トラップまたはインフォームを選択するオプションがコマンド内に指定されていない場合、キーワードtrapsはトラップまたはインフォーム、あるいはその両方を表します。SNMP 通知をトラップまたはインフォームのどちらで送信するかを指定するには、snmp-server hostグローバル コンフィギュレーション コマンドを使用します。
表31-5 に、サポートされているスイッチのトラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにし、トラップ マネージャがトラップを受信するように設定できます。
表31-5 スイッチの通知タイプ
|
|
bgp |
Border Gateway Protocol(BGP)ステート変更トラップを生成します。このオプションは、Enhanced Multilayer Image(EMI;拡張マルチレイヤ イメージ)がインストールされている場合のみ使用できます。 |
bridge |
STP ブリッジ MIB トラップを生成します。 |
cluster |
クラスタ設定の変更時にトラップを生成します。 |
config |
SNMP 設定の変更時にトラップを生成します。 |
config-copy |
SNMP コピー設定の変更時にトラップを生成します。 |
entity |
SNMP エンティティの変更時にトラップを生成します。 |
envmon |
環境モニタ トラップを生成します。ファン、シャットダウン、ステータス、電源装置、温度の環境トラップの一部またはすべてをイネーブルにできます。 |
flash |
SNMP FLASH 通知を生成します。オプションとして、フラッシュの追加または削除に関する通知をイネーブルにできます。このようにすると、スタックからスイッチを削除するか、またはスタックにスイッチを追加した場合に(物理的な取り外し、電源のオフ/オン、またはリロードの場合に)、トラップが発行されます。 |
fru-ctrl |
エンティティ Field-Replaceable Unit(FRU)制御トラップを生成します。スイッチ スタックでは、このトラップはスタックに対するスイッチの追加または削除を意味します。 |
hsrp |
Hot Standby Router Protocol(HSRP)の変更時にトラップを生成します。 |
ipmulticast |
IP マルチキャスト ルーティングの変更時にトラップを生成します。 |
mac-notification |
MAC アドレス通知のトラップを生成します。 |
msdp |
Multicast Source Discovery Protocol(MSDP)の変更時にトラップを生成します。 |
ospf |
Open Shortest Path First(OSPF)変更時にトラップを生成します。シスコ固有、エラー、Link State Advertisement(LSA; リンク ステート アドバタイズ)、レート制限、再送信、ステート変更のトラップの一部またはすべてをイネーブルにすることができます。 |
pim |
Protocol-Independent Multicast(PIM)の変更時にトラップを生成します。無効な PIM メッセージ、ネイバ変更、および Rendezvous Point(RP; ランデブー ポイント)マッピング変更のトラップの一部またはすべてをイネーブルにできます。 |
port-security |
SNMP ポート セキュリティ トラップを生成します。秒当たりの最大トラップ レートを設定することもできます。指定できる範囲は 0 ~ 1000 です。デフォルトは 0(レート制限なし)です。 |
rtr |
SNMP Response Time Reporter(RTR)に対してトラップを生成します。 |
snmp |
認証、コールド スタート、ウォーム スタート、リンク アップ、リンク ダウン時の SNMP タイプ通知のトラップを生成します。 |
storm-control |
SNMP ストーム制御のトラップを生成します。秒当たりの最大トラップ レートを設定することもできます。指定できる範囲は、0 ~ 1000 です。デフォルトは 0 です(制限がありません。トラップは、ストーム制御が発生するたびに送信されます)。 |
stpx |
SNMP STP 拡張 MIB トラップを生成します。 |
syslog |
SNMP Syslog トラップを生成します。 |
tty |
TCP 接続時にトラップを生成します。このトラップは、デフォルトでイネーブルに設定されています。 |
vlan-membership |
SNMP VLAN メンバーシップの変更時にトラップを生成します。 |
vlancreate |
SNMP VLAN 作成トラップを生成します。 |
vlandelete |
SNMP VLAN 削除トラップを生成します。 |
vtp |
VLAN Trunk Protocol(VTP;VLAN トランク プロトコル)の変更時にトラップを生成します。 |
(注) cpu [threshold] キーワードは、コマンドラインのヘルプ ストリングに表示されますが、サポートされていません。SNMP インフォーム通知の送信をイネーブルにするには、snmp-server enable trapsグローバル コンフィギュレーション コマンドと、snmp-server host host-addr informsグローバル コンフィギュレーション コマンドを併せて使用します。
表31-5 に示す通知タイプを受信する場合は、特定のホストに対して snmp-server host グローバル コンフィギュレーション コマンドを実行します。
ホストにトラップまたはインフォームを送信するようにスイッチを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server engineID remote ip-address engineid-string |
リモート ホストのエンジン ID を指定します。 |
ステップ 3 |
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 ]} |
ステップ 4 |
snmp-server group groupname { v1 | v2c | v3 { auth | noauth | priv } } [ read readview ] [ write writeview ] [ notify notifyview ] [ access access-list ] |
SNMP グループを設定します。 |
ステップ 5 |
snmp-server host host-addr [ informs | traps ] [ version { 1 | 2c | 3 { auth | noauth | priv }}] community-string [ notification-type ] |
SNMP トラップ動作の受信側を指定します。 • host-addr には、ホスト(対象となる受信デバイス)の名前またはインターネット アドレスを指定します。 • (任意)SNMP インフォームをホストに送信する場合は、 informs を指定します。 • (任意)SNMP トラップをホストに送信する場合は、 traps (デフォルト)を指定します。 • (任意) version には、SNMP バージョン( 1 、 2c 、または 3 )を指定します。SNMPv1 はインフォームをサポートしていません。 • (任意)バージョン 3 の場合は、認証レベル( auth、noauth 、または priv )を選択します。
(注) privキーワードは、暗号化ソフトウェア イメージがインストールされている場合のみ使用できます。
• version 1 または version 2c が指定されている場合、 community-string には、通知動作によって送信されたパスワードと同様のコミュニティ ストリングを入力します。 version 3 が指定されている場合、SNMPv3 ユーザ名を入力します。 • (任意) notification-type には、表31-5に示されているキーワードを使用します。タイプを指定しない場合、すべての通知が送信されます。 |
ステップ 6 |
snmp-server enable traps notification-types |
トラップまたはインフォームを送信するスイッチをイネーブルにし、送信する通知タイプを指定します。通知タイプの一覧については、表31-5を参照するか、または snmp-server enable traps ? と入力してください。 複数のトラップ タイプをイネーブルにするには、トラップ タイプごとに snmp-server enable traps コマンドを個別に入力する必要があります。 |
ステップ 7 |
snmp-server trap-source interface-id |
(任意)送信元インターフェイスを指定します。これにより、トラップ メッセージ用の IP アドレスが設定されます。このコマンドを実行すると、インフォーム用の送信元 IP アドレスも設定されます。 |
ステップ 8 |
snmp-server queue-length length |
(任意)各トラップ ホストのメッセージ キュー長を確立します。指定できる範囲は 1 ~ 1000 で、デフォルトは 10 です。 |
ステップ 9 |
snmp-server trap-timeout seconds |
(任意)トラップ メッセージの再送信間隔を定義します。指定できる範囲は 1 ~ 1000 秒で、デフォルトは 30 秒です。 |
ステップ 10 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 11 |
show running-config |
設定を確認します。 |
ステップ 12 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
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 モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server contact text |
システム コンタクト ストリングを設定します。 次に例を示します。
snmp-server contact Dial System Operator at beeper 21555 .
|
ステップ 3 |
snmp-server location text |
システム ロケーション ストリングを設定します。 次に例を示します。
snmp-server location Building 3/Room 222
|
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
SNMP 経由で使用する TFTP サーバの制限
SNMP を経由してコンフィギュレーション ファイルの保存およびロードに使用する Trivial File Transfer Protocol(TFTP; 簡易ファイル転送プロトコル)サーバを、アクセス リストに指定されたサーバに限定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
snmp-server tftp-server-list access-list-number |
SNMP を経由してコンフィギュレーション ファイルのコピーに使用する TFTP サーバを、アクセス リスト内のサーバに限定します。 access-list-number には、1 ~ 99 および 1300 ~ 1999 の範囲で標準の IP アクセス リスト番号を入力します。 |
ステップ 3 |
access-list access-list-number { deny | permit } source [ source-wildcard ] |
標準アクセス リストを作成します。必要な回数だけこのコマンドを繰り返します。 • access-list-number には、ステップ 2 で指定したアクセス リスト番号を入力します。 • deny キーワードを指定すると、条件が一致した場合にアクセスが拒否されます。 permit キーワードを指定すると、条件が一致した場合にアクセスが許可されます。 • source には、スイッチへのアクセスが許可された TFTP サーバの IP アドレスを入力します。 • (任意) source-wildcard を指定する場合は、送信元に適用されるワイルドカード ビットをドット付き 10 進表記で入力します。無視するビット位置に 1 を配置します。 アクセス リストの末尾には、すべてに適用される暗黙の拒否ステートメントが常に存在することに注意してください。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
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
次に、ユーザとリモート ホストとの関連付けと、ユーザがグローバル コンフィギュレーション モードを開始したときに 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