SNMP协议OID的使用
SNMP协议OID的使用
SNMP(Simple Network Management Protocol简单网络管理)协议 是现在网络管理系统(NMS)监控网络设备状态的协议,是现在网管事实上的标准,如果网络设备不支持SNMP协议的话,那就好花费大量的精力来说服NMS厂商来支持你的设备,这样得不偿失。
SNMP支持的操作和操作方法很简单的(当然协议本身还是不简单的)。
SNMP的操作:GET ,GETNEXT, SET, TRAP
SNMP将被管理对象用一个树来组织,被管理对象用OID表示(看不懂的童鞋先去看看Google百度一下snmp),通过snmp操作oid即可得到网络管理的数据。
oid长这样“.1.3.6.1.2.1.1.2.0” 子树 1 -> 3 -> 6 -> 1 -> 2 -> 1 -> 1 -> 2
oid的设计,在开发snmp agent中合理的设计OID让它发挥强大的查询功能。
(1)最简单的查找对象值 GET .1.3.6.1.4.1.123.2.1.2 从根节点到叶子节点
(2)查找表格中对象值 [表格的表现力是非常强大的,想想数据库就是一张一张的表格],snmp协议当然要用表格来组织如此多的被管理的数据,而且通过GET GETNEXT oid可以完成各种形式完成对表格数据车查询,(当然一次只能查到一个被管理对象的数据,所以比较简单)。
通过二维表格定位查询 GET .1.3.6.1.4.1.123.3.column-index.row-index 倒数第二位是列名的索引,最后一位是行索引
通过某个字段索引比如ID号,可以像GET .1.3.6.1.4.1.123.3.column-index.id这样获取
比如IP地址,可以像 GET .1.3.6.1.4.1.123.3.column-index.192.168.1.254这样获取
比如 名称字符串,可以像这样GET .1.3.6.1.4.1.123.3.column-index.length.aa.aa. ... .aa 其中length为名称字符串的长度,.aa.aa. ... .aa为名称的ascii码。
通过支持GETNEXT .1.3.6.1.4.1.123.3.column-index.0.192.168.1.254 得到值并返回OID .1.3.6.1.4.1.123.3.column-index.index.192.168.1.254 如果没有值就返回 .1.3.6.1.4.1.123.3.column-index.first-row-index(表格第一行的值和oid),常用于在表中遍历ip地址为192.168.1.254的所有的字段值。
(3) 多个查询关键字组合
关键字的类型 :int32:直接使用即可,如123
ip地址:也可以直接使用,就是四个int32的组合而已,如192.168.1.254
字符串:使用字符串个数+字符串的ascii码。 aa 表示为“2.97.97”
查询的规则要制定好,顺序不能变,字符串的最好放在最后一个。如我要查询ip为192.168.1.254上用户名为aa的用户的在线时间可以这样".1.3.6.1.4.1.123.3.在线时间.192.168.1.254.2.97.97"
还可以定义一下关键词的类型,比如1=int32,2=ip地址,3=字符串,可以这样 “".1.3.6.1.4.1.123.3.在线时间.3.2.97.97.2.192.168.1.254。
推荐阅读
-
Objective-C中类和方法的定义以及协议的使用
-
xcode升级后ios9.0不能使用http协议的版本的解决方法介绍
-
apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)
-
iOS中使用schema协议调用APP和使用iframe打开APP的例子分析
-
设置Xlight FTP服务器使用SSH2/SFTP协议的步骤
-
使用IPython下的Net-SNMP来管理类UNIX系统的教程
-
使用AWS的ELB服务时为Nginx启用代理协议的步骤讲解
-
Python使用POP3和SMTP协议收发邮件的示例代码
-
使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
-
golang中使用proto3协议导致的空值字段不显示的问题处理方案