APP下载

基于SNMP的嵌入式Proxy代理的设计与实现

2011-07-26马素刚李宥谋

自动化仪表 2011年11期
关键词:管理站串口专用

马素刚 李宥谋

(西安邮电学院计算机学院,陕西 西安 710121)

0 引言

随着嵌入式技术与网络通信技术的发展,嵌入式设备不断推陈出新,对设备的网络化也提出了更高的要求。然而,许多早期的嵌入式设备没有网络接口,无法通过网络实现远程监控。对嵌入式设备的管理与维护,必须是操作人员在工作现场操作设备面板或携带笔记本电脑连接专用接口(如 RS-232、I2C、SPI、GPIB等)进行调试。这种方式无法满足设备调试的实时性要求,也浪费了人力和财力。

简单网络管理协议(simple network management protocol,SNMP)是目前TCP/IP网络中应用较为广泛的网络管理协议[1],使用SNMP要求通信双方都支持UDP和IP协议。由于许多早期的嵌入式设备不支持TCP/IP协议,为实现对这些非标准设备的管理,可以采用委托(Proxy)代理[2]。Proxy代理将SNMP管理站发出的SNMP报文转换为设备特定的消息格式,从而使管理者能够管理多种类型的设备。

本文阐述了Proxy代理的软硬件设计方法,以及如何通过串口连接将委托代理应用于微波传输设备的远程管理。

1 网管系统总体结构

SNMP采用代理/管理站模型[3],其系统总体结构如图1所示。Proxy代理使得非标准SNMP设备具有网络管理功能。

图1 系统总体结构Fig.1 System architecture

1.1 系统组成

整个系统由管理站(network management station,NMS)、Internet、Proxy代理和被管设备组成。管理站运行网络管理软件(如AT-SNMPc、HP OpenView等),通过Internet与Proxy代理连接。Proxy代理通过专用接口与被管设备连接,发送查询、控制命令,同时接收被管设备主动发送的告警信息。被管设备(如一些常用的仪器仪表、传输设备等)运行自身的监测程序,负责数据的采集传输,同时还需要提供专用调试接口。

1.2 工作原理

管理站对被管设备的监控主要包括查询设备信息、设置设备参数以及处理告警信息。

1.2.1 设备信息的查询

查询设备信息按以下步骤进行。

①管理站上运行的网络管理软件,通过SNMP协议,向Proxy代理发送查询信息的Get请求,运行于Proxy代理中的Agent进程接收查询请求。

②Agent进程读取Proxy代理中保存被管设备信息的文件,并通过SNMP协议向管理站作出回应。为保证Proxy代理保存信息的实时性,被管设备定期(如1 s)通过专用接口(如RS-232)向Proxy代理发送自身的各种参数信息。

1.2.2 设备参数的设置

设置设备参数的流程如下。

①管理站通过SNMP协议,向Proxy代理发送设置参数的Set请求,运行于Proxy代理中的Agent进程接收设置请求。

②Proxy代理收到设置请求后,采用专用通信协议(如串口通信协议),把设置请求传送到被管设备。被管设备完成设置操作后,对Proxy代理作出回应。

③Proxy代理向管理站回应完成设置信息。

1.2.3 告警信息的处理

对于被管设备中发生的告警,需要主动向管理站发送告警信息,工作流程如下。

①运行于被管设备上的监测程序发现有告警产生时,通过专用接口把告警信息主动发送到Proxy代理。

②运行于Proxy代理的Agent进程发现有告警产生时,及时通过SNMP Trap报文把告警信息发送至管理站。

2 软硬件设计

Proxy代理负责将管理站发送的Get、Set请求转换为专用命令,然后发送至被管设备;同时把被管设备主动发送的告警信息转换为Trap报文并发送至管理站。Proxy代理采用S3C2410 CPU和嵌入式Linux操作系统,运行SNMP Agent程序以及与被管设备相关的专用通信程序。

2.1 硬件结构

Proxy代理采用韩国Samsung公司的S3C2410高性能ARM处理器[4],运行频率可达266 MHz。S3C2410处理器基于ARM920T内核(16/32 bit RISC CPU),集成了大量的功能单元,主要包括内存管理单元MMU、独立的16 kB 指令 Cache、16 kB 数据 Cache、4通道 DMA、3通道UART、2通道SPI、PLL数字锁相环等。Proxy代理还包括存储器(64 MB SDRAM、64 MB Nand Flash)、CS8900以太网控制器、2个输出串口、SPI接口、I2C接口和JTAG调试接口等元件。

Proxy代理的硬件结构如图2所示。

图2 Proxy代理的硬件结构Fig.2 Hardware architecture of Proxy Agent

2.2 SNMP Agent设计

在Proxy代理硬件平台上成功移植了基于2.6内核的嵌入式Linux操作系统[5],并使用C语言编写了SNMP Agent程序。

SNMP Agent是在net-snmp软件包的基础上,通过二次开发来实现的[6]。扩展后的Agent除了可以响应管理站发来的Get、Set请求外,还可以把专用通信程序接收的告警信息转换为Trap报文,并发送至管理站。Agent设计主要完成管理信息库(management information base,MIB)设计和Agent程序扩展。

2.2.1 MIB 库的设计

通过对实际设备功能及应用场合的分析[7],从配置管理、性能管理和故障管理等方面增加管理对象。扩展的MIB库对象属于私有MIB变量,它们在iso.org.dod.internet.private.enterprises 子树下加以定义。MIB库采用OSI的抽象语法标志ASN.1编写。

