http://www.zhaocs.info/sla_eem_1.html

SLA简介

SLA (Service-Level Agreement)简单的理解,就是测量一些网络性能参数,在超过一些门限值时,结合track或者EEM它可以触发一些操作。例如:
1. 监控下一跳的可达性,如果不可达了, 则让某一静态路由失效
2. 监控领居的接口地址,如果连续三次不可达, 则将端口shutdown

SLA 应用实例

如果客户的线路质量不好,又无法改善时,我们需要一种方法来:当线路质量达到一定阀值时,直接reset端口,用重置链路来改善。
那么我们如何达到这种需求呢,这时SLA就登场了,那么如何部署SLA呢?

分析第一种方法

ip sla 2
 icmp-echo 1.1.1.2
 timeout 3000
 frequency 10
<---频率设置为10S发一次
ip sla schedule 2 life forever start-time now
<---设置SLA的启动时间为马上,有效期为永远
!
Track 1 rtr 2
<---配置track, trace有up和down两种状态
!
event manager session cli username "username"
event manager applet test_track_1
<---EEM 配置
 event track 1 state down
<---如果track 1的状态是down的, 则执行下面的操作
 action 1.0 cli command "enable"
 action 2.0 cli command "conf t"
 action 3.0 cli command "int g4/3"
 action 3.1 cli command "shut"
 action 3.2 cli command "no shut"
 action 4.0 cli command "end"

根据以上配置,如果设备会每10秒发送一个PING包, 当超时时,track 1会变为down的状态,进而触发对端口的shut/no shut,这样达到最终的目的了么?在实际网络中,偶尔丢一个包是正常的、不可避免的,与此同时,端口是正常工作的。但是,根据上面的配置,端口依然会被reset,导致业务受到影响。

为了避免这一类不必要的业务影响,我们需要对此配置进行优化,让track 1在发生真正的网络故障时才down。
最常用的判断网络故障的标准是连续的超时!
因此加入以下命令(只说明增加的命令,另外修改的命令用红色标出):

ip sla 4
 icmp-echo 1.1.1.2
 timeout 1000
 frequency 10
ip sla schedule 4 life 5 start-time pending
<---并不是马上启动,有效期也只有5秒
!
ip sla reaction-configuration 2 react timeout threshold-type consecutive 3 action-type trapandtrigger
<---当发生连续3次timeout时,trigger另一个SLA,并发SNMP Trap
ip sla reaction-trigger 2 4
<---SLA 2连续三次timeout就要trigger SLA 4
!
track 1 rtr 4<---track SLA 4,而不是SLA 2,为什么?

如果配置track 1 rtr 2,则每次SLA 2超时时,track 1都会down,每down一次EEM都会reset端口,这样功能还是和之前一样不合理。所以,需要配置track 1 rtr 4,因为SLA 4是pending的,它在SLA 2连续三次超时时才被触发(10*3 + 5 =35S)

OK,那么问题解决了么?
我会在下一篇文章中讲解!