Quando o contador do Cisco IOS SNMP "ifCounterDiscontinuityTime" é alterado?

7

De acordo com o navegador de objeto SNMP da Cisco, o ifCounterDiscontinuityTimecontador (1.3.6.1.2.1.31.1.1.1.19) é o valor da sysUpTimeocasião mais recente em que um ou mais contadores dessa interface sofreram uma descontinuidade. Como causar essa descontinuidade? Eu tentei desativar a interface do roteador ("shutdown" e "no shutdown" por cinco segundos), removendo o cabo físico por cinco segundos da porta do roteador, mas ainda assim o valor ifCounterDiscontinuityTimeé zero:

# snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.2.1.31.1.1.1.19
iso.3.6.1.2.1.31.1.1.1.19.1 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.31.1.1.1.19.2 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.31.1.1.1.19.3 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.31.1.1.1.19.4 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.31.1.1.1.19.5 = Timeticks: (0) 0:00:00.00
# 

Eu até fiz o Counter32contador de tipos quebrar, mas o ifCounterDiscontinuityTimezero ficou:

$ snmpwalk -v 2c -c public 192.168.1.1 ifInOctets.10107
IF-MIB::ifInOctets.10107 = Counter32: 4278115545
$ snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.2.1.31.1.1.1.19.10107
IF-MIB::ifCounterDiscontinuityTime.10107 = Timeticks: (0) 0:00:00.00
$ snmpwalk -v 2c -c public 192.168.1.1 ifInOctets.10107
IF-MIB::ifInOctets.10107 = Counter32: 18656065
$ snmpwalk -v 2c -c public 192.168.1.1 1.3.6.1.2.1.31.1.1.1.19.10107
IF-MIB::ifCounterDiscontinuityTime.10107 = Timeticks: (0) 0:00:00.00
$ 

192.168.1.1é um switch Cisco e 10107é um SNMP ifIndexpara a porta Gi0 / 7.

Quando o ifCounterDiscontinuityTimecontador SNMP muda no Cisco IOS?

Martin
fonte
Hum ... acho que é mais um problema de roteador ou conexão?
popscapo

Respostas:

6

O ifCounterDiscontinuityTime é acionado quando as interfaces são removidas dinamicamente de um dispositivo e a mesma interface é dinamicamente adicionada novamente. Eu testei isso usando uma interface de loopback, mas acredito que o comportamento seria o mesmo para a interface modular cuja existência mudaria com base na presença ou não do módulo. As etapas para reproduzir isso estão abaixo e há algumas leituras adicionais sobre este tópico no RFC aqui: https://tools.ietf.org/html/rfc2863#section-3.1.5

1. Crie um loopback 100 e encontre o ifindex

router1#conf t
router1(config)#int loopback100
router1(config-if)#end

[user@host logs]$ snmpwalk -v 2c -c $COMMUNITY router1 .1.3.6.1.2.1.2.2.1.2 | grep Loopback
IF-MIB::ifDescr.67 = STRING: Loopback100

2. Verifique o valor atual de ifCounterDiscontinuityTime for Loopback100

[user@host logs]$ snmpwalk -v 2c -c $COMMUNITY router1 1.3.6.1.2.1.31.1.1.1.19.67
IF-MIB::ifCounterDiscontinuityTime.67 = Timeticks: (0) 0:00:00.00

3. Remova o Loopback100 e verifique o valor de ifCounterDiscontinuityTime

router1(config)#no int loopback 100

[user@host logs]$ snmpwalk -v 2c -c $COMMUNITY router1 1.3.6.1.2.1.31.1.1.1.19.67
IF-MIB::ifCounterDiscontinuityTime.67 = No Such Instance currently exists at this OID

4. Volte a adicionar o Loopback100 e verifique o valor de ifCounterDiscontinuityTime

router1(config)#int loopback 100

[user@host logs]$ snmpwalk -v 2c -c $COMMUNITY router1 1.3.6.1.2.1.31.1.1.1.19.67
IF-MIB::ifCounterDiscontinuityTime.67 = Timeticks: (111308186) 12 days, 21:11:21.86
Luke Klimasauskas
fonte
Obrigado! Eu pode confirmar que, por exemplo, a remoção e inserção do WS-X4306-GBou WS-X4448-GB-RJ45de linha-placas no WS-C4506chassis também irá causar ifCounterDiscontinuityTimea mudança. Então, basicamente ifCounterDiscontinuityTime, registrará o registro de data e hora quando a interface ficou disponível para o mecanismo SNMP? Se a interface estiver disponível desde o início, o valor ifCounterDiscontinuityTimepermanecerá 0?
Martin Martin
11
Se estou entendendo a RFC corretamente, ifCounterDiscontinuityTime registra o carimbo de data e hora quando a interface se tornou presente novamente usando o mesmo ifIndex. O objetivo disso é que o software de monitoramento SNMP saiba não usar dados antigos do contador de interface ao compará-lo com novos dados do contador de interface. A única vez em que o valor ifCounterDiscontinuityTime é inicializado é quando uma interface é removida e adicionada novamente com o mesmo ifIndex que possuía anteriormente, caso contrário, permaneceria zero. Espero que ajude.
Luke Klimasauskas
3

Eu acho que descontinuidade se refere a uma anormalidade. Eu achei isso

O valor de sysUpTime na ocasião mais recente em que um ou mais contadores dessa interface sofreram uma descontinuidade. Os contadores relevantes são as instâncias específicas associadas a essa interface de qualquer objeto Counter32 ou Counter64 contido no ifTable ou ifXTable. Se essas descontinuidades não ocorreram desde a última reinicialização do subsistema de gerenciamento local, esse objeto contém um valor zero.

para mim, isso implica que "descontinuidade" está relacionada à rolagem de número inteiro de tamanho de bit.

Portanto, se você observar a mudança do sysTime, sabe que os contadores que agora mostram valores menores que os verificados pela última vez foram, de fato, contornados, como se você tivesse reiniciado.

Craig Constantine
fonte
Obrigado pela resposta! Para ser honesto, isso é um pouco confuso. Se eu vir sysUpTimealteração para um valor menor que a última verificação, acho que os contadores que exibem valores menores que a última verificação não são contornados porque o dispositivo foi recarregado. Ou eu te entendi mal de alguma maneira? Além disso, envolvi um Counter32contador de tipo e não afetou ifCounterDiscontinuityTime. Eu atualizei minha postagem inicial.
Martin