Existe um SNMP MIB para Cisco Track Objects

8

Meu objetivo é escrever uma verificação de serviço que obtenha o status de uma lista de trilhas da Cisco que esteja executando um Boolean OR. Atualmente, tenho um raspador de tela, mas isso realmente não é o ideal em termos de dimensionamento desse tipo de verificação de serviço.

O objeto de trilha abaixo simplesmente retira a rota estática rastreada se object 10e object 20é inacessível, permitindo que uma rota padrão aprendida pelo BGP seja instalada, ou seja, no status de falha de RIB.

Exemplo de configuração:

!
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

Seria ideal obter o número de alterações ou o Boolean ORstatus (para cima ou para baixo) de um OID.

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

Eu tenho procurado na máquina do Google, nos fóruns e no Cisco SNMP Object Navigator sem sucesso.

um tempo
fonte

Respostas:

8

Não acredito que haja uma maneira de pesquisar diretamente os resultados do ORSNMP via mas você certamente pode pesquisar os resultados do IP SLA e calculá-lo você mesmo.

Usando o CISCO-RTTMON-MIB (1.3.6.1.4.1.9.9.42), você pode verificar o valor de tempo limite de suas verificações de acessibilidade, pegar o valor verdadeiro / falso que ele retorna e fazer o que ORfor na linguagem de script usada para pesquisa via SNMP.


Por exemplo, eu configurei um teste semelhante ao seu acima:

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

Então, verifiquei a saída no 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

Em seguida, com o rastreamento do IP SLA, instalei o CISCO-RTTMON-MIB no meu servidor de monitoramento e analisei o valor de rttMonCtrlOperTimeoutOccurred (1.3.6.1.4.1.9.9.42.1.2.9.1.6) para sua saída True / False .

O item principal a ser observado é que, como estamos pesquisando se ocorreu ou não um tempo limite, isso Falso significa que o destino é alcançável e True significa que ele não é alcançável e que ocorreu um tempo limite .

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)

Por fim, troquei o tráfego para 8.8.8.8 nessa caixa e verifiquei novamente os resultados da trilha no 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

Agora que temos um dos objetos de teste em um Downestado, vamos ver os resultados da pesquisa rttMonCtrlOperTimeoutOccurred novamente:

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)

Agora, como afirmei acima, você apenas teria que pesquisar esses valores e usá-los da maneira que precisar em seu script.

Brett Lykins
fonte
5

Tivemos o mesmo problema e encontrei a solução para ele:

É chamado Expressão MIB conforme RFC 2982 . Você pode executar OR lógico nesse nível criando um novo objeto SNMP OID que será calculado ao mesmo tempo em que a solicitação SNMP chegar ao roteador / switch deste OID.

Posteriormente, você pode usar esse objeto para pesquisar estatísticas SNMP de 2 ou mais análises de SLA IP ORed (via Expression MIB).

Eu posso fornecer mais detalhes, se você quiser. Também prepararei uma postagem no blog com instruções passo a passo sobre como criar o novo SNMP OID para esse uso específico via Expression MIB.

Digamos que você tenha 3 sondas HTTP IP SLA configuradas no dispositivo e deseja monitorar (via SNMP) o resultado ORed:

  1. Índice IP SLA / rttMonHTTPStatsEntry == 3000
  2. Índice SLA IP / rttMonHTTPStatsEntry == 3001
  3. Índice SLA IP / rttMonHTTPStatsEntry == 3002

Você pode usar o OID rttMonLatestHTTPOperSense a seguir (um por entrada / probe IP sla) e atribuir seu valor à variável para usar esses valores na avaliação da expressão.

Como:

  1. destrói uma eventual expressão antiga criada

    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 número inteiro 6

  2. criar e esperar

    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 número inteiro 5

  3. cria o índice a ser usado posteriormente para recuperar o resultado da expressão

    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

  4. a descrição da expressão

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.1.1.4.1 s "Expressão MIB - sondas IP SLA ORing"

  5. Expressão a ser avaliada

    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))) '

  6. define a variável $ 1 para rttMonLatestHTTPOperSense

    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

  7. define a variável $ 2 para 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

  8. define a variável $ 3 para rttMonLatestHTTPOperSense

    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

  9. define o tipo de variável $ 1 como absoluto (para delta é 2)

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.1 número inteiro 1

  10. define o tipo de variável $ 2 como absoluto (para delta é 2)

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.2 número inteiro 1

  11. define o tipo de variável $ 3 como absoluto (para delta é 2)

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.4.1.3 número inteiro 1

  12. Defina as linhas no expObjectTable para ativo

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.1 número inteiro 1

  13. Defina as linhas no expObjectTable para ativo

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.2 número inteiro 1

  14. Defina as linhas no expObjectTable para ativo

    snmpset -v2c -cstart123 172.0.0.1 1.3.6.1.4.1.9.10.22.1.3.2.1.10.1.3 número inteiro 1

  15. Ativa a expressão

    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 número inteiro 1

Somente script:

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 '((($1 < 2) && ($1 > 0)) || (($2 < 2) && ($2 > 0)) || (($3 < 2) && ($3 > 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
damian1baran
fonte