IP : 簡易ネットワーク管理プロトコル(SNMP)

Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)トラップについて

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2008 年 8 月 26 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

この文書では、SNMP トラップの概要を説明します。 また、SNMP トラップの使用方法およびデータ ネットワークを管理する上での SNMP トラップ役割も説明します。

SNMP トラップを使用すれば、SNMP 割り込みメッセージを使用して、エージェントが重大イベントを管理ステーションに通知できるようになります。

次のダイアグラムで、左側のセットアップは、情報のポーリングを行って応答を受信するネットワーク管理システムを表しています。 右側のセットアップは、ネットワーク管理システム(NMS)に、割り込み型あるいは非同期のトラップを送信するエージェントを示しています。

/image/gif/paws/7244/snmp_trap-01.gif

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

SNMP トラップの使用

SNMPv1(Simple Network Management Protocol; 簡易ネットワーク管理プロトコル)および SNMPv2c では、関連付けられた Management Information Base(MIB; 管理情報ベース)とともに、トラップによる通知を使用するように推奨されています。

管理者が多数のデバイスを管理していて各デバイスに多数のオブジェクトがある場合、各デバイス上の各オブジェクトからの情報のポーリングや要求行うことは管理者にとって重要であるというのが、トラップによる通知の背後にある考え方です。 管理対象デバイスの各エージェントが、要求されなくてもマネージャに通知すれば、この問題を解決できます。 エージェントは、イベントのトラップと呼ばれるメッセージを送信することにより、この処理を行います。

管理者はイベントを受け取ると、それを表示して、さらにイベントに基づいたアクションを取ることを選択できます。 たとえば、イベントをさらによく把握するために、マネージャから、エージェントに直接ポーリングがかけられたり、関連する他のデバイス エージェントにポーリングがかけられたりする場合があります。

トラップによる通知を使用すると、それほど重要ではない SNMP 要求を削減できるので、ネットワークとエージェントのリソースを大幅に削減できる場合があります。 ただし、SNMP のポーリングを完全になくすことはできません。 SNMP 要求は、ディスカバリおよびトポロジの変更のために必要です。 さらに、管理対象のデバイスに重大な問題が発生した場合には、そのデバイスのエージェントからトラップが送信されない場合もあります。

SNMPv1 トラップは RFC 1157 で定義されており、次のフィールドがあります。

  • Enterprise:トラップを生成する管理対象オブジェクトのタイプを識別します。

  • Agent address:トラップを生成する管理対象オブジェクトのアドレスを示しています。

  • Generic trap type:標準トラップ タイプの番号の 1 つを示しています。

  • Specific trap code:特定のトラップ コードの数字が 1 つ指定されています。

  • Time stamp:最近のネットワークの再初期化からトラップの生成までの経過時間を示しています。

  • Variable bindings:PDU を含むトラップのデータ フィールド。 各変数バインディングでは、特定の MIB オブジェクト インスタンスとその現在の値が関連付けられています。

標準の汎用トラップは、 coldStart、warmStart、linkDown、linkUp、authenticationFailure、および egpNeighborLoss です。 標準 SNMPv1 トラップでは、Enterprise フィールドには、トラップを送信するデバイスの sysObjectID 値が入っています。 ベンダー固有トラップでは、Generic trap type field は enterpriseSpecific(6) に設定されています。 Cisco 固有のトラップは、通常とは異なる方法で実装されています。 トラップの Enterprise フィールドに sysObjectID を固定して、Specific trap code ですべての Cisco デバイスでサポートされているすべての固有トラップを識別する代わりに、Cisco ではさまざまなトラップの Enterprise フィールドと Specific trap code フィールドを使用してトラップの識別を実装しています。 実際の値は、SNMP オブジェクトナビゲータ で参照できます。 さらに Ciscoでは、標準トラップの再定義を CISCO-GENERAL-TRAPS MIB で行い、さらにバインド変数を追加しています。 これらのトラップでは、Generic trap type は同じままで、enterpriseSpecific(6) には設定されていません。

SNMPv2c トラップは NOTIFICATION として定義されており、SNMPv1 とは異なる形式になっています。 これには、次のパラメータがあります。

  • sysUpTime:これは、SNMPv1 トラップの Time スタンプと同じです。

  • snmpTrapOID:トラップ識別フィールド。 標準トラップでは、この値は RFC 1907 で定義されています。ベンダー固有トラップでは、この値は基本的に SNMPv1 Enterprise パラメータに、2 つの追加サブ識別子である「0」と「SNMPv1 Specific trap code パラメータ」を加えたものです。

  • VarBindList:変数バインディングのリストです。

エージェントから送信されたトラップが管理システムで理解されるためには、Object IDentifier(OID; オブジェクト識別子)で定義されている内容が、管理システムで把握されている必要があります。 したがって、そのトラップの MIB がロードされている必要があります。 これにより、正しい OID 情報を取得でき、ネットワーク管理システムではそれ自体に送信されたトラップを判読できます。

特定の MIB で Cisco のデバイスによりサポートされるトラップについては、Cisco SNMP オブジェクトナビゲータ を参照してください。 このリストには、特定の MIB で使用可能なトラップが示されています。 これらのトラップの 1 つを受け取るため、Cisco IOS か。 ソフトウェア リリースはリストされている MIB をサポートする必要があります。 使用している Cisco デバイスでサポートされている MIB を確認するには、www.cisco.com/go/mibs をアクセスしてください。 この MIB は、ご使用のネットワーク管理システムにロードしておく必要があります。 通常この作業は、コンパイルと呼ばれます。 使用している NMS プラットフォームでの MIB のコンパイルについては、使用しているネットワーク管理システム(たとえば、HP OpenView や NetView)のユーザ ガイドを参照してください。 また SNMP を参照して下さい: MIB および MIB コンパイラーおよびロード MIB についての FAQ

