我注意到在某些情况下,实际的OID在MIB名称中添加了额外的.0或.1或.2,但是,这并不是一直发生的。使用非常常见的SysName示例。 Net-SNMP的SNMPTranslate和MIB浏览器将SysName的OID显示为" .1.3.6.1.2.1.1.5"。
但是,实际的SysName OID是" .1.3.6.1.2.1.1.5.0"好像我要在" .1.3.6.1.2.1.1.5"上发出一个SNMPGet,它就会失败。
OID SysName是1.3.6.1.2.1.1.5.0还是1.3.6.1.2.1.1.5?
为了增加混乱,总是需要尾随0或1。
答案 0 :(得分:1)
SNMP中的托管对象有两种类型:标量对象和表格对象。
始终具有单个实例的托管对象称为标量对象。另一方面,表格对象具有多个实例,例如表的行。例如, MIB II 系统组有七个" leaf"它下的变量。这些对象中的每一个都是标量对象。例如, sysUpTime 的值是自系统的网络管理软件(SNMP代理)重新初始化以来的持续时间,以百分之一秒为单位。 标量对象的OID以.0结尾。
Object Name: sysUpTime
Object ID: 1.3.6.1.2.1.1.3.0
Object Syntax: TimeTicks
Object Access: read-only
Object Status: mandatory
Object Description: The time (in hundredths of a second) since the
network management portion of the system was last
re-initialized.
SNMP中的表是二维对象,定义为名为SEQUENCE OF的ASN.1类型。序列的每个元素都是表中的一个条目(行),它本身就是一系列标量值的对象。 SNMP不允许将表嵌套在表中。
例如,MIB II 接口组只包含一个表格对象 ifTable ,其中每个网络接口包含一行。表中的每一行都是对象 ifEntry 的实例。每行包含标量值叶对象 IfIndex , ifDescr 等的实例。叶对象称为列对象,因为每个此类对象的实例构成表中的一列。虽然这些对象具有标量值实例,但它们不是标量对象,因为它们可以有多个实例。