首页> 中国专利> GPON网管系统的OLT代理子系统

GPON网管系统的OLT代理子系统

摘要

一种GPON网管系统的OLT代理子系统,包括:SNMP代理模块,用以负责网络管理端和OLT设备之间的互相通信,通过SNMP协议与SNMP管理端进行信息交互;SNMP MIB模块,包括标准的SNMP MIBII和自定义的GPON MIB,用以负责对OLT设备的信息和被管设备信息进行描述设置;OMCI从代理模块,用以负责和ONU设备之间的互相通信,通过OMCI帧与ONU进行信息交互;协议转换模块,用以实现基于SNMP协议的SNMP帧和基于OMCI协议的OMCI帧的转换;本发明提供了一种降低成本、提高效率的GPON网管系统的OLT代理子系统。

著录项

  • 公开/公告号CN101815008A

    专利类型发明专利

  • 公开/公告日2010-08-25

    原文格式PDF

  • 申请/专利权人 浙江工业大学;

    申请/专利号CN201010132366.6

  • 发明设计人 张江鑫;孟利民;刘叶杰;

    申请日2010-03-25

  • 分类号H04L12/24(20060101);H04L29/06(20060101);H04Q11/00(20060101);

  • 代理机构33201 杭州天正专利事务所有限公司;

  • 代理人王兵;王利强

  • 地址 310014 浙江省杭州市下城区朝晖六区

  • 入库时间 2023-12-18 00:35:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-03-27

    授权

    授权

  • 2010-10-13

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20100325

    实质审查的生效

  • 2010-08-25

    公开

    公开

说明书

技术领域

本发明涉及网络管理领域,尤其涉及GPON(Gigabit-capable Passive OpticalNetworks吉比特无源光网络)网管系统中OLT(Optical Line Terminal光线路终端)代理采用SNMP(Simple Network Management Protocol简单网络管理协议)与管理端进行信息交互,采用OMCI(ONT Management and Control Interface ONT管理控制接口)帧与ONU(Optical Network Unit光网络单元)设备进行信息交互的GPON网络管理。

背景技术

宽带网络的飞速发展以及各种高带宽业务和应用的不断出现使宽带光纤接入网技术的引入摆上了议事日程,目前北美和日本FTTH(Fiber to the Home光纤到户)的建设已经规模展开,而国内FTTH的实验已经在一些地方开始实施,业内对这方面的讨论也不绝于耳。特别是对PON(Passive Optical Networks无源光网络)技术的研究。

无源光网络技术是一种点到多点的光纤接入技术,它由局侧的OLT、用户侧的ONU以及ODN(Optical Distribution Network光分配网络)组成。一般其下行采用TDM(Time Division Multiplexing时分多路复用)广播方式、上行采用TDMA(Time Division Multiple Access时分多址接入)方式,而且可以灵活地组成树型、星型、总线型等拓扑结构(典型结构为树形结构)。所谓“无源”,是指ODN中不含有任何有源电子器件及电子电源,全部由光分路器等无源器件组成,因此其管理维护的成本较低。

目前比较流行的PON标准有基于ATM(Asynchronous Transfer Mode异步传输模式)协议的APON(ATM Passive Optical Network ATM无源光网络)、基于以太网协议的EPON(Ethernet Passive Optical Network以太网无源光网络)和新一代GPON标准。而APON技术提出至今并未在商业上获得成功,主要原因是ATM技术承载IP(Internet Protocol网络协议)业务效率低;EPON是目前各国发展的热点,但承载TDM业务存在很大的局限性;GPON与EPON最大不同在于业务支持能力。GPON是为支持全业务的部署而设计,而EPON是为使点对点网络能支持点对多点网络而设计,没有考虑对全业务的支持。GPON系统在带宽能力、安全性和可管理性方面明显优于EPON系统。它的TC(Transmission Convergence传输汇聚)层具有天然的承载TDM业务能力,更注重多业务和QoS(Quality of Service服务质量)保证;能够简单、通用、高效的透明传送各种业务,非对称特性更能适应未来的FTTP/FTTH(Fiber to the Premise/Fiber to the Home光纤到户)宽带市场;传输距离更远、覆盖范围更广。它通过为用户提供千兆比特的带宽,高效的IP、TDM承载模式,将成为FTTP/FTTH领域中更为完善的解决方案,同时也是网络技术领域中的一大热点和高利润增长点。

