推广 热搜: 电机  PLC  变频器  服务机器人  培训  变送器  危化品安全,爆炸  西门子PLC  触摸屏  阀门 

三层以太网交换机SNMP代理软件的设计与实现

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:29    评论:0    
摘 要:本文对简单网络管理模型做了介绍,并在此基础上重点分析了嵌入式SNMP Agent软件结构。文中讨论的三层以太网交换机SNMP Agent开发流程对于开发路由器等其它网络产品SNMP Agent同样具有参考价值。

关键词:网络管理 SNMP MIB 嵌入式Agent

Abstract: This Paper introduces the model of Simple Network Management Protocol (SNMP), based on which analyzes the structure of embedded SNMP Agent. The development procedure of SNMP Agent that discussed in this paper is also valuable to which will develop the SNMP Agent on other Network product such as router.

Keywords: Network Management, SNMP, MIB,embedded Agent

1 基于SNMP的网络管理

  网络设备的复杂化、异构化使得网络管理不可或缺。目前存在:公共管理信息服务/公共管理信息协议(CMIS/CMIP)、局域网个人管理协议(LMMP)、简单网络管理协议(SNMP)等几种标准的网络管理协议。简单网络管理协议(SNMP,Simple Network Management Protocol)以下简称SNMP,由于其简单与实用性,已经成为TCP/IP网络事实上的管理标准。现在所提的SNMP已经不仅仅是指一种管理协议,而是一种网络管理体系结构。

  SNMP遵循标准的Client/Server结构,它的管理模型包括四个主要元素,即管理者(Manager),代理(Agent),管理信息库(MIB,Management Information Base)以及管理协议SNMP。SNMP网络管理模型如图1所示。


图1 SNMP网络管理模型

  Manager是实施网络管理的处理实体,它定期查询Agent收集到的相关信息,实现对网络中各种资源的监测;并负责发出网络管理操作的各种指令,完成各种网络管理功能。在模型中起到Client的作用。

  Agent定期收集和维护本地管理信息,响应Manager的命令或操作请求。另外,Agent也可以将自身系统中的发生的事件主动通知给Manager。可见,Agent在模型中担任Server的角色。

  MIB是被管对象的抽象集合,它规定了被管理设备须保存的数据项目和数据类型,以及每个数据项目所允许的操作等。Manager可通过SNMP协议对MIB进行操作,实现对被管理设备的监视和控制。

  SNMP协议提供了Manager和Agent之间交换管理信息的方法,信息按照SNMP消息的形式进行信息交换。SNMP每一个消息包括一个代表SNMP版本的版本号,一个用于消息认证的共同体名,以及5种中的一种协议数据单元(PDU), 5种PDU对应如下5种SNMP协议报文的操作。

  ž GetRequest:Manager用来从Agent取得相关变量的值;

  ž GetNextRequest:Manager用来从Agent取得相关变量的下一个变量的值;

  ž SetRequest:Manager用来设置Agent上的相关变量的值;

  ž GetResponse:Agent对Manager发送的应答信息;

  ž Trap:Agent在满足一定的触发条件时,向Manager报告异常事件。

  Manager通常在工作站或高性能PC实现,提供人机接口。Agent一般嵌入在被管理设备内部提供标准SNMP接口。随着微处理器技术、存储器技术,以及嵌入式操作系统的飞速发展,使得在交换机上嵌入Agent方便可行。

  在笔者为总参通信部(十五项目)开发的三层加固以太网交换机(以下简称以太网交换机)网管系统中,实现了嵌入式 Agent。下面结合该系统,说明嵌入式Agent的设计与实现。

2 嵌入式 Agent系统结构模型

  加固以太网交换机对外提供80个10/100M以太网接口、10个千兆光纤接口、2个SDSL RJ11接口。该交换机系统的交换结构采用交叉开关型,这样交换机硬件主要由交叉开关、交换芯片、CPU模块及SDSL模块四个部分组成,如图2所示。交叉开关采用Marvell公司的GT48304、三层10/100M以太网交换芯片和三层千兆交换芯片分别采用Marvell公司的GT48510和GT48520、 CPU采用Motorola公司的MPC8260,配置512M RAM、SDSL模块芯片组采用GlobeSpan公司的OrionTM芯片组。

  加固以太网交换机采用了美国WindRiver公司的VxWorks实时操作系统,SNMP Agent的开发采用了该公司与VxWorks高度集成的WindNet开发工具。SNMP Agent 位于系统的CPU模块上,实现交换模块和SDSL模块的统一管理,并通过系统以太网接口连接外部网管工作站Manager。


