案卷号 日期
2014-07-03 SNMP AGENT设计 软件详细设计说明书
作者:
完成日期:2014年07月03日 签收人: 签收日期:
修改情况记录:
版本号 修改批准人 修改人 安装日期 签收人
目录
- .可修编 .
- -
1 引言1
1.1 编写目的1 1.2 背景1 1.3 定义1 1.4 参考资料1
2 程序系统的结构2 3 系统设计说明3
3.1 系统描述3 3.2 功能3 3.3 性能3 3.4 输入项4 3.5 输出项4 3.6 算法8 3.7 流程逻辑9 3.8 接口11 3.9 存储分配11 3.10 注释设计11 3.11 限制条件11 3.12 测试计划12 3.13 尚未解决的问题12
- .可修编 .
- -
1 引言 1.1 编写目的
Agent软件需求说明书为项目后续的系统测试计划,概要设计提供依据,为设计人员,编码测试人员做相关参考。
该说明书供下列对象查阅:系统设计人员;软件开发人员;软件测试人员;系统维护人员等。
1.2 背景
软件名称:网络管理平台代理Agent; 本项目的任务提出者:建老师 开发者:闫阿丹
1.3 定义
缩写 Snmp MIB OID OMID 注释 Simple Network Management Protocol Manger information Base Object Identifier Object Monitor Identifier 描述 简单网络管理协议 管理信息数据库 对象标识符 监控对象标识符 1.4 参考资料
1)参考标准的snmp协议;
2)SNMP,MIB:RFC1155,RFC1157,RFC1213;
- .可修编 .
- -
2 程序系统的结构
软件各模块关系图:
Agent部结构说明:
Snmp Manager 设备侧 协议的转换和转MIB加载和管理 Agent 和设备之间的通信 设备侧 Agent部结构图说明:
1) Agent和Snmp Manager之间通过UDP连接,执行snmp协议;端口(161,162) 2) Agent和设备侧之间通过TCP\\IP连接; 通信消息接口包括: (1) (2) (3) (4)
查询请求消息:Get-Request; 查询响应消息:Get-Response; 设置请求消息:Set-Request; 设置响应消息:Set-Response;
- .可修编 .
- -
(5)
集群查询请求消息:Get-Next-Request;
3系统设计说明 3.1系统描述
SNMP是用来规定Manager和Agent之间是如何传递管理信息的应用层协议。SNMP Agent接受来自SNMP Manager的请求报文后,进行解码,分析,然后从相关模块中得到管理变量的值,生成Response报文,编码返送回SNMP Manager。在有异常告警的情况下,Agent向Manager主动发Trap报文,Manager收到后,进行解码,分析,然后作出相应措施。 为了简化Agent的开发,SNMP规定只有两种操作Get,Set,前者用于从被管设备获取管理信息。后者通过设置变量值来起到配置被管设备的作用。Manager和Agent之间通过发送报文来传递管理信息,系统中规定了五种报文: Get Request报文:用于获取指定管理变量的值。 GetNext Request报文:用于连续获取一组管理变量的值。 GetResponse报文:用于响应请求,返回请求值或错误类型等。 Set Request报文:用于设置指定的管理变量。
Trap报文:用于在紧急情况下由被管设备向NMS主动发信息
3.2 功能
设计网络管理平台代理SNMP AGENT,使程序运行后能与SNMP MANAGER程序正确通信。系统总的来说可以分为五大模块,即初始化模块、通信模块、报文处理模块、Trap处理模块和MIB管理模块。主要实现mib的加载,实现对snmp消息的解析并转换为部消息,实现对对应底层设备的获取和设置,包括对设备信息的读取,设置,及告警消息的上送等功能。
- .可修编 .
- -
3.3 性能
1.静态数值需求可能包括:
1) 由于网络管理平台所管理的设备的属性具体相同的属性,所以不会为Agent下面的每个设备分配一个唯一的OID,采用公共的OID和IP来确定网络管理系统的设备属性的唯一性;
2) 目前设计需求Agent支持连接最大10个monitor的终端,如果超过一个地区的monitor超过10个则另外安装一个Agent支持,并为Agent分配新的AgentID; 3) 支持并行操作的用户数; 4) 处理的文卷和记录数; 5) 表和文卷的大小。 2.动态数值需求可能包括:
欲处理的事务和任务的数量,以及在正常情况下和峰值工作条件下一定时间周期中处理的数据总量。
3.4 输入输出项
1. SNMP连接功能
1)说明:系统启动时首先要建立SNMP通信; 2)输入:读取配置文件:port1:161; port2:162; 3)处理:调用snmp提供的开发包建立连接; 4)输出:无; 2.加载MIB功能
1)描述:Agent对MIB进行加载:Agent模块初始化的时候要对管理的MIB库进行加载到系统中以便实现对设备的管理;
2)输入:无; 3)处理:加载MIB; 4)输出:
a)加载成功,写加载成功日志;
b)加载失败,系统退出,写加载mib失败日志;
- .可修编 .
- -
3.GetRequest查询节点信息请求
1)描述:Snmp Manager通过Agent获取节点信息的GetRequest消息; 2)输入:
a)Agent从161端口读取Snmp Manager发送的snmp的GetRequest消息; b)Monitor输入到Agent的响应消息; 3)处理:
Manager Agent Monitor 1)GetRequest消息 2) 查询请求消息 3) 查询请求响应消息 4)Get Response消息 Getrequest查询信息请求消息图
说明:
1) Agent收到Manager的GetRequest消息;
2) Agent对收到的GetRequest消息进行解析,根据OID查找相应的OMID;根据OMID查找到对应的设备,并组成查询请求消息发送的相应的设备侧,等待设备侧返回响应消息;(Agent同步返回GetResponse消息) 3) Monitor返回查询请求的响应消息给Agent;
4) Agent根据Monitor响应消息返回给Manager响应消息; 4)输出
a)输出到Monitor查询请求消息; b)输出到ManagerGetResponse响应消息;
4. SetRequest设置节点信息请求
1)描述: Snmp Manager通过Agent设置节点信息的SetRequest消息;
- .可修编 .
- -
2)输入:
a)Agent从161端口读取Snmp Manager发送的snmp的SetRequest消息; b)Monitor输入到Agent的响应消息; 3)处理:
Manager 1)SetRequest消息 Agent Monitor 2) 设置请求消息 3) 设置请求响应消息 4)Set Response消息 Setrequest查询信息请求消息图:
说明:
1)Agent收到Manager的SetRequest消息;
2)Agent对收到的SetRequest消息进行解析,根据OID查找相应的OMID;根据OMID查找到对应的设备,并组成设置请求消息发送的相应的设备侧,等待设备侧返回响应消息;(Agent同步返回GetResponse消息) 3)Monitor返回查询请求的响应消息给Agent;
4)Agent根据Monitor响应消息返回给Manager响应消息; 4)输出:
a)输出到Monitor设置请求消息; b)输出到Manager GetResponse响应消息; 5. GetNextRequest集群查询节点信息请求
1)描述: Snmp Manager通过Agent获取节点信息的GetNextRequest消息; 2)输入:
a)Agent从161端口读取Snmp Manager发送的snmp的GetNextRequest消息; b)Monitor输入到Agent的集群信息信息请求响应消息;
- .可修编 .
- -
3) 处理:
Manager Agent Monitor 1)GetNextRequest消息 2) 查询集群信息请求消3) 查询集群信息请求响应消息 4)Get Response消息 GetNextRequest查询信息请求消息图:
说明:
1) Agent收到Manager的GetNextRequest消息;
2)Agent对收到的GetNextRequest消息进行解析,根据OID查找相应的OMID;根据OMID查找到对应的设备,并组成查询请求消息发送的相应的设备侧,等待设备侧返回响应消息;(Agent同步返回GetResponse消息) 3)Monitor返回查询请求的响应消息给Agent;
4)Agent根据Monitor响应消息返回给Manager GetRequest响应消息; 4)输出
a) 输出到Monitor查询请求消息; b) 输出到ManagerGetResponse响应消息; 6. Trap告警上送消息
1)描述:设备侧产生告警后,当告警级别高于现在系统设置的告警级别后要上报到Agent, Agent收到设备侧的告警后要写本地告警日志,并上报Trap消息到Manager; 2) 输入:设备侧发送告警消息到Agent; 3) 处理:
- .可修编 .
- -
Getrequest查询信息请求消息图:
说明:
1)monitor发送告警消息上送到Agent;
2)Agent收到Monitor的告警消息后根据本地消息中的告警级别分析是否上报,告警级别大于本地告警级别时,先写本地告警日志,然后编码Trap消息,否则只写本地告警日志;
3)Agent发送Trap消息到Manager; 4) 输出
a)发送Trap消息到Manager;
b)输出到ManagerGetResponse响应消息;
3.6 算法
在设计软件的过程中用到DES加密算法和MD5哈希函数算法。 DES算法实现加密需要三个步骤:
第一步:变换明文。对给定的64位比特的明文x,首先通过一个置换IP表来重新排列x,从而构造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。
第二步:按照规则迭代。规则为:Li = Ri-1;Ri = Li⊕f(Ri-1,Ki) (i=1,2,3…16)其中符号⊕表示的数学运算是异或,f表示一种置换,由S盒置换构成,Ki是一些由密钥编排函数产生的比特块。
第三步:对L16R16利用IP-1作逆置换,就得到了密文y。 MD5哈希函数算法对于每个明文分组的摘要生成过程如下:
(1)将512位的明文分组划分为16个子明文分组,每个子明文分组为32位。
- .可修编 .
- -
(2)申请4个32位的变量,记为A、B、C、D (3)子明文分组与变量进行第1轮运算。 (4)子明文分组与变量进行第2轮运算。 (5)子明文分组与变量进行第3轮运算。 (6)子明文分组与变量进行第4轮运算。 (7)变量与初始变量进行求和运算。
(8)变量作为下一个明文分组的输入重复进行以上操作。 (9)最后,4个变量里面的数据就是MD5摘要。
3.7 流程逻辑
- .可修编 .
- -
- .可修编 .
- -
3.8 接口
1.用户接口
提供用户使用软件产品时的接口需求。例如,如果系统的用户通过显示终端进行操作,就必须指定如下要求:
a.对屏幕格式的要求;
b.报表或菜单的页面打印格式和容; c.输入输出的相对时间; d.程序功能键的可用性。 2. 软件接口
需要与SNMP Manager同时使用,因此需要有与其连接的接口。SNMP Agent接受来自SNMP Manager的请求报文后,进行解码,分析,然后从相关模块中得到管理变量的值,生成Response报文,编码返送回SNMP Manager。在有异常告警的情况下,Agent向Manager主动发Trap报文,Manager收到后,进行解码,分析,然后作出相应措施。
3.9 存储分配
在other init 对其他接口模块(tcp_mib,ip_mib,ipx_mibetc.)进行初始化,是为存放相对应的表的索引分配存。
3.10 注释设计
a.在模块首部加必要的注释; b.在各分枝点处加注释;
c.对各变量的功能、围、缺省条件等所加注释; d.对使用的逻辑加注释等。
3.11 限制条件
a. 硬件配置的特点(接口数,指令系统等); b. 存储器和辅助存储器的容量。
- .可修编 .
- -
3.12 测试计划
首先对初始化监听进行测试,测试结果应该是成功的;
再进行Get-Request、Get-Next-Request 、Set-Request消息的测试,预期结果应该是可以收到消息并能作出Get-Response应答;
最后测试Trap消息能否发送成功。
3.13 尚未解决的问题
软件设计是没有实现GetBulk和Inform这两个PDU,也就是说是SNMPv1,不是SNMPv2,功能上不是特别强大,性能不是很完善等。
- .可修编 .
因篇幅问题不能全部显示,请点此查看更多更全内容