网络管理系统是网络的重要组成部分,它不仅仅是保证网络正常运行的基本条件之一,也是保证通信网高效、可靠、经济和安全地运行的必要条件之一。这同样适合用于GPON网络中。GPON系统数目众多的网络接口以及OLT与ONU带来的大量管理操作信息增加了管理的复杂性,为了保证GPON网络能够稳定、高效、准确的运行,为GPON网络提供一个有效的网络管理系统显得尤为重要。作为和网络建设配套的网络管理服务,在国外也取得了很好的发展。在国外市场,目前市面上有很多的商品化网管软件,如IBM(International Business Machines国际商业机器)公司的NetView,Hope公司的OpenView,SUN公司的SunNetManager等。这些商品化的网络管理软件尽管功能很强大,但从某种意义上来说,它们就如同操作系统一样,提供的是一个通用的网络管理平台,对于具体的网络环境,必须按具体环境进行配置,或编写相应的管理软件。这些工作的顺利进行都需要网络管理者具有丰富的网络管理方面的知识。从价格方面来说,这些软件都比较昂贵,并且要求的硬件环境也比较高。

目前业内对GPON系统的研究大部分集中于GPON的硬件部分,对GPON系统的物理规范、硬件设备都有了详细讨论,但是,如何给硬件部分配备管理软件,还没有很好的解决,即目前为止没有出现专门的GPON网络管理软件。所以对GPON的网络管理系统的研究是非常必要的。本发明正是针对GPON网络管理系统,提出了一种GPON网管系统OLT代理子系统的设计方法。

发明内容

为了克服现有的GPON网管系统的成本高、效率较低的不足,本发明提供了一种降低成本、提高效率的GPON网管系统的OLT代理子系统。

为了解决上述技术问题所提出的技术方案:

一种GPON网管系统的OLT代理子系统,所述OLT代理子系统包括:

SNMP代理模块,用以负责网络管理端和OLT设备之间的互相通信,通过SNMP协议与SNMP管理端进行信息交互;

SNMP MIB(Management Information Base管理信息库)模块,包括标准的SNMP MIBII和自定义的GPON MIB,用以负责对OLT设备的信息和被管设备信息进行描述设置;

OMCI从代理模块,用以负责和ONU设备之间的互相通信,通过OMCI帧与ONU进行信息交互;

协议转换模块,用以实现基于SNMP协议的SNMP帧和基于OMCI协议的OMCI帧的转换;

OMCI从代理实时把被管设备的信息通过OMCI帧更新到自定义GPONMIB中,如果网络管理站要查询OLT设备的信息,通过SNMP协议去查询标准SNMPMIBII;如果网络管理站要查询被管对象的信息,通过SNMP协议去查询自定义GPONMIB的信息;如果管理站要设置被管对象的信息时,SNMP代理收到消息后通过协议转换模块调用OMCI从代理模块组set帧给ONT(Optical NetworkTermination光网络终端)设备,设置被管对象的信息;被管设备有重要事件或者故障发生时,OLT中的OMCI从代理会收到相关的OMCI帧信息,然后再通过协议转换模块调用SNMP代理发送trap给管理端。

所述的SNMP协议中包括5种消息类型,分别为get-request、set-request、get-next-request、get-response和trap;SNMP代理和管理站之间通过所述消息报文进行相互通信,获取网络设备的各种信息,并控制网络信息的正常运行。

所述的协议转换模块中,共享内存是指在内存中专门留出一块区域用于存放MIB中所有被管对象的具体数据信息,每个内存区域都有一个标示符,即每个被管对象都有一个和自定义MIB中的OID(Object Identifier对象标识符)相对应的标示符;SNMP代理和OMCI从代理通过共享内存传递数据信息,SNMP代理进程和OMCI从代理进程需要将存放被管对象的共享内存区域映射到各自进程的地址空间中,SNMP代理程序的区域映射是把被管对象的OID号和存放具体对象信息的标示符相对应;OMCI从代理程序的区域映射是根据OMCI协议中规定的被管实体号及属性号的联合与共享内存中的标示符相对应,当管理端要设置某个被管实体的属性,就发送SNMP set帧给SNMP代理,代理收到set帧后,就修改自定义MIB中的此被管实体的属性值,由于内存映射的关系,此被管实体的属性值就是共享内存中与此被管实体OID相对应的内存中的属性值,然后把与该属性值相对应的set标志位置1,当OMCI从代理检测到此标志位置1后,修改此被管实体的属性值,即发送OMCI set帧,然后就触发OMCI发送模块通过发送get帧,即完成基于SNMP协议的set帧和基于OMCI协议的set帧的转换。

