本节书摘来自异步社区《精通SNMP》一书中的第2章,第2.5节,作者: 武孟军 更多章节内容可以访问云栖社区“异步社区”公众号查看。
对象标识符类型是ASN.1的基本数据类型,用来唯一标识一个信息对象是SNMP中使用最多的一种数据类型。这种类型的取值必须遵循特定的规则。
很多人对这种类型感到迷惑。其实,ASN.1只不过是将用来标识信息对象的符号做了特定的定义而已。这种类型的实例(值),可以用来标识特定的信息实体。当它用来标识一个可变值时,作用类似于高级程序语言中的变量名。
这里所说的信息实体可以是一种抽象语法定义的数据类型、一个ASN.1模块或其他任意需要唯一识别的和通信领域有关的信息实体,甚至可以是一份RFC文档。
Internet地址授权委员会(Internet Assigned Numbers Authority,IANA)负责对象标识符的统一管理,为提出申请的机构(或个人)分配可用的标识符,以保证它的全球唯一性。
所有已经分配的对象标识符的实例(值)组成一个OID树,结构类似于Internet的域名系统,每个实例就是树中的一个节点。最上面的节点被称为根节点,边缘节点被称为叶节点,每个节点有一个名字和一个非负的整数(表示节点本身在同级节点所处的位置),如图2-2所示。
在整个OID树中,只有叶节点真正表示信息实体,其他的节点被称为辅助节点(place holder)。辅助节点组成了OID树的枝干,使为数众多的叶节点可以附着在其上。
SNMP使用对象标识符标识MIB中定义的每一个被管理对象。图2-1中的节点mib-2就是标准MIB中被管理对象的标识符所在分支,私有MIB则使用private分支下的对象标识符标识被管理对象。
MIB-II的对象标识符为:1 3 6 1 2 1(根节点可以省略)。
图2-2中private分支下的所有标识符,专门分配给商业组织和个人使用。例如,某个公司申请到了private分支下的888分支,节点名字为abc,那么这个分配过程可以用下面的赋值语句表示:
abc OBJECT IDENTIFIER ::= {1 3 6 1 4 888}在此分支下,该公司可以自行做主分配标识符。例如,在abc节点下分配两个节点hardwar和esoftware:
hardware OBJECT IDENTIFIER ::= {1 3 6 1 4 888 1} software OBJECT IDENTIFIER ::= {1 3 6 1 4 888 2} 或 hardware OBJECT IDENTIFIER ::= {abc 1} software OBJECT IDENTIFIER ::= {abc 2}经过上面的步骤后,private分支变化如图2-3所示。
https://yqfile.alicdn.com/4f47d337b86a186332ab59899a1f8824b2374a79.png" >由于ASN.1并没有对标识符中的数字大小进行限制,因此理论上说,对象标识符资源是无限的。
相关资源:敏捷开发V1.0.pptx