さらに、ネットワーク管理システムへトラップを送信するようにデバイスを設定しなければ、トラップは送信されません。 トラップを送信する必要があることをデバイスに正しく設定しておく必要があります。 トラップの宛先は、通常 IP アドレスで定義しますが、Domain Name System(DNS; ドメイン ネーム システム)サーバに問い合せるようにデバイスが設定されている場合は、ホスト名を指定することもできます。 Cisco IOS ソフトウェアの最近のバージョンでは、送信するトラップをデバイスの管理者が選択できるようになっています。 Cisco デバイスを SNMP 用に設定する方法、および、トラップを送信する方法についての情報は、関連デバイスの設定ガイドと『基本ダイヤル NMS 実装ガイド』、『サポート対象の Cisco IOS SNMP トラップとその設定方法』、および『CatOS SNMP トラップのサポートおよび設定方法』を参照してください。

マネージャは一般的に UDP ポート番号 162 の SNMP 通知を(トラップおよび Informs)受信します。

Cisco IOS から送信されるトラップの例

このセクションには、Cisco IOS から送信されるトラップの例が複数紹介されています。これらは debug snmp packet で採取されたものです。

Cisco により再定義された SNMPv1 標準トラップ:

Nov 21 07:44:17: %LINK-3-UPDOWN: Interface Loopback1, changed state to up 
4d23h: SNMP: Queuing packet to 172.17.246.162 
4d23h: SNMP: V1 Trap, ent products.45, addr 172.17.246.9, gentrap 3, spectrap 0 
 ifEntry.1.23 = 23 
 ifEntry.2.23 = Loopback1
 ifEntry.3.23 = 24 
 lifEntry.20.23 = up 

この出力では、4 つのバインド変数を伴う CISCO-GENERAL-TRAPS MIB からの Cisco 再定義済みリンクアップ トラップが示されています。 これには、次のフィールドがあります。

  • Enterprise = products.45(トラップを送信するデバイスの sysObjectID で、この例では c7507 ルータです。)

  • Generic trap type = 3(リンクアップ)

  • Specific trap code = 0

SNMPv1 Cisco 固有トラップ:

4d23h: SNMP: Queuing packet to 172.17.246.162 
4d23h: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 172.17.246.9, gentrap 6, spectrap 1 
 clogHistoryEntry.2.954 = LINK 
 clogHistoryEntry.3.954 = 4 
 clogHistoryEntry.4.954 = UPDOWN 
 clogHistoryEntry.5.954 = Interface Loopback1, changed state to up 
 clogHistoryEntry.6.954 = 43021184 

この出力では、5 つのバインド変数を伴う CISCO-SYSLOG-MIB からの Cisco 固有の clogMessageGenerated トラップが示されています。 これには、次のフィールドがあります。

  • Enterprise = clogMessageGenerated トラップのエンタープライズ値

  • Generic trap type = 6(エンタープライズ固有)

  • Specific trap code = 1(clogMessageGenerated の固有トラップ コード)

SNMPv2c Cisco 固有トラップ:

4d23h: SNMP: Queuing packet to 172.17.246.162 
4d23h: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0 
 sysUpTime.0 = 43053404 
 snmpTrapOID.0 =  
 clogHistoryEntry.2.958 = SYS 
 clogHistoryEntry.3.958 = 6 
 clogHistoryEntry.4.958 = CONFIG_I 
 clogHistoryEntry.5.958 = Configured from console by vty0 (10.10.10.10) 
 clogHistoryEntry.6.958 = 43053403 

この出力は 3 つのバインド変数の CISCO-CONFIG-MAN-MIB からの Cisco 専用 ciscoConfigManEvent SNMPv2c 通知を示したものです:

このトラップはあるデバイス・コンフィギュレーションへの変更がある場合使用することができます。 最後のコンポーネント 2 つの値は表示コマンドが発行されたかどうかまたは設定が触れられたら確認します。

6506E#term mon
6506E#debug snmp packet
SNMP packet debugging is on

6506E#sh run
Building configuration...
...
6506E#
19:24:18: SNMP: Queuing packet to 10.198.28.80
19:24:18: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0
sysUpTime.0 = 6981747
snmpTrapOID.0 = ciscoConfigManMIB.2.0.1
ccmHistoryEventEntry.3.100 = 1 

!--- 1 -> commandLine. Executed via CLI.

ccmHistoryEventEntry.4.100 = 3 

!--- 3 -> running

ccmHistoryEventEntry.5.100 = 2 

!--- 2 -> commandSource. Show command was executed.

6506E#term mon
6506E#debug snmp packet
SNMP packet debugging is on

6506E#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
6506E(config)#exit

22:57:37: SNMP: Queuing packet to 10.198.28.80
22:57:37: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0
 sysUpTime.0 = 8261709
 snmpTrapOID.0 = ciscoConfigManMIB.2.0.1
 ccmHistoryEventEntry.3.108 = 1 

!--- 1 -> commandLine. Executed via CLI.

 ccmHistoryEventEntry.4.108 = 2 

!--- 2 -> commandSource

 ccmHistoryEventEntry.5.108 = 3 

!--- 3 -> running. Change was destined to the running configuration.


関連情報


Document ID: 7244