SNMP (net-snmp) está faltando contadores de 64 bits no FreeBSD 9.1 (ifHCInOctets / ifHCOutOctets)

1

Estou usando o SNMP (a partir da porta net-mgmt / net-snmp, v5.7.2, compilado com "MFD_REWRITES") em um sistema FreeBSD9.1-RELEASE. Por alguma razão, a ifXTable MIB (1.3.6.1.2.1.31.1.1.1) parece estar perdendo os contadores HC (por exemplo, ifHCInOctets (1.3.6.1.2.1.31.1.1.1.6)).

get (noSuchName) There is no such variable name in this MIB.
snmpget localhost <hostname> 1.3.6.1.2.1.31.1.1.1.6.5
snmpget localhost <hostname> ifHCInOctets.5
snmp error index = 1

E ao listar 1.3.6.1.2.1.31.1.1.1 recebo

usbus0 ifName.1
...
vr0 ifName.5
...
re0 ifName.8
...
re0.10 ifName.12
...
tun0 ifName.17
...
79144352 ifInMulticastPkts.5
...
120009 ifInMulticastPkts.8
...
43670 ifInMulticastPkts.12
...
0 ifInBroadcastPkts.5
...
0 ifOutMulticastPkts.5
...
0 ifOutBroadcastPkts.5
...
100 ifHighSpeed.5
...
1000 ifHighSpeed.8
...
false ifPromiscuousMode.5
...
true ifConnectorPresent.5
...
 ifAlias.5
...
0:00:00 ifCounterDiscontinuityTime.5
...

Para mim, parece que "muito" estava lá. Mas não o ifHC[In|Out]Octets ...

Como você pode ver minhas interfaces usam o "vr" (Via Rhine) e "re" (Realtek). Alguém tem alguma dica?

    
por scherand 19.03.2014 / 20:58

1 resposta

3

Descobri que o problema parece ser a minha consulta: por algum motivo (desconhecido) o módulo perl SNMP::Util que estou usando envia incondicionalmente consultas SNMP usando a versão de protocolo 1. E o SNMP v1 não pode manipular contadores de 64 bits. / p>

Então, tentei usar Net::SNMP::Util , o que permite especificar a versão do protocolo SNMP a ser usada. E voilà, funciona.

Usar snmpwalk do shell também revela isso:

$ snmpwalk -Os -c <community> -v 1 localhost 1.3.6.1.2.1.31.1.1.1 | grep 'ifHC.*Octets' |wc -l
   0
$ snmpwalk -Os -c <community> -v 2c localhost 1.3.6.1.2.1.31.1.1.1 | grep 'ifHC.*Octets' |wc -l
  34
$ snmpwalk -Os -c <community> localhost 1.3.6.1.2.1.31.1.1.1 | grep 'ifHC.*Octets' |wc -l
  34
    
por 23.03.2014 / 16:42

Tags