所述标准的SNMP MIBII采用SNMP协议中以对象标识符OID的数据结构作为管理信息库;SNMP MIBII中的每个对象类型都被赋予一个对象标识符,以此来命名对象,对象标识符值由一个整数序列构成,被定义的对象的集合具有树型结构,树根是引用ASN.1(Abstract Syntax Notation One抽象语法记法1)标准的对象。

所述OMCI从代理模块中,OMCI帧包括get帧、set帧、reboot帧、synchronize time帧、test帧;ONU设备的数据由ONU端的数据采集模块采集然后存在ONU MIB库中,当OMCI从代理轮询ONU被管设备的信息即发送get命令帧给ONU设备,ONU收到后从MIB库中读取OLT所需要的ONU最新的对象信息,通过ONU端的OMCI帧处理模块组装成get response帧发送给OLT,OLT再通过OMCI从代理中的帧处理模块解帧得到所需的MIB信息,并将设备信息更新到自定义MIB中;当管理端需要设置ONU设备的信息时,通过协议转换模块调用OMCI从代理发送set命令帧给ONU,ONU端OMCI帧处理模块解帧提取配置信息,并将所述配置信息写入ONUMIB库,然后通过OMCI帧处理模块组装set response帧并将该帧发送给OLT,reboot命令表示重新启动ONU,ONU端OMCI帧处理模块解帧并根据命令处理情况组装reboot response帧,反馈给OLT,Test命令用来初始化ONU的自测,同样需要组装命令处理情况反馈帧给OLT,Synchronize time帧用来同步ONU被管实体所有监视器的开始时间与OLT的相关时间,以及复位监视被管实体的寄存器,Alarm、testresult、attribute value change通知命令是由ONT通知或发送警告信息给OLT。

SNMP代理端的帧是在161,162端口上传送的,代理端在获得SNMP帧时必须查看协议中community字段的合法性,然后解析SNMP帧,如果是get帧,则直接查看MIB数据库给出response,如果是set帧,则通过协议转换模块调用OMCI从代理发送set OMCI帧给ONU设备写入ONU MIB中,代理端响应管理端的SNMP帧。

所述SNMP代理模块和SNMP MIB模块通过net-snmp开发包来完成SNMP代理开发,把自定义MIB加载进标准SNMP MIB来实现代理的扩展,开发SNMP代理和实现自定义MIB包括以下步骤:设计MIB,用ASN.1文法来描述;使用mib2c工具生成两个文件.c和.h;修改.c文件,获取变量数值部分,mib2c生成一个框架,由用户自己实现具体返回值;将自定义的MIB模块加入net-snmp开发包中,实现SNMP代理扩展。

所述OMCI从代理模块采用基于嵌入式Linux系统的串口终端编写C语言程序完成。

本发明的技术构思为:SNMP代理模块中,SNMP代理利用TCP/IP(TransmissionControl Protocol/Internet Protocol传输控制协议/网络协议)协议栈,通过以太网与管理端进行SNMP报文交互,代替ONU设备,应答管理端的SNMP报文查询,将存储在标准MIB中的OLT设备的信息和存储在自定义MIB中被管理设备的信息传递给管理端,或者以trap的形式向网络管理端报告被管理对象发生的一些重要事件。对于管理端,SNMP网管代理的作用是模拟ONU设备,使管理信息的传输都在统一的SNMP协议之下。

在如上所述的SNMP代理模块中,SNMP代理维护SNMP MIB,包括读取或者修改MIB中的各种变量值,即MIB库。

从如上所述的SNMP功能描述可以看出,SNMP代理端的帧是在161,162端口上传送的,代理端在获得SNMP帧时必须查看协议中community字段的合法性。然后解析SNMP帧,如果是get帧,则直接查看MIB数据库给出response,如果是set帧,则通过协议转换模块调用OMCI从代理发送set OMCI帧给ONU设备写入ONU MIB中。代理端的主要功能是响应管理端的get,get-next,walk,set,trap等SNMP帧。

