我的目标是编写服务检查,以提取正在执行Boolean OR的思科跟踪列表的状态。我目前有一个屏幕抓取器,但是对于扩展这种类型的服务检查而言,这确实不是理想的选择。无法访问,允许安装BGP学习到的默认路由,否则将处于RIB失败状态。

配置示例:

!
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提取更改数量或object 10状态(向上或向下)非常理想。

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


我一直在研究Google机器,论坛和Cisco SNMP Object Navigator均无济于事。

#1 楼

我不相信有一种方法可以通过SNMP直接轮询OR的结果,但是您当然可以轮询IP SLA结果并自己计算。

使用CISCO-RTTMON-MIB (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



接下来,在进行IP SLA跟踪的情况下,我在监视服务器上安装了CISCO-RTTMON-MIB,然后遍历rttMonCtrlOperTimeoutOccurred(1.3 .6.1.4.1.9.9.42.1.2.9.1.6)的True / False输出。

要注意的关键项是,因为我们正在轮询是否发生超时,所以False表示目标可以到达,而True则意味着目标无法到达并且发生了超时。 br />
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


最后,我从该框中将流量屏蔽至8.8.8.8,并再次在IOS中检查了跟踪结果:

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)


现在我们有一个处于Down状态的测试对象,让我们再次查看轮询rttMonCtrlOperTimeoutOc的结果:
现在,如上所述,您只需要轮询这些值并使用它们即可,但是需要在脚本中进行。

#2 楼

我们遇到了相同的问题,并且找到了解决方案:

它被称为RFC 2982中的Expression MIB。您可以通过创建新的SNMP OID对象在此级别上执行逻辑或,该对象将在以下位置进行计算

此后,您可以使用该对象来轮询2个或更多ORed(通过Expression MIB)IP SLA探针的SNMP统计信息。 />
如果需要,我可以为您提供更多详细信息。我还将准备有关它的博客文章,并提供分步说明,如何通过Expression MIB为此特定用途创建新的SNMP OID。

假设您在设备上配置了3个HTTP IP SLA探针监视(通过SNMP)ORed结果:


IP SLA索引/ rttMonHTTPStatsEntry == 3000
IP SLA索引/ rttMonHTTPStatsEntry == 3001
IP SLA索引/ rttMonHTTPStatsEntry == 3002

您可以使用以下OID rttMonLatestHTTPOperSense(每个条目/ ip sla探针一个)并将其值分配给变量,以便在表达式评估中使用此值。

如何:



销毁最终创建的旧表达式

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10 .22.1.2.3.1.3.101.49.101.120.112整数6


创建并等待

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1 .9.10.22.1.2.3.1.3.101.49.101.120.112整数5


创建索引以供以后检索表达式的结果

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.2.101.49.101.120.112 u 1


表达式的说明



要评估的表达方式

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.2.1 s'(((($ 1 <2)&&($ 1> 0))||((($ 2 <2)&&($ 2 > 0))||((($ 3 <2)&&($ 3> 0)))'


为rttMonLatestHTTPOperSense

snmpset -v2c-设置变量$ 1- cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.1 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3000


设置变量$ 2 for rttMonLatestHTTPOperSense

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.2 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3001


为rttMonLatestHTTPOperSense设置变量$ 3
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.3 objectidentifier 1.3。 6.1.4.1.9.9.42.1.5.1.1.6.3002

将$ 1变量的类型设置为绝对(对于增量为2)

snmpset -v2c- cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.1整数1


将$ 2变量的类型设置为绝对(对于增量为2)

snmpset -v2c -cstart123 172.0 .0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.2整数1


将$ 3变量的类型设置为绝对(对于增量为2)

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.3整数1


将expObjectTable中的行设置为active

snmpset -v2c -cstart123 172.0.0.1
1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.1整数1


将行设置为有效的expObjectTable

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.2整数1


设置expObjectTable中要激活的行

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.3整数1


激活表达式

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112整数1


仅脚本:

snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 integer 6
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 integer 5
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.2.101.49.101.120.112 u 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.4.1 s "Expression MIB - IP SLA Probes ORing"
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.2.1 s '((( < 2) && ( > 0)) || (( < 2) && ( > 0)) || (( < 2) && ( > 0)))'
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.1 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3000
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.2 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3001
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.2.1.3 objectidentifier 1.3.6.1.4.1.9.9.42.1.5.1.1.6.3002
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.1 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.2 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.3 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.1 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.2 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.3 integer 1
snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.2.3.1.3.101.49.101.120.112 integer 1