图2 交换机硬件系统结构及Agent系统结构模型

3 定义和扩充MIB

  IETF 在RFC1155 规定了SNMP MIB 能够使用的数据类型及如何描述和命名MIB中的管理对象类。SNMP MIB是围绕管理对象进行组织的,每个对象从本质上讲是代表被管设备某一特性的变量,RFC1155 规定SNMP MIB用ASN.1来命名所有的管理对象。ASN.1定义了一个树状的名字空间,每一对象的名字都反映了该对象在这一树中的位置,对应于树中的一个叶子对象。

  IETF在RFC 1213 定义了标准MIB-II。利用MIB-II,网络管理设备可以方便地获知被管理设备的进出、口流量,但不容易得到整个局域网的流量,也无法对日常通信量进行历史分析。RMON MIB的出现解决了该问题,IETF在RFC 1271 定义了RMON MIB 。RMON MIB由一组统计数据、分析数据和诊断数据构成。在不改变SNMP协议的条件下,扩充了管理信息库MIB-II,增强了网络管理的功能。根据加固交换机的实际监视情况,我们有选择地实现了RMON MIB中如下几个组:

  (1) 统计组(statistics): 维护Agent监视的每一子网的基本使用和错误统计。

  (2) 历史组(history): 记录从统计组可得到的信息的周期性统计样本。

  (3) 警报组(alarm): 允许网管工作站人员为RMON Agent记录的任何计数或整数设置采样间隔和报警阈值。

  (4) 主机组(host): 包含关于连接到子网上的主机的各种流量的计数。

  (5) 事件组(event): 一个关于由RMON Agent产生的所有事件的表。

  对于加固以太网交换机MIB的构建除了尽量支持标准的MIB-II、RMON MIB外,根据交换机软硬件所能提供的网络管理能力,还创建了私有的MIB库。私有MIB库由以下几个组构成:

  (1) 系统信息组(SysInfo): 系统信息组主要描述交换机全局的只读寄存器信息。

  (2) 系统配置组(Config): 系统配置组主要描述交换机全局可读写的寄存器信息。

  (3) 模块组(Module): 描述每个交换模块的相关寄存器信息。

  (4) 端口组(Port): 描述每个交换端口的相关寄存器信息。

  (5) 虚拟局域网组(VLAN): 虚拟局域网组描述有关虚拟局域网的设置信息。

  以下以系统信息组(SysInfo),来说明MIB库的构建情况。系统信息组(SysInfo),主要包含以下对象:

  1) InfoBoardRevision:交换机主背板修订版本。

  2) InfoPeakBufferUsed:交换机中缓存的大小。

  3) InfoAddrCapacity:最多支持的MAC地址。

  4) InfoSelfTestFailed:系统自检信息。

  5) InfoLedNumber:交换机LED 指示灯数量。

  6) InfoVisualIndicatorMode:LED指示灯显示模式。

  将确定的管理对象用ASN.1进行描述与组织,形成MIB。由于MIB文件是用ASN.1编写的ASCII文本文件,需要“翻译”成C/C++的数据结构才能用程序实现。本文采用了WindNet SNMP提供的MIB Complier工具,将用ASN.1描述的MIB文件编译为C语言格式源代码。

4 嵌入式 Agent软件的设计与实现

  4.1嵌入式 Agent的软件结构

  嵌入式Agent软件一般包括以下5个模块,如图3所示。