SNMP MIB模块是一个由被管理对象组成的概念上的数据库,包括标准的MIBII和自定义MIB,存放了所有的GPON被管理对象信息,是整个GPON网管系统各功能间的公共接口。SNMP MIB中的所有对象都排列在一个树型结构之中,处于叶子位置上的对象是实际的被管对象,每个实际的被管对象表示某些被管资源、活动或相关信息。因此,SNMP MIB中的每个对象类型都被赋予一个OID以此来命名对象。

在如上所述的SNMP MIB模块中,OID表示了对象在整个组织结构中的位置,是能够唯一标识某个对象类的符号。它的值由一个整数序列构成。被定义的对象的集合具有树型结构,树根是引用ASN.1标准的对象。在MIB树中,主要关注的是internet节点下的分支。Internet子树在iso(1).org(3).dod(6).internet(1)下。在MIB文件中,用OBJECT IDENTIFIER关键字来定义节点的位置,如:InternetOBJECT IDENTIFIER::={iso org(3)dod(6)1}。

针对GPON网管系统中OLT的特殊性能,如上所述的自定义MIB,即专用的GPONMIB,需加在private子树之下,private子树目前只定义了一个子节点enterprises,用于厂商加强对自己设备的管理,与用户及其他厂商共享信息。在enterprises子树下面,每个注册了enterprises对象标识符的厂商有一个分支,所述的自定义MIB就是放在enterprises下的。

在如上所述的SNMP MIB模块中,自定义MIB的实现需要编写一个MIB模块定义文件。定义文件的编写必须符合SMI(Structure of Management Information管理信息结构)规范,用ASN.1语法编写。MIB定义文件是对该MIB子树中的各个MIB对象的描述文件,MIB以管理对象的形式来组织,每种对象的实例数目可以由管理系统按需指配,可以通过SNMP协议进行get,set,getnext等操作,完成读取数据、设置数据的功能。根据GPON协议G984.4,GPON网管系统将被管实体分为五类,MIB定义文件也就包括这五类被管实体的实例。包括ONT设备管理、ANI(AccessNetwork Interface接入网络接口)管理、UNI(User Network Interface用户网络接口)管理、连接管理、Traffic管理。

在如上所述的自定义MIB实现中,MIB的实现是通过把MIB定义文件转化为.c和.h文件,对程序进行修改实现的。在程序中,MIB的实现包括三方面的内容,即定义MIB子树模块的实现,注册MIB子树模块的实现,MIB变量处理模块的实现。

在如上所述的自定义MIB实现包括的内容中,定义MIB子树模块的重要作用是描述所要执行MIB中所有对象的详细内容,它是由一个变量结构体数组实现的。在该模块中还要说明该MIB在MIB树中注册的位置。

在如上所述的自定义MIB实现包括的内容中,注册MIB子树模块最主要的作用是在MIB中注册我们自己的OID。MIB模块在他们提供必要信息之前都必须进行初始化,初始化的参数有mib描述,变量结构体数组,结构体数组的类型,指向当前代理存放的OID位置的指针。

在如上所述的自定义MIB实现包括的内容中,MIB变量处理模块的实现包括get操作的实现和set操作的实现,以达到管理站对设备的监测与配置。get操作的实现是在相应的get实现函数中修改switch(vp->magic){}语句中的case语句;set操作的实现是在相应的set实现函数中修改里的switch(action){}语句中的case语句。

SNMP代理模块和SNMP MIB模块用net-snmp-5.3.2.2开发包来完成SNMP代理开发。开发SNMP代理包括以下步骤:设计MIB,用ASN.1文法来描述;使用mib2c工具生成两个文件.c和.h;修改.c文件,获取变量数值部分,即实现SNMP MIB;将自定义的SNMP MIB模块加入net-snmp开发包中,实现SNMP代理;在linux下启动代理,通过snmpset、snmpget命令进行测试,得到下图结果;然后将net-snmp代理移植到OLT嵌入式管理控制模块板子上实现SNMP代理的功能。

