基于SNMP的MIB库扩展
2019-03-27
(沈阳理工大学 辽宁 沈阳 110159)
一、引言
简单网络管理协议SNMP(Simple Network Management Protocol)是由互联网工程任务组为进行网络管理制定的一组协议。具有简单容易实现等优点。目前它以其自身的优越性已经成为网络管理的协议标准。SNMP协议主要由管理站和代理组成,其中代理的实现相比管理站较为复杂。通过使用SNMP协议,管理站可以使用远程的方式来管理所有支持SNMP的网络设施,例如监听网络的变化、修改交换机和路由器的配置、接收网络发出的警告等一系列功能,由于其自身的众多优点,该协议取得了很大的发展。
SNMP的代理使用的对象标识符(OID)来对被管理对象进行唯一标识。一个OID是一个key-value型数据,SNMP就是通过操作OID来操作网络管理的数据。SNMP的OID是可以进行读写操作的。虽然不经常发生把信息写入SNMP设备的情况,但是它可以管理应用程序来控制设备,例如可以用于交换机的可管理图形用户界面。SNMP通过一个独特的认证来允许管理员通过公共名来对OID进行读写操作。大部分的网络设施使用“public”来作为自己的公共名。SNMP协议使用UDP协议来进行通信,大部分情况使用端口号使用161来进行通信,少数情况下也使用161作为通信端口。
网络管理信息库,简称MIB库(Management Information Base)是进行网络管理的重要组成之一。为了将不同产品、不同平台的网络设施进行更加有效的管理,MIB库是非常使用的方式。MIB库是网络管理数据的标准,这个标准包括很多项目,例如定义了了网络代理设备需要的数据信息,数据类型,和允许在每个数据信息中的很多操作。通过对这些数据信息进行读取,写入,保存和访问,这样就会获得网关中包含的所有信息。之后通过对这些得到的信息来进行整理和分析就可以实现基本的网络管理功能。正因为如此,进行MIB库的访问成为实现网络管理的重中之重。
二、基于net-snmp的MIBs库扩展实现
整个MIB库扩展实现是基于优麒麟的Linux平台。
(1)安装snmp客户端以及服务器端和mib库依赖,修改snmpd.conf文件配置主代理属性。
(2)扩展一个子代理,让snmpd以主代理的模式运行,对于snmpd我们只要让它启动就可以,不需要任何的更改和配置,把子代理编译生成的程序运行起来就可以扩展自定义的MIB库。
/*
——私有MIB库配置格式:
——开始
TEST-MIB DEFINITIONS::= BEGIN
——引入部分
IMPORTS
enterprises
FROM RFC1155-SMI
Integer32,OBJECT-TYPE
FROM SNMPv2-SMI
DisplayString
FROM SNMPv2-TC
TEXTUAL-CONVENTION
FROM SNMPv2-TC;——引用结束,用分号
TESTMIB OBJECT IDENTIFIER::= {enterprises 17322} ——OID
Test1 OBJECT IDENTIFIER::= {TESTMIB 1}
Test2 OBJECT IDENTIFIER::= {TESTMIB 2}
Test3 OBJECT IDENTIFIER::= {TESTMIB 3}
Test1 OBJECT-TYPE ——对象名称
SYNTAX DisplayString ——类型
MAX-ACCESS read-only ——访问方式
STATUS current ——状态
DESCRIPTION “this is the testMib1” ——备注
::= {TESTMIB 1} ——父节点
Test2 OBJECT-TYPE ——对象名称
SYNTAX DisplayString ——类型
MAX-ACCESS read-only ——访问方式
STATUS current ——状态
DESCRIPTION “this is the testMib2” ——备注
::= {TESTMIB 2} ——父节点
Test3 OBJECT-TYPE ——对象名称
SYNTAX DisplayString ——类型
MAX-ACCESS read-only ——访问方式
STATUS current ——状态
DESCRIPTION “this is the testMib3” ——备注
::={TESTMIB 3} ——父节点
——结束定义
END
*/
(3)修改snmp.conf文件配置环境变量,然后测试是否生成了树和叶子节点,将私有mib库编译成C语言的头文件和源文件,配置源文件的语法结构并自定义其中的内容,将其编译为subagent程序
(4)最后使用snmpget命令来测试节点的值。
三、结论
经过测试,运行后会成功出现数据树形结构,SNMP本身具有很好的扩展性能,采用本文中的MIB库扩展方法可以更好的提高网络管理的效率。