发表于:2006-11-15 14:30:00
楼主
SNMP即简单网络管理协议。在1998年8月首次定义,很快就在RFC1157中达到正式标准。SNMP是NMS和代理之间的异步请求和响应协议。NMS能够发出三个含有不同协议数据单元(PDU)报文。这三个PDU是提取请求Getrequest-PDU,提取下一个请求GetNextRequest-PDU和设置请求SetRequest-PDU报文。代理只能发出两个不同的报文:一个是对来自NMS请求作出应答的GetRequest-PDU报文,另一个陷阱Trop-PDU报文,是代理发现预定义异常事件发生时主动发出的。
利用SNMP协议,对网络设备状态的监视主要通过查询代理MIB中相应对象的值来完成。代理也会发出一些陷阱来引导NMS的查询以及及时查询。这种风行的SNMP设计方案称为陷阱引导查询。
SNMP通过交换SNMP协议报文来互通管理信息。每个报文都是完整的和独立的,用UDP运输服务的单个数据报传送。每个报文都含有版本标志、SNMP共同体名和PDU。
版本标志是NMS和代理都知道的常量,用于实现版本控制。在SNMP中,没有版本仲裁。如果NMS或代理接收到含有非法的或不支持的版本号的报文,则该消息被丢弃。在第一版里,版本字段的值总是0,而在SNMPv2中,该值必须是1。
SNMP共同体名是一个字符串,代表由特定NMS和代理组成的管理组。共同体的成员之间采用一种很简单的口令方案来鉴别身份。通信中的NMS和代理采用的这种未加密的、平常文字构成的共同体名来实现的简单方法被称为琐细鉴别方案。对SNMPv1而言,这是唯一的安全措施。共同体名是一个8位字节串,"Public"通常是配置时默认共同体名。
肆
1. SNMP基本原理
SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。下图1是NMS公司网络产品中SNMP协议的实现模型。
SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。数据报结构如下图2。
版本识别符(version identifier):确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。
团体名(Community Name):用于SNMP从代理对SNMP管理站进行认证;如果网络配置成要求验证时,SNMP从代理将对团体名和管理站的IP地址进行认证,如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息(见后);
协议数据单元(PDU):其中PDU指明了SNMP的消息类型及其相关参数。
2. 管理信息库MIB
IETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。
下图给出了NMS系统中SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构。
3.SNMP的五种消息类型
SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap。
Get-Request 、Get-Next-Request与Get-Response
sNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get-Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。
首先通过下面的原语获得所要查询的设备的接口
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2) }
然后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request):
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2) }
Set-Request
SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。
Trap
SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。
嵌入式SNMP代理机的介绍及开发流程
管理互联网的标准协议称为简单网络管理协议(Simple Network Management Protocol,简称 SNMP ),是被广泛接受并投入使用的工业标准,它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障,完成故障诊断,容量规划和报告生成。它采用轮询机制,提供最基本的功能集。最适合小型、快速和低价格的环境使用。它只要求无证实的传输层协议UDP,受到许多产品的广泛支持。据不完全统计国外的通信产品几乎100%支持SNMP网管协议,而国内目前通信产品的网管模式还局限于串口网管,或者基于自定义网管协议的以太口网管,这根国外产品的网管水平还有很大的差距。
对于设备的使用者和管理者来说,设备支持了SNMP协议就可以使用如HP OpenView或IBM NetView这样的统一网管平台来统一管理设备,而不需要为每种设备专门配备网管工作站和网管员,节约了人力和物力成本。对于设备生产者来说,设备支持了SNMP协议就拥有了统一网管的通行证,设备生产商只需要关注产品本身的细节而不必为上位机网管软件的界面和管理方式而投入更多的人力和物力。
中新创科多年来一直致力于嵌入式网络产品的研发,提供了数以万计串口设备的网络化解决之道。DNE-1 和DNE-18两种嵌入式模块可以快速的完成串口网管协议到以太口SNMP协议的代理和转换功能。任何有串口网管协议的设备嵌入DNE-1或DNE-18就立刻拥有了SNMP网管功能。中新创科的嵌入式软件工程师会根据您的产品目前的网管协议和您的需求为您确定需管理参数的OID、属性和定义;确定哪些异常情况需要以Trap形式上报;定制MIB文件并改写DNE-1的SNMP代理程序,标准的开发流程如下:
1. 设备厂商提供串口通信协议,中新创科工程师评估协议及产品
2. 双方工程师沟通,确定最终需求,拟定MIB文件
3. 签订合作开发协议,设备厂商提供测试样机
4. 2-4周后中新创科提供SNMP测试代理机
5. 定型后的升级修改服务
以上开发流程设备厂商可派工程师全程参加,中新创科负责培训相关知识。
所以,您只需提供串口通信协议,剩下的交给我们做。
以上的拓扑为加上我公司的嵌入式串口转以太网板(DNE-1)来通过以太网进行网管的示例。其中关键在于上位机如:计算机A或计算机B对下端要监控的设备直接用目前电信网中普遍应用的以太网网管方式来监控,而您只需将原来的232网管接口升级为以太网接口即可直接融入客户已有的网管系统中。针对设备开发的上层管理软件也只需改为winsock,我们提供winsock编程示例,必要的话我们也可提供软件开发支持。
联系人:彭理根
联系电话:010-62194531-209
手机:13717942816
北京中新创科技有限公司
www.neutrontek.com