MIB 文件中的 DisplayString SIZE 如何影响 snmpget 的输出?

MIB 文件中的 DisplayString SIZE 如何影响 snmpget 的输出?

我有一台 Cisco 交换机,其 SNMP 代理返回最多 256 个字符长的接口描述 ( ifAlias)。例如,我收到一个 100 个字符长的接口描述:

$ 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
$

但是,MIB 文件中的 DisplayString SIZE 为 64 个字符:

$ 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
$

我期望snmpget显示使用 DisplayString SIZE 参数定义的字符数,例如前 64 个“x”字符。 DisplayString SIZE 会影响输出snmpget吗?如果是的话,那又如何呢?或者 DISPLAY-HINT 参数是唯一真正改变 SNMP GetResponse 值输出的参数吗?

答案1

客户端 MIB 中的信息不会也不应该影响它从服务器/交换机接收到的值。snmpget只是返回 Cisco 交换机 SNMP 代理提供的内容。在这种情况下,MIB 主要是一个指南:只要 Cisco 的实现符合 DisplayString 的 SMIv2 定义(长度可以是 0..255 之间的任意值),Cisco 就可以自由地实现其 MIB(请参阅https://www.rfc-editor.org/rfc/rfc2579)。这也是 RFC 2863 的标准(参见https://www.rfc-editor.org/rfc/rfc2863)。

相关内容