Eu tenho um switch Cisco cujo agente SNMP retorna descrições de interface com até 256 caracteres ( ifAlias
). Por exemplo, aqui recebo uma descrição da interface com 100 caracteres:
$ snmpget -m ./IF-MIB_tmp -M /usr/share/snmp/mibs/ -M
/usr/local/share/snmp/mibs/ -Ov -v 2c -c public switch
IF-MIB::ifAlias.53
STRING: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$
No entanto, DisplayString SIZE em arquivos MIB tem 64 caracteres:
$ grep -A 5 -i "^ifalias" ./IF-MIB_tmp /usr/share/snmp/mibs/* /usr/local/shar /snmp/mibs/*
./IF-MIB_tmp:ifAlias OBJECT-TYPE
./IF-MIB_tmp- SYNTAX DisplayString (SIZE(0..64))
./IF-MIB_tmp- MAX-ACCESS read-write
./IF-MIB_tmp- STATUS current
./IF-MIB_tmp- DESCRIPTION
./IF-MIB_tmp- "This object is an 'alias' name for the interface as
--
/usr/share/snmp/mibs/mib-rfc2863a.txt:ifAlias OBJECT-TYPE
/usr/share/snmp/mibs/mib-rfc2863a.txt- SYNTAX DisplayString (SIZE(0..64))
/usr/share/snmp/mibs/mib-rfc2863a.txt- MAX-ACCESS read-write
/usr/share/snmp/mibs/mib-rfc2863a.txt- STATUS current
/usr/share/snmp/mibs/mib-rfc2863a.txt- DESCRIPTION
/usr/share/snmp/mibs/mib-rfc2863a.txt- "This object is an 'alias' name for the interface as
$
Eu esperava que snmpget
exibisse o número de caracteres definidos com o parâmetro DisplayString SIZE, por exemplo, os primeiros 64 caracteres "x". DisplayString SIZE afeta a saída de snmpget
? Se isso acontecer, então como? Ou o parâmetro DISPLAY-HINT é o único que realmente altera a saída dos valores SNMP GetResponse?
Responder1
As informações no MIB do seu cliente não terão qualquer influência no valor que recebe do servidor/switch, nem deveriam. snmpget
está simplesmente retornando o que o agente SNMP do switch Cisco está fornecendo. Nesse caso, o MIB é principalmente uma diretriz: a Cisco é livre para implementar seu MIB como quiser, desde que a implementação da Cisco esteja em conformidade com a definição SMIv2 de DisplayString, que pode ter entre 0 e 255 de comprimento (consultehttps://www.rfc-editor.org/rfc/rfc2579). Este também é o padrão para RFC 2863 (vejahttps://www.rfc-editor.org/rfc/rfc2863).