协议转换模块采用基于嵌入式Linux系统的编写C语言程序的设计方案,通过运用共享内存技术实现基于SNMP协议的信息与基于OMCI协议的信息的转换。其中共享内存是指在内存中专门留出一块区域用于存放MIB中所有被管对象的具体数据信息,每个内存区域都有一个标示符,即每个被管对象都有一个和自定义MIB中的OID相对应的标示符。SNMP代理和OMCI从代理通过共享内存传递数据信息。SNMP代理进程和OMCI从代理进程需要将存放被管对象的共享内存区域映射到各自进程的地址空间中。SNMP代理程序的区域映射是把被管对象的OID号和存放具体对象信息的标示符相对应;OMCI从代理程序的区域映射是根据OMCI协议中规定的被管实体号及属性号的联合与共享内存中的标示符相对应。通过共享内存把自定义MIB中的设备信息与从OMCI帧解析出来的设备信息联系起来,从而实现SNMP代理和OMCI代理的信息传递。

在如上所述的协议转换模块中,共享内存技术是协议转换模块的关键技术。当管理端要设置某个被管实体的属性,就发送SNMP set帧给SNMP代理,代理收到set帧后,就修改自定义MIB中的此被管实体的属性值,由于内存映射的关系,此被管实体的属性值就是共享内存中与此被管实体OID相对应的内存中的属性值,因此共享内存中的值随即也发生了变化,然后协议转换模块就把与该属性值相对应的标志位置1,当OMCI从代理检测到此标志位置1后,就知道要修改此被管实体的属性值,即发送OMCI set帧,然后就触发OMCI发送模块通过发送get帧,即完成了基于SNMP协议的set帧和基于OMCI协议的set帧的转换。OMCI从代理除了发送set帧外,一直处于轮询ONU设备信息的状态中,即一直在发get帧来查询ONU设备的信息,然后在串口接收get response帧。当OMCI从代理模块接收到反馈帧后,因为内存映射的关系,已经把设备信息存入与被管实体属性相对应的共享内存区域,也即更新到自定义MIB中。因此当管理端要查询ONU中某个被管实体的信息时,只需从OLT端的自定义MIB中取值。

OMCI从代理模块采用基于嵌入式Linux系统的串口终端编写C语言程序的设计方案,实现OMCI帧的发送和接收以及帧处理的。OMCI帧的处理包括处理get帧、set帧、reboot帧、test帧、synchronize time帧等。

OMCI从代理模块发送get帧的流程是:当OLT轮询ONU被管实体的信息时,就通过协议转换模块调用OMCI从代理模块发送get帧给ONU,ONU通过处理后,从它自身的MIB库读取OLT所需要的ONU被管实体的属性信息,获得信息后通过ONU端的帧处理模块组装成get response帧发送给OMCI从代理,OMCI从代理收发模块收到response帧后,再通过OMCI帧处理控制模块解帧得到所需的信息,并将配置信息更新到OLT端自定义MIB库。

在如上所述的OMCI从代理模块中,OMCI从代理模块发送set帧的流程是:当OLT需要设置ONU被管实体的信息时,就通过议转换模块调用OMCI从代理发送set帧给ONU,ONU端OMCI帧收发处理模块解帧提取需要设置的信息,并将这些信息写入ONU MIB库,然后通过OMCI帧处理模块组装set response帧并将该帧发送给OMCI从代理。reboot帧、test帧、synchronize time帧的操作大致也是如此。

在如上所述的OMCI从代理模块中,OMCI从代理模块中的轮询机制是OMCI从代理模块定时发送get帧给ONU设备,然后在串口一直等待ONU的get response帧的过程。当收到反馈帧时,OMCI从代理通过帧处理模块把所需的设备信息取出,然后通过协议转换模块中的内存映射,把设备信息相应的更新至自定义MIB中,实现更新设备信息。

本发明的有益效果为:OLT代理采用功能模块化的设计思想,把OLT代理分成四个模块。由于SNMP的简单性,管理端与OLT代理之间通信协议采用SNMP协议,SNMP MIB的设计也是基于SNMP协议的,SNMP代理的开发采用net-snmp开发包在linux系统下来实现,然后移植到嵌入式平台开发,提供了一种经济有效的管理实现方法。OMCI从代理与ONU设备之间的通信协议采用OMCI协议,OMCI从代理的开发采用基于嵌入式Linux系统的串口终端编写C语言程序的设计方案来实现。设计了一种在SNMP代理和OMCI从代理通信及信息转化的机制,即通过协议转换模块解决了基于SNMP协议的数据帧和基于OMCI协议的数据帧之间的转换问题,从而解决了管理端与ONU设备之间通信的问题,实现了一种低成本、高效率的网络管理系统的方式。

附图说明:

图1是GPON网管系统OLT代理模块框图。

