Cisco IOS システム管理 – SNMP Trapの設定

スポンサーリンク

Cisco IOSでSNMP Trapを設定する方法についてまとめます。SNMP version 1, 2cのみを対象をしております。

コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Router(config)# snmp-server enable traps [ <trap> ]
Router(config)# snmp-server host <addr> [ traps | informs ] [ version { 1 | 2c | 3 } ] <community> [ <trap> ]
Router(config)# snmp-server source-interface { traps | informs } <interface>
Router(config-if)# no snmp trap link-status

構成図

以下の環境で動作確認を行います。

         e0/0    e0/1
 +--------+.1    .2+--------+
 |   R1   +--------+   R2   |
 +--------+        +--------+
        192.168.1.0/24

 R1 Loopback0     R2 Loopback0
 10.1.1.1/32      10.2.2.2/32

 [R1]
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.12.1 255.255.255.0

 [R2]
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Ethernet0/1
 ip address 192.168.12.2 255.255.255.0

設定全文は下記ファイルです。ルーティングなどの詳細設定は下記を参照ください。

R1
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.12.1 255.255.255.0
 half-duplex
!
interface Ethernet0/1
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router eigrp 10
 network 0.0.0.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R2
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Ethernet0/0
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/1
 ip address 192.168.12.2 255.255.255.0
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router eigrp 10
 network 0.0.0.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end

基本設定

仕様説明

snmp-server enable trapsコマンドでSNMP TRAPとして通知するイベントを定義します。デフォルトの状態では全イベントがSNMP TRAPとして通知されないようになっていますので、必ずこのコマンドを入力する必要があります。以下はlinkの状態変化とVTPの状態変化を通知する設定例です。

Router(config)# snmp-server enable traps snmp linkdown linkup
Router(config)# snmp-server enable traps vtp

なお、以下のように通知するイベントを省略すると全イベントがSNMP TRAPとして通知されます。

Router(config)# snmp-server enable traps

以下のコマンドでSNMP trapd serverとコミュニティ名を指定する事ができます。詳細なパラメータを省略した場合は。version 1のtrapとして送信されます。

Router(config)# snmp-server host <addr> [ traps | informs ] [ version { 1 | 2c | 3 } ] <community>

動作確認

R1に以下の設定を投入し、link statusの変化をsnmp trapd serverに通知するようにします。

 [R1]
snmp-server trap-source Loopback0
snmp-server host 10.2.2.2 CISCOTRAP
snmp-server host 192.168.12.2 version 2c CISCOTRAP
snmp-server enable traps snmp linkup linkdown

R1 e0/1のリンクアップイベントを発生させ、SNMP TRAPが送信される事を確認します。

 [R1]
R1#debug snmp packets
SNMP packet debugging is on
R1#conf t
R1(config)#int e0/1
R1(config-if)#no ke
R1(config-if)#no keepalive
R1(config-if)#no shut
R1(config-if)#
*Mar  1 00:19:21.995: %LINK-3-UPDOWN: Interface Ethernet0/1, changed state to up
*Mar  1 00:19:22.995: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to up
*Mar  1 00:19:23.011: SNMP: Queuing packet to 10.2.2.2
*Mar  1 00:19:23.011: SNMP: V1 Trap, ent snmpTraps, addr 10.1.1.1, gentrap 3, spectrap 0
 ifIndex.2 = 2
 ifDescr.2 = Ethernet0/1
 ifType.2 = 6
 lifEntry.20.2 = up
*Mar  1 00:19:23.031: SNMP: Queuing packet to 192.168.12.2
*Mar  1 00:19:23.035: SNMP: V2 Trap, reqid 4, errstat 0, erridx 0
 sysUpTime.0 = 116300
 snmpTrapOID.0 = snmpTraps.4
 ifIndex.2 = 2
 ifDescr.2 = Ethernet0/1
 ifType.2 = 6
 lifEntry.20.2 = up
*Mar  1 00:19:23.263: SNMP: Packet sent via UDP to 10.2.2.2
*Mar  1 00:19:23.287: SNMP: Packet sent via UDP to 192.168.12.2
R1(config-if)#

SNMP TRAP イベント制御

仕様説明

以下のコマンドでSNMP TRAPとして通知するイベントの種類を定義する事ができます。イベントとして通知されるのは、グローバルで有効になっているイベント かつ snmp trapd server単位で有効になっているイベントです。なお、イベントの指定を省略すると全イベントが有効になってしまいます

Router(config)# snmp-server enable traps [ <trap> ]
Router(config)# snmp-server host <addr> [ traps | informs ] [ version { 1 | 2c | 3 } ] <community> [ <trap> ]

以下は、2種類のsnmp trapd serverの一方のサーバのみに、リンクダウンを通知する設定例です。

snmp-server trap-source Loopback0
snmp-server enable traps snmp linkdown linkup
snmp-server host 10.2.2.2 CISCOTRAP
snmp-server host 192.168.12.2 version 2c CISCOTRAP tty

一見するとttyの意味が理解できないと思いますが、このttyがないと全イベントが有効になってしまいますので192.168.12.2に対してもリンクダウンイベントが通知されてしまいます。表形式でまとめると以下のようになります。

グローバル設定 サーバ単位の設定 結果
10.2.2.2 snmp linkdown linkup 全部有効 snmp linkdown linkup
192.168.12.2 snmp linkdown linkup tty 全部無効

動作確認

R1に以下の設定を投入し、10.2.2.2のみにリンクダウンイベントが通知されるようにします。

 [R1]
snmp-server trap-source Loopback0
snmp-server enable traps snmp linkdown linkup
snmp-server host 10.2.2.2 CISCOTRAP
snmp-server host 192.168.12.2 version 2c CISCOTRAP tty

R1 e0/1のリンクダウンイベントを発生させ、10.2.2.2のみにSNMP TRAPが送信される事を確認します。

 [R1]
R1#debug snmp packets
SNMP packet debugging is on
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int e0/1
R1(config-if)#no ke
R1(config-if)#no keepalive
R1(config-if)#no shut
R1(config-if)#shut
R1(config-if)#
*Mar  1 00:23:22.287: %LINK-5-CHANGED: Interface Ethernet0/1, changed state to administratively down
*Mar  1 00:23:23.287: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to down
*Mar  1 00:23:23.307: SNMP: Queuing packet to 10.2.2.2
*Mar  1 00:23:23.307: SNMP: V1 Trap, ent snmpTraps, addr 10.1.1.1, gentrap 2, spectrap 0
 ifIndex.2 = 2
 ifDescr.2 = Ethernet0/1
 ifType.2 = 6
 lifEntry.20.2 = administratively down
*Mar  1 00:23:23.559: SNMP: Packet sent via UDP to 10.2.2.2
R1(config-if)#

リンクダウンイベントの抑制

仕様説明

以下のコマンドで、特定のポートのみlink-statusのSNMP TRAP通知を抑制する事ができます。例えば、データセンター作業要員の方のためのメンテナンス用ポートとして使用すると良いでしょう。

Router(config-if)# no snmp trap link-status

動作確認

R1に以下のコマンドを投入します。

 [R1]
interface Ethernet0/1
 no snmp trap link-status

R1 e0/1をリンクアップさせますが、SNMP TRAPが送信されない事を確認します。

 [R1]
R1#debug snmp packets
SNMP packet debugging is on
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int e0/1
R1(config-if)#no shut
R1(config-if)#
*Mar  1 00:24:23.487: %LINK-3-UPDOWN: Interface Ethernet0/1, changed state to up
*Mar  1 00:24:24.487: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to up
R1(config-if)#
タイトルとURLをコピーしました