snmp中MIB的真实值在哪里

时间:2016-11-15 02:10:33

标签: snmp asn.1 mib

MIB中的对象使用A ASN.1的子集定义。以下为

nsMemory                    OBJECT IDENTIFIER ::= {netSnmpObjects 31}
nsSwap                      OBJECT IDENTIFIER ::= {netSnmpObjects 32}
nsCPU                       OBJECT IDENTIFIER ::= {netSnmpObjects 33}
nsLoad                      OBJECT IDENTIFIER ::= {netSnmpObjects 34}
nsDiskIO                    OBJECT IDENTIFIER ::= {netSnmpObjects 35}

然后,只有OBJECT的格式。真正的价值在哪里,如“2048”? snmpd会立即处理并计算出来吗?

1 个答案:

答案 0 :(得分:1)

MIB不包含值。它们仅定义SNMP代理(硬件设备或应用程序)向SNMP管理器报告的值的名称和类型。

在您的代码段中,您引用OBJECT IDENTIFIER作为OID树中无值节点的“名称”。通常,一个或多个OBJECT TYPE子句逻辑链接在OBJECT IDENTIFIER下面,其中OBJECT TYPE为来自SNMP代理的SNMP数据定义“名称”和“值类型”。

在以下示例中,sysUpTime链接在OID树中的无值system1.3.6.1.2.1.1)节点下。这里sysUpTime用作名称(1.3.6.1.2.1.1.3节点对应),用于处理TimeTicks类型的值:

system   OBJECT IDENTIFIER ::= { mib-2 1 }

sysUpTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The time (in hundredths of a second) since
            the network management portion of the system
            was last re-initialized."
    ::= { system 3 }

MIB主要用于人(操作SNMP管理器)来读取,解释和导航SNMP代理提供的SNMP数据。完全可以在没有任何MIB文件的情况下运行SNMP。在协议级别,只有OID用于引用值。

您可能会发现this explanation与您的问题相关。