图2是SNMP的5种基本报文操作图。

图3是SNMP代理工作流程图。

图4是MIB的文本结构图。

图5是SNMP代理扩展流程图。

图6是OMCI从代理OMCI帧发送控制流程图。

图7是OMCI从代理OMCI接收帧处理流程图。

图8是被管实体属性填充MIB流程图。

具体实施方式

下面结合附图对本发明做进一步详细说明。

参照图1~图8,一种GPON网管系统的OLT代理子系统,包括:

SNMP代理模块,用以负责网络管理端和OLT设备之间的互相通信,通过SNMP协议与SNMP管理端进行信息交互;

SNMP MIB模块,包括标准的SNMP MIBII和自定义的GPON MIB,用以负责对OLT设备的信息和被管设备信息进行描述设置;

OMCI从代理模块,用以负责和ONU设备之间的互相通信,通过OMCI帧与ONU进行信息交互;

协议转换模块,用以实现基于SNMP协议的SNMP帧和基于OMCI协议的OMCI帧的转换;

图1是GPON网管系统OLT代理模块框图。有四个功能模块组成,包括SNMP代理模块,SNMP MIB模块,协议转换模块,OMCI从代理模块。

所述的OLT代理模块框图看出,GPON网管系统可以分为两个层次:一个层次是网络管理站与SNMP代理之间通过SNMP协议进行管理控制信息交互;另一个层次是OMCI从代理通过OMCI协议与ONU进行管理控制信息的交互。

所述的GPON网管系统第一个层次是SNMP管理站与SNMP代理之间的通信,工作站或高性能的PC机可以实现GPON网络管理站功能,实际上就是执行网络管理进程,通过SNMP协议与OLT代理进行信息交互,包括:发送命令以及接收应答。

所述的GPON网管系统第二个层次是OMCI从代理与ONU代理之间的通信。OMCI从代理对ONU进行的管理控制可以分为4个方面:

(1)配置管理:提供了对ONU的控制,建立或释放与ONU连接,识别ONU的身份,发送和收集数据等功能,涉及到配置设备、配置UNI、配置ATM VP(Virtual Path虚通道)连接、配置OAM(Operations,Administration and Maintenance操作管理维护)数据流等。

(2)差错管理:ONU只支持有限的错误管理,大多数操作是限制的。支持错误报告的被管理实体有ONT-G、Subscriber Line Card、ONU-G等。

(3)性能管理:提供有限的性能监控,还要求采集相关性能的统计数据和配置信息。相关的管理实体有VP PM History Datal、VC PMHistory Datal等。

(4)安全管理:G.984.3详细说明了一些机制,是从安全的角度出发的。这包括下行数据加密和ONU口令保护。ONT2-G管理实体可以对下行数据加密或不加密。

所述的GPON网管系统两个层次之间,通过协议转换模块实现SNMP代理和OMCI从代理之间的信息传递。即实现SNMP数据帧和OMCI数据帧的转换。

图2是SNMP管理站与SNMP代理信息交互的5种基本报文操作图。GPON网络管理站与OLT代理之间通过5种SNMP协议数据单元PDU(Protocol Data Unit协议数据单元)进行相互通信,以获取网络设备的各种信息,从而控制网络设备的正常运行。

Get-request操作:从OLT代理进程处提取一个或多个参数值。

Get-next-request操作:从OLT代理进程处提取当前参数值的下一个参数值。

Set-request操作:设置OLT代理进程的一个或多个参数值。

Get/Set-response操作:用于对各种读取和修改管理信息的请求进行应答。

Trap操作:用来主动向管理站报告代理系统中发生的事件。

前三个消息由管理站发给代理,用于请求读取或修改OLT管理信息,后两个消息由OLT代理发给管理站。在SNMP代理进程端是用端口161接收get或者set报文,而在管理进程端是用端口162接收trap报文。

代理程序嵌入在SNMP代理结点内,SNMP代理是一个在OLT上运行的软件模块,这个代理进程软件可以实现SNMP并管理MIB库。SNMP代理是一个执行无限循环的守护进程,在循环中它接收管理站的SNMP请求然后进行相应的操作并作出响应,同时代理进程能够根据自身管理的MIB信息主动向管理站发送陷阱报文Trap以通知管理站所管理的网络设备发生了异常事件实现故障警告。

