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接続は、新しいマスターが制御を引き継いだあとも、有効であるとみなされます。
スイッチ スタックの詳細については、 第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です。
表 27-1 に、セキュリティ モデルおよびセキュリティ レベルをさまざまに組み合わせた場合の特性を示します。
表 27-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情報を使用し、 表 27-2 に示す動作を実行します。
表 27-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内のオブジェクトすべてに対する読み取りおよび書き込みアクセス権を与えます。ただし、コミュニティ ストリングへのアクセスは許可しません。
•
read-write-all ― 許可した管理ステーションに、コミュニティ ストリングも含めたMIB内のオブジェクトすべてに対する読み取りおよび書き込みアクセス権を与えます。
(注) クラスタを作成すると、コマンド スイッチがメンバー スイッチとSNMPアプリケーション間のメッセージ交換を管理します。Cluster Managementソフトウェアは、コマンド スイッチ上で最初に設定されたRWおよびROコミュニティ ストリングにメンバー スイッチ番号(@esN、Nはスイッチ番号)を追加し、これらのストリングをメンバー スイッチに伝達します。詳細については、第6章「スイッチのクラスタ設定」を参照してください。
SNMPによるMIB変数へのアクセス
NMSの一例は、CiscoWorksネットワーク管理ソフトウェアです。CiscoWorks2000ソフトウェアは、スイッチのMIB変数を使用してデバイスの変数を設定し、ネットワーク上のデバイスに対するポーリングを実行して特定の情報を入手します。ポーリング結果は、グラフ形式で表示されます。この結果を分析して、インターネットワーキングに関する問題のトラブルシューティング、ネットワーク パフォーマンスの改善、デバイスの設定の確認、トラフィック負荷のモニタなどを行うことができます。
図 27-1に示すように、SNMPエージェントはMIBからデータを収集します。エージェントはSNMPマネージャに対してトラップ(特定イベントの通知)を送信し、SNMPマネージャはトラップを受信してそれを処理します。トラップは、ネットワーク上で発生した不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MACアドレス追跡などに関する条件をSNMPマネージャに通知します。SNMPエージェントはさらに、SNMPマネージャから get-request 、 get-next-request 、および set-request 形式で送られるMIB関連のクエリに応答します。
図 27-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値を割り当てる場合に、 表 27-3 に記載されている値の1つを使用します。
表 27-3 ifIndex値
|
|
SVI |
1~4999 |
EtherChannel |
5000~5012 |
ループバック |
5013~5077 |
トンネル |
5078~5142 |
物理(ギガビット イーサネットまたはSFPモジュール インターフェイスなど) |
10000~14500 |
null |
14501 |
(注) スイッチが範囲内の値を順番に使用するとは限りません。
SNMPの設定
ここでは、スイッチにSNMPを設定する方法について説明します。具体的な設定情報は次のとおりです。
•
「SNMPのデフォルト設定」
•
「SNMP設定時の注意事項」
•
「SNMPエージェントのディセーブル化」
•
「コミュニティ ストリングの設定」
•
「SNMPグループおよびユーザの設定」
•
「SNMP通知の設定」
•
「エージェント コンタクトおよびロケーションの設定」
•
「SNMP経由で使用するTFTPサーバの制限」
•
「SNMPの例」
SNMPのデフォルト設定
表 27-4 に、SNMPのデフォルト設定を示します。
表 27-4 SNMPのデフォルト設定
|
|
SNMPエージェント |
イネーブル |
SNMPコミュニティ ストリング |
Read-Only:パブリック Read-Write:プライベート Read-Write-all:シークレット |
SNMPトラップ レシーバ |
設定なし |
SNMPトラップ |
イネーブルなし |
SNMPバージョン |
version キーワードを指定しない場合、デフォルトはバージョン1です。 |
SNMPv3認証 |
キーワードを指定しない場合、デフォルトは noauth (noAuthNoPriv)セキュリティ レベルです。 |
SNMP通知タイプ |
タイプを指定しない場合、すべての通知が送信されます。 |
SNMP設定時の注意事項
SNMP グループ は、SNMPユーザをSNMPビューにマッピングするテーブルです。SNMP ユーザ は、SNMPグループのメンバーです。SNMP ホスト は、SNMPトラップ動作の受信側です。SNMP エンジンID は、ローカルまたはリモートSNMPエンジンの名前です。
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エージェントのディセーブル化
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をイネーブルにする特定の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 | v2c | v3 [ auth { md5 | sha } auth-password ]} [ encrypted ] [ access access-list ] |
SNMPグループに新規ユーザを設定します。 • username は、エージェントに接続されたホスト上のユーザ名です。 • groupname は、ユーザが関連付けられているグループの名前です。 • (任意)ユーザが属するリモートSNMPエンティティおよびホスト名を指定する場合は、 remote を入力します。このエンティティのIPアドレスを指定する場合は、さらにオプションのUDPポート番号を指定します。デフォルト値は162です。 • SNMPバージョン番号( v1 、 v2c 、または v3 )を入力します。 v3 を入力する場合は、次のオプションを使用します。 – auth ― 認証レベル設定セッションです。HMAC-MD5-96またはHMAC-SHA-96認証レベルのいずれかを指定でき、パスワード ストリング(64文字以下)が必要となります。 – encrypted ― パスワードが暗号化形式で表示されるように指定します。 • (任意) access access-list には、アクセス リストの名前を示すストリング(64文字以下)を指定して、入力します。 |
ステップ 5 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 6 |
show running-config |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
SNMP通知の設定
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生した場合に、スイッチが生成するシステム アラートです。デフォルトでトラップ マネージャは定義されていないため、トラップは送信されません。IOSリリースが稼働するスイッチでは、無制限にトラップ マネージャを設定できます。
(注) 多くのコマンドは、コマンド構文内でワードtrapsを使用します。トラップまたはインフォームを選択するオプションがコマンド内に指定されていない場合、キーワードtrapsはトラップまたはインフォーム、あるいはその両方を表します。SNMP通知をトラップまたはインフォームのどちらで送信するかを指定するには、snmp-server hostグローバル コンフィギュレーション コマンドを使用します。
表 27-5 に、サポートされているスイッチのトラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにし、トラップ マネージャがトラップを受信するように設定できます。
表 27-5 スイッチの通知タイプ
|
|
bgp |
BGPステート変更トラップを生成。このオプションは、拡張マルチレイヤ イメージがインストールされている場合のみ使用できます。 |
bridge |
STPブリッジMIBトラップを生成 |
cluster |
クラスタ設定の変更時にトラップを生成 |
config |
SNMP設定の変更時にトラップを生成 |
config-copy |
SNMPコピー設定の変更時にトラップを生成 |
entity |
SNMPエンティティの変更時にトラップを生成 |
envmon |
環境モニタ トラップを生成。ファン、シャットダウン、電源装置、温度の環境トラップの一部またはすべてをイネーブルにすることができます。 |
flash |
SNMP FLASH通知を生成。オプションとして、フラッシュの追加または削除に関する通知をイネーブルにできます。このようにすると、スタックからスイッチを削除するか、またはスタックにスイッチを追加した場合に(物理的な取り外し、電源のオフ/オン、またはリロードの場合に)、トラップが生成されます。 |
fru-ctrl |
エンティティFRU制御トラップを生成。Catalyst 3750スイッチ スタックでは、このトラップはスタックに対するスイッチの追加または削除を意味します。 |
hsrp |
Hot Standby Router Protocol(HSRP)の変更時にトラップを生成 |
mac-notification |
MACアドレス通知のトラップを生成 |
port-security |
SNMPポート セキュリティ トラップを生成。秒当たりの最大トラップ レートを設定することもできます。指定できる範囲は0~1000です。デフォルトは0(レート制限なし)です。 |
rtr |
SNMP Response Time Reporter(RTR)に対してトラップを生成 |
snmp |
認証、コールド スタート、ウォーム スタート、リンク アップ、リンク ダウン時のSNMPタイプ通知のトラップを生成 |
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トランク プロトコル)の変更時にトラップを生成 |
表 27-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 | v2c | v3 [ auth { md5 | sha } auth-password ]} [ encrypted ] [ access access-list ] |
ステップ2で作成したリモート ホストに対応するSNMPユーザを設定します。
(注) アドレスに対してリモート ユーザを設定する場合は、最初にそのリモート ホストのエンジンIDを設定する必要があります。リモート エンジンIDを設定する前にユーザを設定しようとすると、エラー メッセージが表示され、コマンドは実行されません。
|
ステップ 4 |
snmp-server host host-addr [ traps | informs ] [ version { 1 | 2c | 3 [ auth | noauth | priv ]}] community-string [ udp-port port ] [ notification-type ] |
SNMPトラップ動作の受信側を指定します。 • host-addr には、ホスト(対象となる受信デバイス)の名前またはインターネット アドレスを指定します。 • (任意)SNMPトラップをホストに送信する場合は、 traps (デフォルト)を入力します。 • (任意)SNMPインフォームをホストに送信する場合は、 informs を入力します。 • (任意)SNMPバージョンversion( 1 、 2c 、または 3 )を指定します。SNMPv1はインフォームをサポートしていません。 • (任意)バージョン3の場合は、認証レベル( auth、noauth 、または priv )を選択します。
(注) privキーワードは、暗号ソフトウェア イメージがインストールされている場合のみ使用できます。
• community-string には、通知動作によって送信されたパスワードと同様のコミュニティ ストリングを入力します。 • (任意) udp-port port には、リモート デバイスのUDPポートを入力します。 • (任意) notification-type には、表 27-5に示されているキーワードを使用します。タイプを指定しない場合、すべての通知が送信されます。 |
ステップ 5 |
snmp-server enable traps notification-types |
トラップまたはインフォームを送信するスイッチをイネーブルにし、送信する通知タイプを指定します。通知タイプの一覧については、表 27-5を参照するか、または snmp-server enable traps ? と入力してください。 複数のトラップ タイプをイネーブルにするには、トラップ タイプごとに snmp-server enable traps コマンドを個別に入力する必要があります。 |
ステップ 6 |
snmp-server trap-source interface-id |
(任意)送信元インターフェイスを指定します。これにより、トラップ メッセージ用のIPアドレスが設定されます。このコマンドを実行すると、インフォーム用の送信元IPアドレスも設定されます。 |
ステップ 7 |
snmp-server queue-length length |
(任意)各トラップ ホストのメッセージ キュー長を設定します。指定できる範囲は1~1000で、デフォルトは10です。 |
ステップ 8 |
snmp-server trap-timeout seconds |
(任意)トラップ メッセージの再送信間隔を定義します。指定できる範囲は1~1000秒で、デフォルトは30秒です。 |
ステップ 9 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 10 |
show running-config |
設定を確認します。 |
ステップ 11 |
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