图3 嵌入式Agent软件结构

  (1) 初始化模块

  初始化模块主要负责传输接口初始化、配置数据存取、以及MIB的初始化。VxWorks操作系统启动成功后,Agent软件开始运行,并启动初始化模块,初始化模块首先初始化MIB虚拟树,以供处理时查询;其次初始化UDP接口,打开应用层与传输层的接口;最后读取配置文件的数据,并根据这些数据设置代理进程和MIB的初始化变量。

  (2) Socket通信模块

  通信功能是Agent的重要功能之一.它实现SNMP Agent与SNMP Manager之间的两个方向的通信。SNMP Manager和SNMP Agent之间通过SNMP简单网络管理协议来实现通信,即SNMP over TCP/IP。为了确保SNMP协议的简单性,一般选用UDP作为其传输层协议,每个SNMP报文必须能够在单个UDP数据报中传送。网络管理站通过协议交换SNMP报文来实现通信。除Trap-PDU使用端口162外,其它SNMP报文使用端口161进行通信。

  (3) Trap处理模块

  当Agent检测到某个特定的事件,便调用Trap处理模块构造一个Trap报文。Trap处理模块对内部格式的Trap报文信息进行ASN.1格式编码。通过套接字接口将SNMP Trap报文交给Socket通信处理模块然后发送给网络管理站。一般来说,交换机启动后,会向管理站发送一个系统启动的Trap报文,通知网络管理站代理已经启动。

  (4) PDU处理模块

  初始化模块初始化MIB库后,启动PDU处理模块,以备接收SNMP报文和构造SNMP响应报文。PDU处理模块按以下顺序处理SNMP报文。

  1) 语法分析并转换成内部格式

  因为ASN.1格式允许使用变长字段,因此SNMP报文的字段不可能直接映射到代理进程代码的固定内部数据结构中。对SNMP报文进行语法分析,并将其转换成一个可用的内部数据结构,代理进程代码可以对该数据结构进行处理。

  2) 鉴别和授权

  根据SNMP报文的共同体字段对其进行身份认证,若认证失败则将报文丢弃,认证通过交给MIB管理例程模块进行处理。

  3) 构建响应报文

  在命令执行完以后,根据命令的执行情况构建响应报文,并将其转化为ASN.1格式,交给Socket通信模块传输到网络管理站。

  (5) MIB管理例程模块

  该模块利用某些查找算法查找各MIB对象并实现对各组MIB对象的Get和Set操作。在以太网交换机Agent软件设计过程中我们根据各个MIB变量的实际情况,将MIB库中的对象分为两种,实时性对象与非实时性对象。对于实时性对象,每次当查询到该对象,便通过调用字符设备驱动程序读取或设置交换机硬件上的相关信息;对于非实时性对象,在内存中保持一个静态变量值,该静态值在代理进程初始化时进行赋初值。若只读取该对象值则不需要读取硬件信息,只返回此静态变量值就够了。若设置该对象,即对它进行写操作,必须通过调用字符设备驱动程序设置硬件上的相关信息,同时相应的改变该静态变量值,以备以后读取时所用。

  4.2 SNMP Agent软件开发及测试流程

  在VxWorks实时系统下利用Tornado 综合开发工具和WindNet网管开发工具进行交换机SNMP Agent的开发和测试,可以分以下几个步骤进行。

  (1) 为预先定义好的MIB对象编写管理操作例程;

  (2) 编译生成Agent目标代码,启动目标机;

  (3) 根据目标机具体芯片(MPC8260)配置宿主机环境;

  (4) 配置目标服务器,利用CrossWind图形化调试工具进行应用程序调试;

  (5) 调试通过后,利用HP公司的SNMP++ Browser网络管理软件对交换机SNMP Agent进行测试,通过它对MIB变量进行查询、遍历、设置等操作。

5 结束语

  由于SNMP的简单性与实用性,已经成为TCP/IP网络事实上的管理标准。目前越来越多的网络产品直接提供了SNMP接口。笔者结合三层加固以太网交换机网络管理系统,在VxWorks 嵌入式操作系统平台上,利用WindNet SNMP软件包实现了完整的SNMP Agent。它支持MIB-II、私有MIB、RMON MIB,为网络管理站提供了交换机内部丰富的原始管理数据,该交换机现己提交总参通信部进行军队试用。本加固以太网交换机嵌入式Agent的开发和测试方法对于开发路由器、DSL Modem等其它网络产品SNMP Agent同样具有参考价值。

参考文献

  1. IETF RFC 1157, Simple Network Management Protocol (SNMP),1990.1

  2. IETF RFC 1905, Protocol Operations for Version 2 of the Simple Network Management Protocol,1996.1

  3. Vxworks_net_programmers_guide, WindRiver System,1999.5

  4. GT-48310 Datasheet. Galileo Technology, 1998

  5. 芩贤道,安常青. 网络管理协议及应用开发. 清华大学出版社,1998.7

  6. 路晓村,徐宏,王泰东 等译.嵌入式系统TCP/IP应用层协议,2003.4

 
打赏
 
更多>同类环保知识
0相关评论

推荐图文
推荐环保知识
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON