EEMの設定

ネットワーク構成

eem01.png

図 EEMの設定 ネットワーク構成

設定条件

  • R1のLo0がシャットダウンされると、自動的にno shutdownを実行して、Lo0がシャットダウンされないようにしてください。
  • R2で毎日午前6時にshow ip routeコマンドを実行して、NVRAM上のR2-RTのファイルに保存するようにしてください。

初期設定

  • R1、R2
    ホスト名
    IPアドレス
    ルーティングプロトコル OSPFエリア0

GNS3プロジェクトダウンロード(EEM_init.zip)

設定

【Step1:R1 EEMの設定】

インタフェースがシャットダウンされると「Interface , changed state to administratively down」というログが出力されます。このログ出力をEEMイベントとして検出し、CLIコマンドでno shutdownを実行するアクションを定義します。

R1

--------------------------------------------------
event manager applet NO_SHUT_Lo0
event syslog pattern "Interface Loopback0, changed state to administratively down"
action 1.0 cli command "enable"
action 2.0 cli command "conf t"
action 3.0 cli command "interface loopback0"
action 4.0 cli command "no shutdown"
--------------------------------------------------

【Step2:R1 EEMの確認】

R1でdebug event manager action cliコマンドでEEMのデバッグを有効にしながら、Lo0をシャットダウンします。すると、自動的にLo0でno shutdownコマンドが実行されてup/upになることを確認します。

R1

--------------------------------------------------
R1#debug event manager action cli
Debug EEM action cli debugging is on
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int lo 0
R1(config-if)#shutdown
R1(config-if)#
*Mar  1 00:05:11.935: %LINK-5-CHANGED: Interface Loopback0,
changed state to administratively down
*Mar  1 00:05:11.971: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : CTL : cli_open called.
*Mar  1 00:05:11.971: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : IN  :
*Mar  1 00:05:11.987: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT :
*Mar  1 00:05:11.987: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : R1>
*Mar  1 00:05:11.991: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : R1>
*Mar  1 00:05:11.991: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : R1>
*Mar  1 00:05:11.995: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : IN  : >enable
*Mar  1 00:05:12.019: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT :
*Mar  1 00:05:12.019: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : R1#
*Mar  1 00:05:12.019: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : IN  : #conf t
*Mar  1 00:05:12.035: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT :
*Mar  1 00:05:12.039: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : Enter configuration commands, one per line.  End with CNTL/Z.
*Mar  1 00:05:12.043: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : R1(config)#
*Mar  1 00:05:12.047: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : IN  : #interface loopback0
*Mar  1 00:05:12.075: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT :
*Mar  1 00:05:12.075: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : R1(config-if)#
*Mar  1 00:05:12.079: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : IN  : #no shutdown
*Mar  1 00:05:12.119: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT :
*Mar  1 00:05:12.123: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : OUT : R1(config-if)#
*Mar  1 00:05:12.127: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : IN  : #exit
*Mar  1 00:05:12.131: %HA_EM-6-LOG: NO_SHUT_Lo0 : DEBUG(cli_lib) : : CTL : cli_close called.
*Mar  1 00:05:12.135: %SYS-5-CONFIG_I: Configured from console by vty0
R1(config-if)#
*Mar  1 00:05:14.099: %LINK-3-UPDOWN: Interface Loopback0, changed state to up
R1(config-if)#
--------------------------------------------------

EEMでのCLIコマンドの実行は、VTYライン上で実行されていることもわかります。

【Step3:R2 EEMの設定】

毎日午前6時にshow ip routeコマンドを実行して、その内容をnvram上に追記していきます。毎日午前6時というcronタイマをイベントとして登録します。毎日午前6時なので、cron-entryのあとに”0 6 * * *”を指定します。
そして、アクションとして”show ip route | append nvram:R2-RT”のCLIコマンドを実行します。show ip routeの出力先としてnvram上のR2-RTファイルを追記で指定しています。

R2

--------------------------------------------------
event manager applet R2-RT
event timer cron name _EEMinternalname0 cron-entry "0 6 * * *"
action 1.0 cli command "enable"
action 2.0 cli command "show ip route | append nvram:R2-RT"
--------------------------------------------------

【Setp4:R2 EEMの確認】

R2でdebug event manager action cliコマンドでEEMのデバッグを有効にしながら、午前6時になるのを待ちます。

R2

--------------------------------------------------
R2#debug event manager action cli
Debug EEM action cli debugging is on
R2#show clock
05:59:56.775 UTC Mon Jun 16 2014
R2#
Jun 16 06:00:00.203: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : CTL : cli_open called.
Jun 16 06:00:00.203: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : IN  :
Jun 16 06:00:00.219: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT :
Jun 16 06:00:00.219: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT : R2>
Jun 16 06:00:00.223: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT : R2>
Jun 16 06:00:00.223: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT : R2>
Jun 16 06:00:00.227: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : IN  : >enable
Jun 16 06:00:00.251: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT :
Jun 16 06:00:00.251: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT : R2#
R2#
Jun 16 06:00:00.251: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : IN  :
#show ip route | append nvram:R2-RT
Jun 16 06:00:00.375: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT :
Jun 16 06:00:00.379: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : OUT : R2#
Jun 16 06:00:00.383: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : IN  : #exit
Jun 16 06:00:00.387: %HA_EM-6-LOG: R2-RT : DEBUG(cli_lib) : : CTL : cli_close called.
--------------------------------------------------

また、NVRAM上のR2-RTファイルを表示すると、R2のルーティングテーブルの内容が記録されていることがわかります。

R2

--------------------------------------------------
R2#more nvram:R2-RT
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C    192.168.12.0/24 is directly connected, FastEthernet0/0
192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.0.0/24 is directly connected, Loopback0
O       192.168.0.1/32 [110/2] via 192.168.12.1, 00:06:32, FastEthernet0/0
--------------------------------------------------

GNS3プロジェクトダウンロード(EEM_comp.zip)