S5800 SNMP Get Rping MIB节点失败
问题案例分析
一、 组网:
无。
二、 问题描述:
客户通过SNMP网管在S5800上get Rping MIB的相关节点时,发现部分MIB实例索引的节点无法get成功。如下所示,当去get 实例索引为 1.34.1.66 时,snmpget返回下面错误
No Such Instance currently exists at this OID
三、 过程分析:
首先,我们先普及一下Rping的MIB的基础知识。
相关MIB文件:
DISMAN-PING-MIB.mib
相关MIB表:
Name: pingCtlTable
Type: OBJECT-TYPE
OID: 1.3.6.1.2.1.80.1.2
Full path: iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).pingMIB(80).pingObjects(1).pingCtlTable(2)
Module: DISMAN-PING-MIB
相关MIB节点:
1.3.6.1.2.1.80.1.2.1.1 pingCtlOwnerIndex
1.3.6.1.2.1.80.1.2.1.2 pingCtlTestName
1.3.6.1.2.1.80.1.2.1.3 pingCtlTargetAddressType
1.3.6.1.2.1.80.1.2.1.4 pingCtlTargetAddress
1.3.6.1.2.1.80.1.2.1.5 pingCtlDataSize
1.3.6.1.2.1.80.1.2.1.6 pingCtlTimeOut
1.3.6.1.2.1.80.1.2.1.7 pingCtlProbeCount
1.3.6.1.2.1.80.1.2.1.8 pingCtlAdminStatus
1.3.6.1.2.1.80.1.2.1.9 pingCtlDataFill
1.3.6.1.2.1.80.1.2.1.10 pingCtlFrequency
1.3.6.1.2.1.80.1.2.1.11 pingCtlMaxRows
1.3.6.1.2.1.80.1.2.1.12 pingCtlStorageType
1.3.6.1.2.1.80.1.2.1.13 pingCtlTrapGeneration
1.3.6.1.2.1.80.1.2.1.14 pingCtlTrapProbeFailureFilter
1.3.6.1.2.1.80.1.2.1.15 pingCtlTrapTestFailureFilter
1.3.6.1.2.1.80.1.2.1.16 pingCtlType
1.3.6.1.2.1.80.1.2.1.17 pingCtlDescr
1.3.6.1.2.1.80.1.2.1.18 pingCtlSourceAddressType
1.3.6.1.2.1.80.1.2.1.19 pingCtlSourceAddress
1.3.6.1.2.1.80.1.2.1.20 pingCtlIfIndex
1.3.6.1.2.1.80.1.2.1.21 pingCtlByPassRouteTable
1.3.6.1.2.1.80.1.2.1.22 pingCtlDSField
1.3.6.1.2.1.80.1.2.1.23 pingCtlRowStatus
接着我们来看一个实例,先看SNMP SET的情况:
snmpset -v 2c -c private 10.153.107.98 DISMAN-PING-MIB::pingCtlRowStatus.1.97.1.97 i 4
黄色部分为其对应的MIB OID,
红色部分为其Set的实例索引
其索引含义:
1.97.1.97
这个1指的是后面字符串的长度, 97指的是ASCII码。
pingCtlOwnerIndex 和 pingCtlTestName 中字符的要求:
1、可见字符,即ASCII码在: 32 到 126 之间
2、不能为‘?’,即ASCII不能为 63
3、不能为‘-’,即ASCII不能为 45
另外,系统会自动把大写转成小写,比如实例1.34.1.66 set成功,再去walk或者get这个索引的时候,实际索引就变为1.34.1.98,66和98分别是B和b的ASCII码。理解这个规则再回头看我们遇到的问题,就会明白原因了:
这个的原因主要在于客户做SET的时候,这个实例索引是
1.34.1.66
66对应大写B,实际上系统内部进行了转换,会把这个大写的B转换成小写b,这个隐含的转换导致出现了SET和GET的索引不一致的情况。
这样,实际上我们所SET的实例索引对于系统而言是1.34.1.98,因此当我们仍然使用1.34.1.66去GET实例值的时候就报下面的错了,
No Such Instance currently exists at this OID
因为系统根本找不到这个1.34.1.66的实例索引OID。
实际上,这个时候我们应该采用1.34.1.98这个索引去GET MIB值。
四、 解决方法:
采用系统转换后的实际的MIB实例索引1.34.1.98去Get对应的OID。这个案例主要在于要去了解系统对这个Rping MIB的实例索引的隐含的大小写转换的细节,在遇到类似问题时,采用正确的OID读取节点。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作