CiscoIOSのipslaとEEMでPINGトラッキングの結果をトリガーに所定のコマンドを実行する
ルーティングプロトコルで迂回できない故障時などにワークアラウンドとし利用することが多い。
Juniper機器でも「JunosのPINGトラッキング」rpmとevent-policysを使って同じような実装できる。
IP SLA設定
以下、適宜わかりやすい文言を決める。イベント属性名や動作はIOSで定義済。
IPSLA12_TIMEOUT_ADMINDOWN
イベントアプレット名
"IP SLAs.12.: Threshold Occurred for timeout"
イベント発生時にログ出力する文言
---------IPSLA12_TIMEOUT_ADMINDOWN--------
イベント発生時にTRAPのOIDに続けて出力する文言
ip slaに続けて適宜番号を決定。frequencyは5で5秒ごとにPINGを実行。
life forever start-time nowはすぐに、永遠にPING監視する。
Consecutive occurrences 2では2回計測してPING応答がタイムアウトになるとリアクションする。
ip sla 12
icmp-echo 10.10.10.1 source-ip 11.11.11.1
frequency 5
ip sla schedule 12 life forever start-time now
ip sla reaction-configuration 12 react timeout threshold-type consecutive 2 action-type none
EEM設定
IPSLAで設定したIPSLAのPING監視がタイムアウトになったときのlogの文字列をEEMで検知しaction 10-50までのconfigを自動投入する。action 60-80でtrapにOIDと出力内容を指定して出力する。
event manager applet IPSLA12_TIMEOUT_ADMINDOWN
event syslog pattern "IP SLAs.12.: Threshold Occurred for timeout"
action 10 cli command "enable"
action 20 cli command "configure terminal"
action 30 cli command "interface GigabitEthernet1/12"
action 40 cli command "shutdown"
action 50 cli command "end"
action 60 info type snmp var "var1" oid 1.3.6.1.4.1.9.9.41.1.2.3.1.3 int 5
action 70 info type snmp var "var1" oid 1.3.6.1.4.1.9.9.41.1.2.3.1.5 string "------- IPSLA12_TIMEOUT_ADMINDOWN -------"
action 80 info type snmp trap enterprise-oid 1.3.6.1.4.1.9.9.41.2 generic-trapnum 6 specific-trapnum 1 trap-oid 1.3.6.1.4.1.9.9.41.2.0.1 trap-var "var1"
動作ステータス確認
OKならPING監視できている
IPSLAs Latest Operation Summary
ID Type Destination Stats Return Last
(ms) Code Run
----------- ---------- --------------- ------ ---------- -----------------
*12 icmp-echo 10.10.10.1 RTT=1 OK 1 second ago
PING-NG発生時のログ
Mar 23 17:11:10.021 JST: %RTT-4-OPER_TIMEOUT: condition occurred, entry number = 12
Mar 23 17:11:10.021 JST: %RTT-3-IPSLATHRESHOLD: IP SLAs(12): Threshold Occurred for timeout
Mar 23 17:11:10.073 JST: %LINK-5-CHANGED: Interface GigabitEthernet1/12, changed state to administratively down
Mar 23 17:11:10.077 JST: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/12, changed state to down
Mar 23 17:11:10.101 JST: %SYS-5-CONFIG_I: Configured from console by on vty10 (EEM:IPSLA12_TIMEOUT_ADMINDOWN)
イベント実行確認
event appletで指定したshutdownが実行済みになっている
ISP-RT11#sh ip int brief g1/12
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1/12 unassigned YES unset administratively down down
PING復旧時ログ
※PINGがOKになったときに自動復旧させたい場合はIFがUPしてPINGが復旧した時のLOGで別のEEMを作成すればよい
Mar 23 17:12:55.022 JST: %RTT-4-OPER_TIMEOUT: condition cleared, entry number = 12
Mar 23 17:12:55.022 JST: %RTT-3-IPSLATHRESHOLD: IP SLAs(12): Threshold Cleared for timeout
Mar 23 17:13:18.267 JST: %LINK-3-UPDOWN: Interface GigabitEthernet1/12, changed state to down
Mar 23 17:13:18.811 JST: %LINK-3-UPDOWN: Interface GigabitEthernet1/12, changed state to up
Mar 23 17:13:21.803 JST: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/12, changed state to up
Mar 23 17:13:40.659 JST: %SYS-5-CONFIG_I: Configured from console by 38pinn on vty9 (192.168.1.1)
Mar 23 17:15:25.024 JST: IPSLA-INFRA_TRACE:OPER:12 slaSchedulerEventWakeup
(参考)PINGが復旧したときのlog
%RTT-3-IPSLATHRESHOLD: IP SLAs(12): Threshold Cleared for timeout