我的目标是编写一个服务检查,以获取执行Boolean OR的思科跟踪列表的状态。我有一个屏幕刮板目前到位,但这确实不是理想的缩放这种类型的服务检查。
如果object 10和object 20都是不可访问的,下面的跟踪对象只会取出跟踪的静态路由,允许安装BGP学习到的默认路由,否则将处于肋骨故障状态。
!
track 10 ip sla 1 reachability
!
track 20 ip sla 2 reachability
!
track 30 list boolean or
object 10
object 20
!
ip sla 1
icmp-echo 8.8.8.8 source-ip 10.10.10.10
ip sla schedule 1 life forever start-time now
ip sla 2
icmp-echo 4.2.2.2 source-ip 10.10.10.10
ip sla schedule 2 life forever start-time now
ip route 0.0.0.0 0.0.0.0 10.10.10.1 track 30从OID中提取更改数或Boolean OR状态(向上或向下)都是理想的。
HOSTNAME#show track 30
Track 30
List boolean or
Boolean OR is Up
14716 changes, last change 02:18:47
object 10 Up
object 20 Up
Tracked by:
STATIC-IP-ROUTINGTrack-list 0我一直在谷歌的机器,论坛和思科SNMP对象导航器挖掘,但没有任何效果。
发布于 2014-03-12 23:35:35
我不相信有一种方法可以通过SNMP直接轮询OR的结果,但是您当然可以对IP结果进行轮询并自己计算。
使用思科-RTTMON (1.3.6.1.4.1.9.9.42),您可以检查可达性检查的超时值,获取它返回的真/假值,并使用任何脚本语言通过SNMP轮询OR。
例如,我在上面设置了一个类似于您的测试:
track 10 ip sla 1 reachability
!
track 20 ip sla 2 reachability
!
track 30 list boolean or
object 10
object 20
!
ip sla 1
icmp-echo 8.8.8.8 source-ip 10.129.10.62
ip sla schedule 1 life forever start-time now
ip sla 2
icmp-echo 4.2.2.2 source-ip 10.129.10.62
ip sla schedule 2 life forever start-time now
!
ip route 10.171.20.0 255.255.255.252 10.129.10.61 track 30然后,我在IOS中验证了输出:
R-VOIPLAB#show track 30
Track 30
List boolean or
Boolean OR is Up
2 changes, last change 00:01:21
object 10 Up
object 20 Up接下来,在IP SLA跟踪就绪之后,我在监视服务器上安装了CISCO,并为它的真/假输出遍历了rttMonCtrlOperTimeoutOccurred的值(1.3.6.1.1.4.9.9.42.1.2.2.9.1.6)。
需要注意的关键是,由于我们正在轮询是否发生了超时,这个False意味着目标是可达的,而True表示它是不可到达的,并且超时已经发生。
snmpwalk -v3 -a SHA -A SNMP-AUTH-PASS -l authNoPriv -u SNMPUSER r-voiplab rttMonCtrlOperTimeoutOccurred
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.1 = INTEGER: false(2)
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.2 = INTEGER: false(2)最后,我从该框中将流量黑到8.8.8.8,并再次检查了IOS中的跟踪结果:
R-VOIPLAB(config)#ip route 8.8.8.8 255.255.255.255 null 0
R-VOIPLAB(config)#end
R-VOIPLAB#show track 30
Track 30
List boolean or
Boolean OR is Up
2 changes, last change 00:21:18
object 10 Down
object 20 Up
Tracked by:
STATIC-IP-ROUTING 0现在我们有了一个处于Down状态的测试对象,让我们再次看到轮询rttMonCtrlOperTimeoutOccurred的结果:
snmpwalk -v3 -a SHA -A SNMP-AUTH-PASS -l authNoPriv -u SNMPUSER r-voiplab rttMonCtrlOperTimeoutOccurred
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.1 = INTEGER: true(1)
CISCO-RTTMON-MIB::rttMonCtrlOperTimeoutOccurred.2 = INTEGER: false(2)现在,正如我前面所说的,您只需轮询这些值并在脚本中使用它们。
https://networkengineering.stackexchange.com/questions/6784
复制相似问题