2.2.2 Agent程序的扩展

Agent程序主要包含 Init、Get、Set和 Notification 这4个子模块。

①Init模块:Init模块通过函数init_NMS()完成代理的初始化功能,即注册扩展的MIB、初始化自定义变量和设置定时器等。

② Get模块:Get(读)操作是SNMP的基本操作之一,用于对被管设备信息的查询。Get模块通过函数var_NMS()实现Get功能。该函数的结构比较简单,主要内容即为一个switch-case结构,每一个分支处理一个管理对象。

③Set模块:Set(写)操作用于设置被管设备的参数信息,通过名称类似“write_****”的写函数实现。对于不同的管理对象,分别定义写函数用于设置不同的参数。对被管对象的设置操作可以分配到6个不同阶段完成。各阶段功能如表1所示。

表1 各阶段功能表Tab.1 Functions of each stages

④Notification模块:Notification模块通过发送Trap报文,处理告警信息。Agent程序定时(如1 μs)查看与专用通信程序共享的管道,如果检测到来自被管设备的告警信息,则立即调用函数send_v2trap(),并通过Trap报文向管理站发送告警信息。

3 Proxy代理的应用

早期的微波通信设备没有网络接口,使用Proxy代理能够实现对它的远程管理[8]。微波通信设备和Proxy代理之间通过RS-232连接,采用专用串口通信协议[9]。

3.1 串口通信协议

串口通信采用异步通信方式,数据传输率为19200 bit/s。串口数据帧格式如图3所示。

图3 串口数据帧格式Fig.3 Frame format for serial port data

串口数据帧主要包含以下字段。

① 起始位:取值为0xcc或0xc3,其中0xcc表示设置信息,0xc3表示响应信息。

②长度位:表示帧中命令位和数据位长度之和。

③命令位:用来标志帧的功能。

④数据位:用于标志设置信息或响应信息。

⑤校验和:将命令位、数据位按字节相加。

⑥ 结束位:表示一帧结束,取值为0xf3。

3.2 移植与测试

交叉编译环境如图4所示[10]。

图4 交叉编译环境Fig.4 Cross-compiling environment

开发人员在宿主机(PC机)上编译生成适合在目标机(Proxy代理)上运行的执行代码,包含Agent程序(snmpd)和串口通信程序(s_port),并通过NFS方式下载到Proxy代理中。

通过对网管系统进行的测试可以看出,Proxy代理实现了预定功能。在管理站使用AT-SNMPc能够对微波通信设备进行有效的监视和控制,从而提高了微波通信网络的服务质量。

4 结束语

本文设计实现的Proxy代理适用于多种接口的非SNMP设备,在不改变原有设备软硬件结构的基础上,增强了被管设备的可管理性能,有利于设备的快速升级。Proxy代理支持标准 SNMP 协议[11-12],使得非SNMP标准设备能够加入网管软件中统一管理。Proxy代理在保护用户已有投资的基础上,拓宽了用户对自身设备的管理能力。然而,由于SNMPv2协议支持的安全措施有限,带来了一定的安全隐患,整个系统的安全性有待进一步提高。

[1]雷震甲.计算机网络管理[M].西安:西安电子科技大学出版社,2006.

[2]Chavan S S,Madanagopal R.Generic SNMP proxy agent framework for management of heterogeneous network elements[C]//Bangalore:Communication Systems and Networks and Workshops,2009:1-6.

[3]Zeng Wenxian,Wang Yue.Design and implementation of server monitoring system based on SNMP[C]//Hainan Island:International Joint Conference on Artificial Intelligence,2009:680 -682.

[4]李敏,何平.基于ARM920T的薄膜厚度在线测量系统设计[J].自动化仪表,2009,30(8):61 -63.

[5]张兰云,张高伟.基于ARM9和Linux的GPS定位数据的采集与管理[J].自动化仪表,2008,29(10):14 -17.

[6]马素刚.微波中继站中嵌入式网管Agent实现[J].西安邮电学院学报,2009,14(1):120 -124.

[7]罗毅,姚桂玲.基于SNMP的MIB构结树高效算法研究[J].计算机工程与设计,2010,31(15):3386 -3389.

[8]刘钊远,王亚刚,许振文.基于SNMP的数字微波网管系统设计与实现[J].通信技术,2009,42(9):139 -141.

[9]毕国玲,陈涛,王建立,等.多功能嵌入式远程信息采集与监控系统[J].微电子学与计算机,2010,27(10):174 -177.

[10]马素刚,王力,许振文.基于嵌入式Linux的Web服务器的设计与实现[J].计算机与数字工程,2010,38(9):183 -186.

[11]蔡伟鸿,舒兆港,刘震,等.基于SNMP协议的以太网拓扑自动发现算法研究[J].计算机工程与应用,2005,41(14):156-157.

[12]陈雷,董博,王雪,等.基于SNMP协议的全局网络流量分析系统的设计与实现[J].大连理工大学学报:工学版,2005(S1):69-71.

猜你喜欢

管理站串口专用
体能测试专用鞋
体能测试专用鞋
体能测试专用鞋
浅谈AB PLC串口跟RFID传感器的通讯应用
宿迁市救助管理站:小团队如何撬动大社会
大连市救助管理站:多个“第一”背后的秘密
爱它就给它专用的设备
托起救助之责 谱写青春赞歌——记河南省安阳市救助管理站站长许帅
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索