SNMP の前提条件
SNMP グループ は、SNMP ユーザを SNMP ビューに対応付けるテーブルです。SNMP ユーザ は、SNMP グループのメンバです。SNMP ホスト は、SNMP トラップ動作の受信側です。SNMP エンジン ID は、ローカルまたはリモート SNMP エンジンの名前です。
• スイッチが起動し、スイッチのスタートアップ コンフィギュレーションに少なくとも 1 つの snmp-server グローバル コンフィギュレーション コマンドが設定されている場合、SNMP エージェントはイネーブルになります。
• SNMP グループを設定するときは、通知ビューを指定しません。 snmp-server host グローバル コンフィギュレーション コマンドがユーザの通知ビューを自動生成し、そのユーザを対応するグループに追加します。グループの通知ビューを変更すると、そのグループに対応付けられたすべてのユーザが影響を受けます。通知ビューの設定が必要な状況については、『 Cisco IOS Network Management Command Reference 』を参照してください。
• リモート ユーザを設定する場合は、ユーザが存在するデバイスのリモート SNMP エージェントに対応する IP アドレスまたはポート番号を指定します。
• 特定のエージェントのリモート ユーザを設定する前に、 snmp-server engineID グローバル コンフィギュレーション コマンドを remote オプションとともに使用して、SNMP エンジン ID を設定してください。リモート エージェントの SNMP エンジン ID およびユーザ パスワードを使用して認証およびプライバシー ダイジェストが算出されます。先にリモート エンジン ID を設定しておかないと、コンフィギュレーション コマンドがエラーになります。
SNMP に関する情報
SNMP
簡易ネットワーク管理プロトコル(SNMP)は、マネージャとエージェントの間の通信のメッセージ フォーマットを提供するアプリケーション層プロトコルです。SNMP システムは、SNMP マネージャ、SNMP エージェント、および管理情報ベース(MIB)で構成されます。SNMP マネージャは、CiscoWorks などのネットワーク管理システム(NMS)に統合できます。エージェントおよび MIB は、スイッチに常駐します。スイッチに SNMP を設定するには、マネージャとエージェントの関係を定義します。
SNMP エージェントは MIB 変数を格納し、SNMP マネージャはこの変数の値を要求または変更できます。マネージャはエージェントから値を取得したり、エージェントに値を格納したりできます。エージェントは、デバイス パラメータやネットワーク データの保存場所である MIB から値を収集します。また、エージェントはマネージャのデータ取得またはデータ設定の要求に応答できます。
エージェントは非送信請求トラップをマネージャに送信できます。トラップは、ネットワーク上のある状態を SNMP マネージャに通知するメッセージです。トラップは不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC アドレス追跡、TCP 接続の終了、ネイバーとの接続の切断などの重要なイベントの発生を意味する場合があります。
SNMP バージョン
このソフトウェア リリースは、次の SNMP バージョンをサポートしています。
• SNMPv1:RFC1157 に規定された SNMP(完全インターネット標準)。
• SNMPv2C は、SNMPv2Classic のバルク検索機能を残し、エラー処理を改善したうえで、SNMPv2Classic のパーティ ベースの管理およびセキュリティ フレームワークをコミュニティ ストリング ベースの管理フレームワークに置き換えたものです。次の機能があります。
– SNMPv2:RFC 1902 ~ 1907 に規定された SNMP バージョン 2(ドラフト版インターネット標準)
– SNMPv2C:RFC 1901 に規定された SNMPv2 のコミュニティ ストリング ベースの管理フレームワーク(試験版インターネット プロトコル)
• SNMPv3:SNMP のバージョン 3 は、RFC 2273 ~ 2275 に規定されている相互運用可能な標準ベース プロトコルです。SNMPv3 は、ネットワーク上のパケットを認証、暗号化することでデバイスへのアクセスに対するセキュリティを提供します。SNMPv3 は、次のセキュリティ機能を備えています。
– メッセージの完全性:パケットが伝送中に改ざんされないようにします。
– 認証:有効な送信元からのメッセージであるかどうかを判別します。
– 暗号化:パッケージの内容をミキシングし、許可されていない送信元に内容が読まれることを防止します。
(注) 暗号化を選択するには、priv キーワードを入力します。このキーワードは、暗号化ソフトウェア イメージがインストールされている場合のみ使用可能です。
SNMPv1 と SNMPv2C は、ともにコミュニティベース形式のセキュリティを使用します。エージェントの MIB にアクセスできるマネージャのコミュニティが、IP アドレス アクセス コントロール リストおよびパスワードによって定義されます。
SNMPv2C にはバルク検索メカニズムが組み込まれ、より詳細なエラー メッセージを管理ステーションに報告します。バルク検索メカニズムは、テーブルや大量の情報を検索し、必要な往復回数を削減します。SNMPv2C ではエラー処理機能が改善され、さまざまなエラーを区別するための拡張エラー コードが使用されています。これらのエラーは、SNMPv1 では単一のエラー コードで報告されます。SNMPv2 では、エラー リターン コードでエラー タイプが報告されるようになりました。
SNMPv3 では、セキュリティ モデルとセキュリティ レベルの両方が提供されています。セキュリティ モデルは、ユーザとユーザが属しているグループ用に設定された認証方式です。セキュリティ レベルとは、セキュリティ モデル内で許可されるセキュリティのレベルです。セキュリティ レベルとセキュリティ モデルの組み合わせにより、SNMP パケットを扱うときに使用するセキュリティ メカニズムが決まります。使用可能なセキュリティ モデルは、SNMPv1、SNMPv2C、および SNMPv3 です。
表 36-1 に、セキュリティ モデルとセキュリティ レベルのさまざまな組み合わせについて、その特性を示します。
表 36-1 SNMP セキュリティ モデルおよびセキュリティ レベル
|
|
|
|
|
SNMPv1 |
noAuthNoPriv |
コミュニティ ストリング |
No |
コミュニティ ストリングの照合を使用して認証します。 |
SNMPv2C |
noAuthNoPriv |
コミュニティ ストリング |
No |
コミュニティ ストリングの照合を使用して認証します。 |
SNMPv3 |
noAuthNoPriv (LAN Base イメージが必要) |
ユーザ名 |
No |
ユーザ名の照合を使用して認証します。 |
SNMPv3 |
authNoPriv (LAN Base イメージが必要) |
Message Digest 5(MD5)または Secure Hash Algorithm(SHA) |
No |
HMAC-MD5 アルゴリズムまたは HMAC-SHA アルゴリズムに基づいて認証します。 |
SNMPv3 |
authPriv (LAN Base イメージが必要) |
MD5 または SHA |
データ暗号規格(DES)または Advanced Encryption Standard(AES) |
HMAC-MD5 アルゴリズムまたは HMAC-SHA アルゴリズムに基づいて認証します。次の暗号化アルゴリズムで、User-based Security Model(USM)を指定できます。 • CBC-DES(DES-56)規格に基づく認証に加えた DES 56 ビット暗号化 • 3DES 168 ビット暗号化 • AES 128 ビット暗号化、192 ビット暗号化、または 256 ビット暗号化 |
管理ステーションでサポートされている SNMP バージョンを使用するには、SNMP エージェントを設定する必要があります。エージェントは複数のマネージャと通信できるため、SNMPv1、SNMPv2C、および SNMPv3 を使用する通信をサポートするようにソフトウェアを設定できます。
SNMP マネージャ機能
SNMP マネージャは、MIB 情報を使用して、 表 36-2 に示す動作を実行します。
表 36-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 から要求された値に変更します。
エージェントで重要なイベントが発生したことを NMS に通知するために、SNMP エージェントは非送信請求トラップ メッセージも送信します。トラップ条件の例には、ポートまたはモジュールがアップまたはダウン状態になった場合、スパニングツリー トポロジが変更された場合、認証に失敗した場合などがあります。
SNMP コミュニティ ストリング
SNMP コミュニティ ストリングは、MIB オブジェクトに対するアクセスを認証し、組み込みパスワードとして機能します。NMS がスイッチにアクセスするには、NMS のコミュニティ ストリング定義が、スイッチ上の 3 つのコミュニティ ストリング定義の少なくとも 1 つと一致していなければなりません。
コミュニティ ストリングの属性は、次のいずれかです。
• Read-Only(RO):許可された管理ステーションに、コミュニティ ストリングを除く MIB 内のすべてのオブジェクトへの読み取りアクセスを許可しますが、書き込みアクセスは許可しません。
• Read-Write(RW):許可された管理ステーションに、MIB 内のすべてのオブジェクトへの読み書きアクセスを許可しますが、コミュニティ ストリングに対するアクセスは許可しません。
クラスタを作成すると、コマンド スイッチがメンバ スイッチと SNMP アプリケーション間のメッセージ交換を管理します。Network Assistant ソフトウェアは、コマンド スイッチ上で最初に設定された RW および RO コミュニティ ストリングにメンバ スイッチ番号( @esN 、 N はスイッチ番号)を追加し、これらのストリングをメンバ スイッチに伝播します。詳細は、「スイッチ クラスタの設定」および Cisco.com から入手できる『 Getting Started with Cisco Network Assistant 』を参照してください。
SNMP を使用して MIB 変数にアクセスする方法
NMS の例として、CiscoWorks ネットワーク管理ソフトウェアがあります。CiscoWorks 2000 ソフトウェアは、スイッチの MIB 変数を使用してデバイス変数を設定し、ネットワーク上のデバイスをポーリングして特定の情報を取得します。ポーリング結果は、グラフ形式で表示されます。この結果を解析して、インターネットワーキング関連の問題のトラブルシューティング、ネットワーク パフォーマンスの改善、デバイス設定の確認、トラフィック負荷のモニタなどを行うことができます。
図 36-1 に示すように、SNMP エージェントは MIB からデータを収集します。エージェントは SNMP マネージャに対し、トラップ(特定イベントの通知)を送信でき、SNMP マネージャはトラップを受信して処理します。トラップは、ネットワーク上で発生した不正なユーザ認証、再起動、リンク ステータス(アップまたはダウン)、MAC アドレス トラッキングなどの状況を SNMP マネージャに通知します。SNMP エージェントはさらに、SNMP マネージャから get-request 、 get-next-request 、および set-request 形式で送信される MIB 関連のクエリに応答します。
図 36-1 SNMP ネットワーク
SNMP 通知
SNMP を使用すると、特定のイベントが発生した場合に、スイッチから SNMP マネージャに通知を送信できます。SNMP 通知は、トラップまたは情報要求として送信できます。コマンド構文では、トラップまたは情報を選択するオプションがコマンドにない限り、キーワード traps はトラップ、情報、またはその両方を表します。 snmp-server host コマンドを使用して、トラップまたは情報として SNMP 通知を送信するかどうかを指定します。
(注) SNMPv1 は informs をサポートしていません。
トラップは信頼性に欠けます。受信側はトラップを受信しても確認応答を送信しないので、トラップが受信されたかどうかが送信側にわからないからです。情報要求の場合、受信した SNMP マネージャは SNMP 応答プロトコル データ ユニット(PDU)でメッセージを確認します。送信側が応答を受信しなかった場合は、再び情報要求を送信できます。再送信できるので、情報の方がトラップより意図した宛先に届く可能性が高くなります。
情報の方がトラップより信頼性が高いのは、スイッチおよびネットワークのリソースを多く消費するという特性にも理由があります。送信と同時に廃棄されるトラップと異なり、情報要求は応答を受信するまで、または要求がタイムアウトになるまで、メモリ内に保持されます。トラップの送信は 1 回限りですが、情報は数回にわたって再送信つまり再試行が可能です。再送信の回数が増えるとトラフィックが増加し、ネットワークのオーバーヘッドが高くなる原因にもなります。したがって、トラップにするか情報にするかは、信頼性を取るかリソースを取るかという選択になります。SNMP マネージャですべての通知を受信することが重要な場合は、情報要求を使用してください。ネットワークまたはスイッチ メモリ上のトラフィックが問題になる場合で、なおかつ通知が不要な場合は、トラップを使用してください。
SNMP ifIndex MIB オブジェクト値
NMS の IF-MIB は、物理インターフェイスまたは論理インターフェイスを識別する、ゼロより大きい一意の値である interface index(ifIndex)オブジェクト値の生成および割り当てを行います。スイッチの再起動またはスイッチのソフトウェアのアップグレード時に、スイッチは、インターフェイスにこれと同じ値を使用します。たとえば、スイッチのポート 2 に 10003 という ifIndex 値が割り当てられていると、スイッチの再起動後も同じ値が使用されます。
スイッチは、 表 36-3 のいずれかの値を使用して、インターフェイスに ifIndex 値を割り当てます。
表 36-3 ifIndex 値
|
|
SVI |
1 ~ 4999 |
EtherChannel |
5001 ~ 5048 |
種類とポート番号に基づく物理(ギガビット イーサネットまたは SFP モジュール インターフェイスなど) |
10000 ~ 14500 |
ヌル |
10501 |
ループバックおよびトンネル |
24567 + |
(注) スイッチは、範囲内の連続した値を使用しない場合があります。
コミュニティ ストリング
SNMP マネージャとエージェントの関係を定義するには、SNMP コミュニティ ストリングを使用します。コミュニティ ストリングは、スイッチ上のエージェントへのアクセスを許可するパスワードと同様に機能します。ストリングに対応する次の特性を 1 つまたは複数指定することもできます。
• コミュニティ ストリングを使用してエージェントにアクセスできる SNMP マネージャの IP アドレスのアクセス リスト
• 指定のコミュニティにアクセスできるすべての MIB オブジェクトのサブセットを定義する MIB ビュー
• コミュニティにアクセスできる MIB オブジェクトの読み書き権限または読み取り専用権限
SNMP 通知
トラップ マネージャは、トラップを受信して処理する管理ステーションです。トラップは、特定のイベントが発生したときにスイッチが生成するシステム アラートです。デフォルトでは、トラップ マネージャは定義されず、トラップは送信されません。この Cisco IOS Release が稼働しているスイッチでは、トラップ マネージャを無制限に設定できます。
(注) コマンド構文で traps というワードを使用するコマンドは多数あります。トラップまたは情報を選択するオプションがコマンドにない限り、キーワード traps はトラップ、情報のいずれか、またはその両方を表します。snmp-server host グローバル コンフィギュレーション コマンドを使用して、トラップまたは情報として SNMP 通知を送信するかどうかを指定します。
次の表に、サポートされているスイッチのトラップ(通知タイプ)を示します。これらのトラップの一部または全部をイネーブルにして、これを受信するようにトラップ マネージャを設定できます。 SNMP 情報通知の送信をイネーブルにするには、 snmp-server enable traps グローバル コンフィギュレーション コマンドと snmp-server host host-addr informs グローバル コンフィギュレーション コマンド を組み合わせて使用します。
表 36-4 スイッチの通知タイプ
|
|
bridge |
STP ブリッジ MIB トラップを生成します。 |
config |
SNMP 設定が変更された場合に、トラップを生成します。 |
copy-config |
SNMP コピー設定が変更された場合に、トラップを生成します。 |
entity |
SNMP エンティティが変更された場合に、トラップを生成します。 |
cpu threshold |
CPU 関連トラップを許可します。 |
envmon |
環境モニタ トラップを生成します。ファン(fan)、シャットダウン(shutdown)、ステータス(status)、電源(supply)、温度(temperature)の環境トラップのいずれかまたはすべてをイネーブルにできます。 |
errdisable |
VLAN ポートが errdisable になった場合に、トラップを生成します。1 分あたりの最大トラップ速度も設定できます。指定できる範囲は 0 ~ 10000 です。デフォルトは 0 で、レート制限がないという意味です。 |
flash |
SNMP FLASH 通知を生成します。 |
hsrp |
ホットスタンバイ ルータ プロトコル(HSRP)が変更された場合に、トラップを生成します。 |
ipmulticast |
IP マルチキャスト ルーティングが変更された場合に、トラップを生成します。 |
mac-notification |
MAC アドレス通知のトラップを生成します。 |
msdp |
Multicast Source Discovery Protocol(MSDP)が変更された場合に、トラップを生成します。 |
ospf |
Open Shortest Path First(OSPF)が変更された場合に、トラップを生成します。シスコ固有、エラー、リンクステート アドバタイズ、レート制限、再送信、ステート変更に関するトラップを任意にイネーブルにできます。 |
pim |
Protocol-Independent Multicast(PIM)が変更された場合に、トラップを生成します。無効な PIM メッセージ、ネイバー変更、およびランデブー ポイント(RP)マッピングの変更に関するトラップを任意にイネーブルにできます。 |
port-security |
SNMP ポート セキュリティ トラップを生成します。1 秒あたりの最大トラップ速度も設定できます。指定できる範囲は 0 ~ 1000 秒です。デフォルトは 0 秒で、レート制限がないという意味です。 を使用してトラップを設定する際に、まずポート セキュリティ トラップを設定して、次に以下のポート セキュリティ トラップ レートを設定します。 • snmp-server enable traps port-security • snmp-server enable traps port-security trap-rate rate |
rtr |
SNMP Response Time Reporter(RTR)のトラップを生成します。 |
snmp |
認証、コールド スタート、ウォーム スタート、リンク アップ、またはリンク ダウンについて、SNMP タイプ通知のトラップを生成します。 |
storm-control |
SNMP ストーム制御のトラップを生成します。1 分あたりの最大トラップ速度も設定できます。指定できる範囲は 0 ~ 1000 です。デフォルトは 0 に設定されています(制限なしの状態では、発生ごとにトラップが送信されます)。 |
stpx |
SNMP STP 拡張 MIB トラップを生成します。 |
syslog |
SNMP の Syslog トラップを生成します。 |
tty |
TCP 接続のトラップを生成します。このトラップは、デフォルトでイネーブルに設定されています。 |
vlan-membership |
SNMP VLAN メンバーシップが変更された場合に、トラップを生成します。 |
vlancreate |
SNMP VLAN 作成トラップを生成します。 |
vlandelete |
SNMP VLAN 削除トラップを生成します。 |
vtp |
VLAN トランキング プロトコル(VTP)が変更された場合に、トラップを生成します。 |
(注) fru-ctrl、insertion、および removal キーワードは、コマンドラインのヘルプ ストリングに表示されますが、サポートされていません。
表 36-4 に示す通知タイプを受信するには、特定のホストに対して snmp-server host グローバル コンフィギュレーション コマンドを実行します。
SNMP のデフォルト設定
表 36-5 SNMP のデフォルト設定
|
|
SNMP エージェント |
ディセーブル |
SNMP トラップ レシーバ |
未設定 |
SNMP トラップ |
TCP 接続のトラップ( tty )以外は、イネーブルではありません。 |
SNMP バージョン |
version キーワードがない場合、デフォルトはバージョン 1 になります。 |
SNMPv3 認証 |
キーワードを入力しなかった場合、セキュリティ レベルはデフォルトで noauth (noAuthNoPriv)になります。 |
SNMP 通知タイプ |
タイプが指定されていない場合、すべての通知が送信されます。 |