图3是SNMP代理工作流程图。在SNMP中,信息按照SNMP消息的形式在管理站和SNMP代理之间交换,每一个消息包括一个指明的SNMP版本的版本号,一个用于安全性的团体名字,以及5种协议数据单元中的一种。SNMP代理端的协议帧是在161,162端口上传送的,代理端和管理端通信时,代理程序用熟知端口161来接收get或set报文和发送响应response报文。从上向下的处理过程是:

1.对该消息的基本句法进行检查,如果消息没有通过分析,就抛弃这个消息。

2.检查版本号,如果匹配错误就抛弃该消息。

3.协议实体把名字、消息的PDU部分、以及源于目的传输地址传递给认证服务,即验证共同体community,Community在这里起到了认证服务的作用,所有由管理站发给代理的消息都包含一个community名。如果认证失败,认证服务发出一个信号给该SNMP协议实体,它将产生一个陷进并抛弃该消息;如果认证成功,则认为消息来源是可靠的。接着解析该SNMPDU包,如果是get帧,则直接查看MIB数据库返回RESPONSEPDU帧给管理端,如果是set帧,则通过协议转换模块调用OMCI从代理发送set OMCI帧给ONU设备写入ONU MIB中,当设置成功后生成RESPONSEPDU帧给管理端。

从下向上的过程是:如果下面有告警事件发生,ONU设备通过OMCI帧通知OMCI从代理,OMCI从代理解析OMCI帧后,通过协议转换模块调用SNMP代理构造TRAPPDU,并发送到管理端熟知端口162端口,管理端收到报警信息后进行分析处理。因此代理端的主要功能是响应管理端的get,get-next,walk,set,trap等SNMP帧。

图4是MIB的文本结构图。

ASN.1模块体是每个MIB必须有的、固定的部分,严格按照ASN.1中定义模块的格式定义。

引用类型部分是列举从其他模块引用的类型。大部分使用SMIv1定义的MIB,从模块RFC1155-SMI、RFC-1212中引用类型。

辅助定义部分是指一个MIB文本的文本约定。辅助定义部分是指MIB中被管理对象的对象标识符空间。MIB中所有被管理对象按一定的规则可以被分为几个组,每个组使用一个节点标识。MIB中所有对象组被组织在一个OID节点内,为方便叙述,称其为MIB的顶端节点。

定义被管理对象是定义MIB文件的主要部分。MIB中的被管理对象,可以分为标量对象、列对象以及聚合对象。不同的对象有不同的特点,访问方式也不相同。

图5是SNMP代理扩展流程图。开发SNMP代理和实现自定义SNMP包括以下步骤:

1.设计MIB,用ASN.1文法来描述;

2.安装配置net-snmp开发包;

3.使用mib2c工具生成两个文件.c和.h;修改.c文件,获取变量数值部分;

4.把修改后的.c文件编译进snmpd代理;

5.启动代理,测试代理功能。

下面详细说明各步骤的内容。

SNMP的核心思想是在每个网络节点上存放一个管理信息库MIB,由节点上的代理负责维护,管理者通过应用层协议对这些代理进行轮询进而对管理信息库进行管理。因此自定义MIB的设计是实现整个SNMP Agent的关键。MIB是系统被管对象的集合,MIB中的对象表示了某个被管实体的某种特性。根据GPON协议G984.4,GPON网管系统将被管实体分为五类。包括ONT设备管理、ANI管理、UNI管理、连接管理、Traffic管理。因此根据上面的5类被管实体设计自定义MIB。MIB定义文件的编写必须符合SMI规范,用ASN.1语法编写。下面列举ONT设备管理对象的定义。

ONT设备管理包括的管理实体有ONT-G、ONT2-G、Subscriber Line card、Subscriber Line Cardholder、ONT Data、PON IF Line Card-G、PON IF LineCardholder、Software Image等。

SNMP MIB中定义的一个片段实现如下:

ont_g-version OBJECT-TYPE

SYNTAX OCTET STRING

ACCESS read-only

STATUS mandatory

DESCRIPTION

″ONT版本号。″

::={ont_g3}

上面的定义当中,按照ASN.1语法定义了一个OCTET类型的变量ont_g-version,具有只读的权限,并且必须实现。属于ont-g对象。按照上面描述的ASN.1语法规定,将所有的MIB变量全部定义到自己的私有MIB文件中,将文件命名为gponmib.txt。

snmp代理开发采用net-snmp开发包,采用的版本是5.3.2.2。在linux系统下首先解压缩开发包,然后进行配置安装。net-snmp开发代理有静态链接形式、共享链接库形式和AgentX子代理协议。本文采用的是静态链接形式,在原来的代理中添加自己的私有代理。这需要重新安装编译net-snmp。

首先把自定义的gponmib文件放在/usr/local/share/snmp/mibs目录下。然后加载gponmib,用mib2c工具生成gponmib.c和gponmib.h,用mib2c生成的只是框架,具体的功能还是自己实现。

#export MIBS=ALL

#/usr/local/bin/mib2c gponmib

然后把修改好的gponmib.c代理程序拷贝到

net-snmp-5.3.2.2/agent/mibgroup文件夹下,扩展的代理需要重新配置安装。

#./configure-with-mib-modules=“gponmib”

#make

#make install

最后启动代理,进行set测试,用如下的命令:

#snmpset-v2c-c public localhost 1.3.6.1.4.1.419109.1.5.1.1.5.5,s“OLTMIB”

然后再进行get测试,用如下命令:

#snmpget-v2c-c public localhost 1.3.6.1.4.1.419109.1.5.1.1.5.5。

图6是OMCI从代理OMCI帧发送控制流程图。以ONT-G这个实体为例,包括Managed Entity id,Vendor id,Version,Serial Number,Traffic ManagementOption,Battery Backup,Administrative State几个属性,其中Battery Backup和Administrative State是支持读写操作的,其余的支持只读操作。首先OMCI代理判断被管实体支持可写的属性的set标志位是不是1,如果是1,则根据此被管实体具体的属性信息按照上面提到的OMCI帧的编码过程组成set OMCI帧,如果都是0,OMCI代理则组get OMCI帧查询被管实体ONT-G的属性信息,然后在串口等待response帧,当接收处理完response帧后继续循环上面的动作。

其中,当OMCI从代理组装set帧时,通过协议转换模块中的内存映射,已经把处于共享内存区域的对象的标示符映射到OMCI帧中需要填充的该对象的属性号,即已经知道了ONT-G中哪个属性的值需要设置,然后根据对应关系把设置的值填充入OMCI帧的内容域。

图7是OMCI从代理OMCI接收帧处理流程图。当在串口接收到53字节的response帧后,就根据OMCI解帧过程解帧,即把各字段的内容放入相应的接收缓存数组,然后依次判断事物相关标识符、消息类型、设备识别类型、消息识别号是否和指定的值相等,如果不相等,就抛弃该帧,如果相等然后判断信息内容的第一个字节的后四位是否是0000,如果不是,则有可能出现7种错误情况,如:(1)命令处理错误:response帧的第14字节的最后4位为0001;(2)执命令不被支持:response帧的第14字节的最后4位为0010;(3)参数错误:response帧的第14字节的最后4位为0011;(4)未知的被管实体:response帧的第14字节的最后4位为0100;(5)未知的被管实体实例:response帧的第14字节的最后4位为0101;(6)设备忙:response帧的第14字节的最后4位为0110;(7)属性失败或未知:response帧的第14字节的最后4位为1001;针对会出现的这7种错误情况编写一个子函数errorprocessing()处理相应的错误。如果是0000,则说明命令处理正确,继续判断该response帧是get response帧还是set response帧,如果是get response帧,则执行子程序attributeget(),即根据接收到的字段的内容确定被管实体号和具体的属性编号,然后映射到共享内存区域相应标示符的自定义MIB被管对象,即将查询到的属性信息依次更新至自定义MIB;如果收到的是set response帧,则通知SNMP代理,设置对象信息成功。

OMCI从代理一直处于帧发送接收状态,当从SNMP代理发来set帧时,通过协议转换模块调用OMCI从代理触发set帧,当没有set帧时,OMCI从代理就一直轮询发送get帧,以达到更新自定义MIB的目的。因此,当管理站需要查询ONU被管实体的信息时,只需查询相应OLT中的自定义MIB信息。

图8是被管实体属性填充MIB流程图,即attributeget()子程序工作流程图,当get response帧第15字节的第一位为1时,取出此被管实体的第一个属性值,然后映射到共享内存区域相应标示符的MIB被管对象,填入相应的MIB中,以此类推,直到此被管实体的最后一个属性为止。如图所示,以ONT-G被管实体为例,总共有8个属性值。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号