CN1299467C - 管理网络设备的装置及其方法 - Google Patents
管理网络设备的装置及其方法 Download PDFInfo
- Publication number
- CN1299467C CN1299467C CNB031039863A CN03103986A CN1299467C CN 1299467 C CN1299467 C CN 1299467C CN B031039863 A CNB031039863 A CN B031039863A CN 03103986 A CN03103986 A CN 03103986A CN 1299467 C CN1299467 C CN 1299467C
- Authority
- CN
- China
- Prior art keywords
- command
- module
- data
- network
- interactive object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种管理网络设备的装置及其方法。本发明的核心是在网络管理设备后台保存网络设备的配置数据,并根据保存的配置数据对网络设备进行管理,方便了网络运营商通过网络管理设备后台对网络设备进行管理维护,而且,在网络管理设备后台还可以进行命令的配置封装,从而使网络管理设备前台的开发简化;另外,网络管理设备前台采用XML/MML(可延伸式标注语言/人机交互语言)与后台通信,简洁通用。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种管理网络设备的装置及其方法。
背景技术
网络通信的组网过程中需要采用大量的网络设备,为了便于网络运营商对网络设备的管理维护,需要为众多的网络设备设置网络管理设备,网络运营商通过网络管理设备对组网中的网络设备进行管理。网络管理设备对网络设备进行管理时,需要从网络设备获取用于管理的配置数据,目前获取相应配置数据的方法是直接通过SNMP(简单的网络管理协议)从设备上临时读取。
上述网络设备配置数据的获取方法虽然具有可实时获得数据等优点,但降低了网络管理设备前台的响应速度,并且,当对需要获取的数据有多种条件制约时候将大大增加获取数据的难度,前台必须理解所有的配置细节,且对每步配置,后台都要编写相应的处理代码与网络设备后台进行交互,而且所编写的处理代码无法重复利用,如果网络管理设备再产生同样的需求,则需要重复进行开发工作。另一方面现有方法获取网络设备配置数据需要依赖于网络设备的Agent(代理)的MIB(管理信息库),因此,配置数据的获取方式必须随MIB的变化而修改获取数据所应用的程序,增加了网络管理设备的管理工作量。同时,由于网络管理设备的前台获取配置数据的过程不属于守护进程,且不在网络管理设备中存储网络设备的配置数据,所以现有技术无法为其它程序模块提供接口。
发明内容
本发明的目的是提供一种管理网络设备的装置及其方法,以方便网络管理设备后台对网络设备的管理,并可以为其它程序模块提供接口。
本发明的目的是这样实现的:一种管理网络设备的装置,包括:
命令语法分析模块:接收网络管理设备前台发来的命令行,并对其进行分析后分别交给生成交互对象模块和命令逻辑处理模块;
命令逻辑处理模块:接收网络管理设备前台发来的命令及命令语法分析模块发来的经过分析后的命令对象,读取配置文件进行分析和内部处理,生成相应的与网络设备交互的数据发送给生成交互对象模块;
生成交互对象模块:接收命令语法分析模块输出的命令对象,及命令逻辑处理模块发来的分析配置文件或自写代码生成的数据,结合从数据库中读取的MIB描述,生成与网络设备交互的SNMP对象数据包,将其发送给网络设备。
所述的命令逻辑处理模块包括:
配置流程选择子模块:接收网络设备管理前台发来命令及命令语法分析模块分析后的命令对象,判断内部的处理方式,如果该命令不能根据配置文件自动处理,则调用预先利用编程接口子模块提供的编程接口手工写好的代码,否则则可自动处理,将命令对象发送给自动配置子模块;
编程接口子模块:对于不能用配置文件描述的复杂命令,提供接口给应用者编写自己的处理代码,生成与网络设备交互的数据发送给生成交互对象模块;
自动配置子模块:接收来自配置流程选择子模块的命令对象,根据命令对象自动调用获取保存的配置文件,生成与网络设备交互的数据发送给生成交互对象模块。
还包括数据库模块(DB):用于保存各种网络设备的MIB(管理信息库)描述,网络管理设备后台对网络设备进行操作维护的数据,及从网络设备获取的网络设备配置数据。
还包括MIB描述读取模块:接收生成交互对象模块命令,根据该命令确定从数据库模块中读取MIB描述的数据并发送给生成交互对象模块。
一种基于上述装置的管理网络设备的方法,包括:
a、网络管理设备前台向管理网络设备的装置发送命令;
b、命令语法分析模块对发来的命令进行分析,并将分析结果分别发送给生成交互对象模块和命令逻辑处理模块;
c、命令逻辑处理模块根据命令分析结果进行分析和内部处理,将生成SNMP对象数据包所需的数据输出给生成交互对象模块;;
d、生成交互对象模块根据命令分析结果和命令逻辑处理模块输出的数据生成与网络设备交互的SNMP对象数据包,并发送给网络设备,实现对网络设备的管理。
所述的步骤a为:网络管理设备前台向管理网络设备的装置发送XML/MML(可延伸式标注语言/人机交互语言)命令。
步骤b所述的命令分析结果包括:用于内部命令逻辑处理的命令对象和用于生成SNMP交互对象数据包的参数值。
所述的步骤c包括:
c1、配置流程选择模块在网络设备前台发来命令的触发下,根据命令语法分析模块分析出的命令名,判断是否为自动配置,如果是,执行步骤c2,否则,执行步骤c3;
c2、自动配置子模块根据命令名读取该命令的配置文件,并生成SNMP交互数据,发送给生成交互对象模块;
c3、根据命令名调用通过编程接口子模块提供的编程接口手工写好的代码,生成snmp交互数据,发送给生成交互对象模块。
所述的步骤d包括:
d1、生成交互对象模块根据配置文件里描述的MIB表名从数据库中读取MIB描述及其OID(对象标识);
d2、根据上述读出的MIB描述和配置文件描述生成基于SNMP的交互对象数据包;
d3、将交互对象数据包发送给网络设备;
d4、网络设备获取交互对象数据包,并根据该数据包的内容执行相应的操作。
所述的MIB描述通过数据库表格定义,且所述的数据库表格包括:
非索引列描述表:描述网络设备中Agent(代理)相关表格的非索引列,具体包括以下字段:
tablename:存储Agent对应表格数据的表名;
columnname:Agent对应表格的列在网络管理设备表格中的列名;
mibname:为Agent对应表格的列可以另外取一个名字;
oidstr:该MIB变量的OID(对象标识)字串;
datatype:该MIB变量的数据类型;
datalen:数据长度,以字节为单位,仅对字符串类型有效;
access:存取权限;
索引列描述表:描述Agent相关表格的索引列,且tablename列与非索引列描述表的tablename相关联,具体包括以下字段:
tablename:存储Agent对应表格数据的表名;
indexno:该表格的索引编号;
columnname:该索引列的名字;
datatype:数据类型;
datalen:数据长度;
addtype:当对Agent的tablename表格增加记录时该索引的取值类型;
addvalue:当对Agent的tablename表格增加记录时该索引的取值;
表操作列描述表:描述Agent相关表格的表操作,其中tablename列与上述两张表的tablename相关联,具体包括以下字段:
tablename:存储Agent对应表格数据的表名;
action:操作类型;
oidstr:该表操作列的OID字串;
value:对应操作的取值;
叶子节点信息定义表:定义所有的叶子节点信息,包括以下字段:
name:表示该叶子节点的含义;
oidstr:表示它的OID表示形式;
tablename:叶子节点信息所在表的名称;
datatype:表示数据类型;
datalen:表示数据长度,仅对字符串类型有效;
access:表示存取读/写权限。
该方法还包括对MIB描述表进行自动刷新,发起刷新的方式包括:在配置文件中配置刷新命令和网络管理设备前台直接下发刷新命令。
所述的配置文件包括:配置文件名和配置内容,配置文件由配置文件名索引。
所述的生成交互对象模块为生成SNMP(简单网络管理协议)交互对象生成模块。
由上述技术方案可以看出:第一,本发明在网络管理设备后台保存了网络设备的配置数据,并根据保存的配置数据对网络设备进行管理,方便了网络运营商通过网络管理设备后台对网络设备进行管理维护;第二,本发明中在网络管理设备后台进行命令的配置封装,从而使网络管理设备前台的开发简化;第三,网络管理设备通过SNMP与网络设备交互时与网络设备中的MIB结构无关,方便支持网络管理设备后台对多种网络设备的管理;第四,网络管理设备前台采用XML/MML(可延伸式标注语言/人机交互语言)与后台通信,简洁通用;第五,本发明还提供了二次开发接口,可以方便用户编写有复杂逻辑的程序模块;从而使得本***能很方便的进行扩充以支持其他种类网络设备,且调试方便。
附图说明
图1为现有技术中网络管理设备管理网络设备的原理示意图;
图2为本发明所述的管理网络设备的装置的结构示意图;
图3为本发明所述的管理网络设备的方法流程图;
图4为非索引列描述表的结构示意图;
图5为索引列描述表的结构示意图;
图6为表操作列描述表的结构示意图。
具体实施方式
本发明的具体实施方式如图2所示,所述的装置包括:
命令语法分析模块:接收网络管理设备前台发来的命令行,并对其进行分析后分别交给生成交互对象模块和命令逻辑处理模块;
命令逻辑处理模块:接收网络管理设备前台发来命令及命令语法分析模块分析后的命令对象,读取配置文件进行分析和内部处理,生成相应的与网络设备交互的数据发送给生成交互对象模块,该模块进一步包括:
配置流程选择子模块:接收网络管理设备前台发来命令及命令语法分析模块分析后的命令对象,判断内部处理的方式,如果该命令不能根据配置文件自动处理,则调用预先利用编程接口子模块提供的编程接口手工写好的代码,否则则可自动处理,将命令对象发送给自动配置子模块;
编程接口子模块:对于不能用配置文件描述的复杂命令,提供接口给应用者编写自己的处理代码,并发送给生成交互对象模块;
自动配置子模块:接收来自配置流程选择子模块的命令对象,根据命令对象自动调用获取相应的配置文件,并发送给生成交互对象模块,即生成SNMP(简单网络管理协议)交互对象模块;
生成交互对象模块:接收命令语法分析模块的经过分析后的命令对象,及命令逻辑处理模块发来的分析配置文件或手工编写的处理代码生成的数据,结合从数据库中读出的MIB描述,生成与网络设备交互的SNMP对象数据包,并将其发送给网络设备。
该装置还包括MIB(管理信息库)描述读取模块:接收生成交互对象模块命令,根据该命令确定从数据库模块中读取MIB描述的数据并发送给生成交互对象模块,生成交互对象模块根据该模块的输出数据调用数据库模块中的MIB描述,生成基于SNMP(简单网络管理协议)的与网络设备交互的SNMP数据包,所述的数据库模块DB:用于保存各种网络设备的MIB描述,网络管理设备后台对网络设备进行操作维护的数据,及从网络设备获取的网络设备配置数据。
本发明所述的管理网络设备的方法为基于上述装置实现的一种方法,其具体实施方式如图3所示,包括:
步骤1:网络管理设备前台向管理网络设备的装置的命令语法分析模块发送XML/MML命令;
步骤2:命令语法分析模块对发来的命令进行分析,并将分析结果分别发送给生成交互对象模块和命令逻辑处理模块;
所述的命令分析结果包括:用于内部命令逻辑处理的命令对象和用于生成SNMP交互对象数据包的参数值;
步骤3:命令逻辑处理模块根据命令分析结果进行分析和内部处理,并将生成SNMP对象数据包所需要的数据发送给生成交互对象模块,该步骤进一步包括:
步骤31:配置流程选择模块在网络设备前台发来命令的触发下,根据命令语法分析模块分析出的命令名,判断是否为自动配置,如果是,执行步骤32,否则,执行步骤33;
步骤32:自动配置子模块根据命令名读取该命令的配置文件,实现自动配置,生成SNMP交互数据,发送给生成交互对象模块;
步骤33:根据命令名调用通过编程接口子模块提供的编程接口人工写好的代码,以生成SNMP交互数据,并发送给生成交互对象模块;
即,如果管理网络设备的装置中所设置的配置文件不能描述该命令,则开发者利用编程接口子模块事先写好该命令的处理代码;
步骤4:生成交互对象模块根据命令分析结果和命令逻辑处理模块输出的数据生成与网络设备交互的SNMP交互对象数据包,并发送给网络设备;该步骤进一步包括:
步骤41:生成交互对象模块根据命令分析结果通过MIB描述模块读取数据库DB中的MIB描述;
步骤42:根据上述调出的MIB描述和配置文件或人工编写的处理代码生成的交互数据,生成基于SNMP的交互对象数据包,即生成各个串联起来的与网络设备交互的对象;
步骤43:将交互对象数据包发送给网络设备;
步骤44:网络设备获取交互对象数据包,并根据该数据包的内容执行相应的操作。
至此,便实现了网络管理设备对组网中的网络设备进行相应的管理,包括对网络设备进行配置,获取网络设备配置参数等。
本发明所述的MIB描述模块在数据库中保存着以表形式定义的MIB描述,描述MIB的各表如下:
非索引列描述表:描述Agent相关表格的非索引列,不包括表操作列,只描述网络管理设备需要的,表中包括以下字段:
tablename:存储Agent对应表格数据的表名;
columnname:Agent对应表格的列在网络管理设备表格中的列名;
mibname:为Agent对应表格的列可以另外取一个名字;
oidstr:该MIB变量的OID(对象标识)字串;
datatype:该MIB变量的数据类型;
datalen:数据长度,以字节为单位,仅对字符串类型有效;
access:存取权限;
关键字:tablename+columnname;
当某列不需要与网络设备交互时,如果网络管理设备为每条连接取的一个名字,则oidstr字段的值为null(无效),其它每条记录的oidstr显然应该不一样。
索引列描述表:描述Agent相关表格的索引列,其中tablename列与非索引列描述表的tablename相关联;
tablename:存储Agent对应表格数据的表名;
indexno:该表格的索引编号,值为1表示是第一个索引,为2表示是第二个索引;
columnname:该索引列的名字;
datatype:数据类型;
datalen:数据长度,以字节为单位,仅对字符串类型有效;
addtype:当对Agent的tablename表格增加记录时该索引的取值类型,0为用户输入,此时addvalue的值无意义,1为一个特殊值,由addvalue字段给定,如255;另外还有去取一个特殊叶子节点的值的情况,这种情况下addtype可为0;
addvalue:当对Agent的tablename表格增加记录时该索引的取值;
关键字:tablename+indexno,tablename+columnname;
表操作列描述表:描述Agent相关表格的表操作,如增加,删除,激活等;其中tablename列与上述两张表的tablename相关联;
tablename:存储Agent对应表格数据的表名;
action:操作类型,如add,del,act等;
oidstr:该表操作列的OID字串;
value:对应操作的取值,例如=1表示增加,=0表示删除;
关键字:tablename+action;
下面举例说明上述三张表的用途:假如设备有一张VPL(虚通道连接)表,包含端口号,VPI(虚通路标识)值,接收方向流量ID(标识),发送方向流量ID四个字段,其中端口号和VPI值是这张表的索引,该表具有增加和删除两种操作,那么在非索引列描述表中的记录如图4所示,在索引列描述表中的记录如图5所示,在表操作列描述表中的记录如图6所示。各个表的tablename字段中的mdvpltbl表示MD(一种接入设备的名称)的VPL表中的数据存储在网络管理设备侧的mdvpltbl表中,各个表的columnnane字段中的值如recvflowid、portno等表示设备VPL表中的接收方向流量ID和端口号分别存在网络管理设备mdvpltbl表中的recvflowid和portno字段;即网络管理设备后台中有一张表,表名为mdvpltbl,其中有四个字段为portno,vpi,recvflowid,sendflowid,存放设备VPL表中的数据;由图5所示的索引列描述表可知该表中portno是第一个索引,vpi是第二个索引。
对于非索引列描述表中的mibname字段,该域的值相同的记录表示它们在网络设备侧是属于同一张表的;它的取值可以和tablename字段一样,也可以不一样,可以完全独立赋值,该域在用于表型变量时主要为以后扩充,目前不用该字段。
表操作列描述表定义的是和该表相关的一些操作,如action字段的值add定义对该表的增加操作,当表操作的oidstr加上索引等于value字段的值时,则Agent会在该表中增加一条记录,相应的删除操作与此类似;该表中value字段的值默认其为整数。
如果要刷新VPL表,前台把数据库DB中表名mdvpltbl传给后台,后台查表即知要get_next recvflowid(接收方向流量ID)和sendflowid(发送方向流量ID),网络设备响应的结果中会带上索引,网络管理设备后台根据这个表确定第一个索引是端口号,第二个是vpi值,于是把这四个字段的多条返回记录一起存到表mdvpltbl中,完成一次刷新。
注意Agent的一张表可以在MIB描述表中被分开定义成几个表,每个表只有其中一列或几列,但非索引列不能重复。原因是有可能配置只需要操作其中几列,另外的列可能是状态信息,配置前后台并不需要,但其它模块也许需要,比如拓扑轮询,因此可以把表示状态的列定义到另一张表中存储供拓扑显示用。
最后还有一张表定义所有的叶子节点信息的叶子节点信息定义表,表中包括字段有:name表示该叶子节点的含义,如设备状态;oidstr表示它的OID表示形式;tablename表示它的值存在哪张表中,一种设备的叶子节点其值都存在同一张表中,即前面定义的mdleafval表,该域的值为null时表示该叶子节点的值不存库,所以该域的值在MD中就只能为mdleafval和null;datatype表示数据类型;datalen表示数据长度,仅对字符串类型有效;access表示存取权限(读/写)。
另外,再对本发明中自动配置子模块调用的配置文件的格式进行说明:假如要修改网络设备侧的VPL表,则描述形式类似如下:
[MDSetVPL]
L1,Set,vpltable,port->port,vpi->vpi,recvflowid->recvflowid,sendflowid->sendflowid;
假如要修改一条端口号为2,VPI值为7的VPL的属性,则网络管理设备前台传给后台的命令包含如下部分:
″cmd=MDSetVPL,port=2,vpi=7,recvflowid=5;″或″MDSetVPL:port=2,vpi=7,recvflowid=5;″如果还要同时修改发送方向流量ID,则可在上述语句后再添上″sendflowid=?″。
配置文件描述中[MDSetVPL]为配置文件名,根据前台命令分析结果中的命令名索引,L1表示当前行的配置就是第一级配置,即该行是直接的配置命令行,该域在分步配置中用到;第2个域表示操作动作,可以为:SET表示修改,ADD表示增加,DEL表示删除,UPDATE表示刷新一张表;vpltable表示该动作对应的数据库表格名是vpltable;其后的用″->″符号连起来的各个部分表示前台输入和后台数据库表格字段名的对应关系,如port->port中左边的port用来匹配前台传入的字段描述,如″port=2″中的″port″,右边的port表示后台数据库相应表格中的字段名,对该条配置,那么后台将从vpltable中找寻字段名为port且其值等于2的记录,再配合后面描述的其它字段值就可以唯一定位一条记录了。
″->″两边的名字可以相同,也可以不同;例如增加VP(虚通路)交叉时,前台要传入的参数之一是源端口号,用字符串srcport标识,它在VP交叉表中的字段名也是srcport,但是增加VP交叉时先需要在表vpltable中增加一条记录,这个细节前台是不知道的,且vpltable中没有源端口号这一说,它只有端口号字段,所以在写增加VP交叉的配置文本描述时,需要先增加一步在vpltable中增加一条记录的描述,其中前台输入与表格字段的对应关系之一就应该是srcport->port。
假如要在VPL表里增加一条记录,则描述形式类似如下:
[MDAddVPL]
L1,Add,vpltable,port->port,vpi->vpi,recvflowid->recvflowid,Sendflowid->sendflowid;
当程序发现是增加操作时,查找表操作描述表,从中获取该表的增加操作的OID及其对应的操作值,同前台指示的其它列一起打成PDU(协议数据单元)包发给网络设备。
增加操作时有的索引的索引值事先并不知道,其值有三种来源:
(1)由前台输入,由索引列描述表中的addtype=0标识,即索引项由用户输入,如果此种情况下后台匹配不到前台的输入则提示出错;
(2)一个特殊值,由索引列描述表中的addtype=1标识,即索引项为一个特定值,其值为MDTableIndex表的addvalue字段的值,直接将其加在非索引项的OID后面即可;
(3)一个叶子节点的值,也由索引列描述表中的addtype=0标识,即索引值是一个叶子节点的值,后台需要先从网络设备取得这个值,再将其加在非索引项的OID后面,该种情况下后台可另外单独配置一步操作是去取一个叶子节点的值,然后将其传给下一步配置,这样对下步配置而言就可以认为是前台直接输入的了;
因此,所有这些解析成SNMP配置的细节前台都是不知道的,前台只能看到数据库表格字段。
如果是多步配置且某一步是增加操作,而那个不知道的索引需要传给下一步时可如下配置,例如增加一个网元时,前台传入这个网元的物理序列号,网元ID是该序列号OID的最后一个索引,但网络管理设备事先不知道,后台需填一个特殊值255,网络设备返回成功后的OID里会把这个索引自动改成已分配的网元ID,而这个网元ID又是下步配置或前台所需知道的:
[MDAddNe]
L1,Add,NeDespTbl,NeSerialNum->SerialNum,NeID<-NeID;
本例中后台需把返回的NeID(网元ID)赋给一个外部输入如″NeID=2″,即相当于在前台输入中加入一个属性″NeID=2″,使其对下步配置而言等价于是前台输入的。
本发明中取叶子节点的值时可采用如下配置:
[GetNextVPCrossID]
L1,GetLeaf,NextVPCrossID<-NextVPCrossID,A1<-A0,...;
该配置表示去取叶子节点NextVPCrossID(下一个VP交叉ID)的值,并把其赋给一个外部输入″NextVPCrossID″,可在后面继续写多个叶子节点,如A0等;叶子节点的OID及其数据类型等相关信息可在叶子节点信息定义表中查到。
本发明中当一个配置操作要操作几张表,且这几张表不能同时配置时,则配置过程可能需要分多步完成,则可如下描述:
[A]
L1,......
[B]
L1,......
[C]
L2,A;
L2,B;
L1,UPDATE,table1;
上述描述表示配置C时,需要先配置A,再配置B,前台只需知道当前要进行C配置;最后的UPDATE table1表示本次配置完成后设备侧会进行一些动态计算,可能会导致table1的数据与原来不一样了,此时网络管理设备需要刷新这张表,可一次写多个表刷新,如table1,table2...。
另外还定义了一个L0关键字,专用来描述单步配置的属性,如本步配置失败的话是否继续后续配置,如:
[A]
L0,continue=0;
L1,......
因为有些配置动作需要一些控制信息;例如某步配置动作失败后是否继续执行后续配置。对于在VPL表中增加一条记录时先判断该条记录是否存在,若存在的话需要先删除再添加,因为如果某个VPL已不被用时放在设备侧会占用资源,所以最好先删除,但如果已存在且正被其它模块引用的话则删除操作会失败;所以网络管理设备侧在增加VPL时直接先发一条删除命令,定位记录的参数就是用户输入的值,如果删除失败的话正常情况下说明设备侧已有该记录,这时应继续后续配置;如果是其它原因导致的失败如通信中断,则在下一步配置里出错并返回。这是continue属性,当以后还需要其它属性时再添加。
某步配置还可以配置为调用一个本地预处理函数,可以用来准备一些输入参数,可如下描述:
[callfunc1]
L1,callfunc,GetPortFromifIndex;
如果要一次调多个函数可如下编写:
[callfunc1]
L1,callfunc,GetPortFromifIndex;
L1,callfunc,GetFunc2;
该功能需要额外编写这些回调函数来实现。
从网络设备获取某张表格的单条记录可如下描述,通常为获取某条记录的状态字段,因为状态是实时变化的,从数据库中取的值没有意义,需要收到前台的命令后实时从网络设备去获取;
假如某端口表有两个状态字段,state1,state2,则如下配置:
[GetPortState]
L1,Get,PortTable,port->port,state1<-state1,state2<-state2;
后台会把从网络设备取回的state1和state2状态值返回给前台,如果想把端口号也返回给前台,则如下配置:
L1,Get,PortTable,port->port,port<-port,state1<-state1,state2<-state2;
对于两个状态也可配置两条命令,如:
[GetPortState1]
L1,Get,PortTable,port->port,state1<-state1;
[GetPortState2]
L1,Get,PortTable,port->port,state2<-state2;
本发明支持自动表格刷新,有两种方式可以发起刷新,配置文件中配置刷新命令、前台直接发刷新命令,描述如下:
假如某端口描述表有框、槽、端口字段,即Frame,slot,port,需要刷新该表的信息:
(1)对于整表刷新,配置文件编写为:
[UpdatePortTable]
L1,update,PortTable;
前台也可直接发送刷新命令:
Update:DevID=???,table=″tablename=PortTable;″;
(2)部分索引刷新,配置文件编写为:
[UpdatePortTable]
L1,update,PortTable,Frame->Frame;
前台也可直接发送刷新命令:
Update:DevID=???,table=″tablename=PortTable,Frame=???;″;
(3)索引区间刷新,配置文件编写为:
[UpdatePortTable]
L1,update,PortTable,FrameB->Frame.BEGIN,FrameE->Frame.END;
前台也可直接发送刷新命令:
Update:DevID=???,table=″tablename=PortTable,Frame=″″?&&?″″;″;
(4)同时刷新多张表格,配置文件编写为:
[UpdateTable]
L1,update,PortTable;
L1,update,PvcTable;
L1,update,TrafficTable;
前台也可直接发送刷新命令:
Update:DevID=???,table=″tablename=PortTable;
tablename=PvcTable;
tablename=TrafficTable;″。
下面再对由网络设备返回的报文的处理过程进行说明。在该处理过程中需要说明的是:本发明所述的网络管理设备后台自动处理流程中还可以对设备返回的报文做特殊判断处理,该特殊处理由应用编写函数挂接上去处理;举例说明,对一条已经处于激活状态的PVC再次发起激活操作,网络设备返回错误并上报一个特定的错误码,但是此时应该向上层返回配置成功,此时需要对网络设备返回的报文进行特殊判断,该函数在SNMP返回失败的时候被触发;为完成该功能需要编写挂接函数和编写配置文件:
(1)程序编写步骤为:
假设某设备有一条配置命令需要对SNMP失败报文进行判断,某些情况下需要认为该报文是成功报文:
SGetSNMPCB gArray_GetSNMPCB[]=
{
{″PvcActionSNMPCB″,MA5100PvcActionSNMPCB},
{″″,NULL}
};
其中最后一个元素为空(NULL)标志本数组的结束;
函数指针代表的函数原型如下:
typedef int(*FuncSNMPCB)(int reason,CPdu& oPdu);
SNMP报文返回值为1表示成功,其它表示失败;如果返回成功那么认为本次配置操作成功并继续下一步配置操作,否则认为本次配置操作失败。
(2)配置文件编写为:
L0,SNMPcb=PvcActionSNMPCB;
该描述表示需要调用一个SNMP回调函数PvcActionSNMPCB,网络管理设备后台从(1)中定义的数据组中进行查询,便知道要调用的挂接函数指针就是MA5100PvcActionSNMPCB了。
Claims (13)
1、一种管理网络设备的装置,其特征在于包括:
命令语法分析模块:接收网络管理设备前台发来的命令行,并对其进行分析后,将分析结果分别交给生成交互对象模块和命令逻辑处理模块;
命令逻辑处理模块:接收网络管理设备前台发来的命令及命令语法分析模块发来的经过分析后的命令对象,读取配置文件进行分析和内部处理,生成相应的与网络设备交互的数据发送给生成交互对象模块;
生成交互对象模块:接收命令语法分析模块输出的命令对象,及命令逻辑处理模块发来的分析配置文件或自写代码生成的数据,结合从数据库中读取的管理信息库MIB描述,生成与网络设备交互的简单网络管理协议SNMP对象数据包,将其发送给网络设备。
2、根据权利要求1所述的管理网络设备的装置,其特征在于所述的命令逻辑处理模块包括:
配置流程选择子模块:接收网络设备管理前台发来命令及命令语法分析模块分析后的命令对象,判断内部的处理方式,如果该命令不能根据配置文件自动处理,则调用预先利用编程接口子模块提供的编程接口手工写好的代码,否则则可自动处理,将命令对象发送给自动配置子模块;
编程接口子模块:对于不能用配置文件描述的复杂命令,提供接口给应用者编写自己的处理代码,生成与网络设备交互的数据发送给生成交互对象模块;
自动配置子模块:接收来自配置流程选择子模块的命令对象,根据命令对象自动调用保存的配置文件,生成与网络设备交互的数据发送给生成交互对象模块。
3、根据权利要求1所述的管理网络设备的装置,其特征在于还包括数据库模块DB:用于保存各种网络设备的MIB描述,网络管理设备后台对网络设备进行操作维护的数据,及从网络设备获取的网络设备配置数据。
4、根据权利要求3所述的管理网络设备的装置,其特征在于还包括MIB描述读取模块:接收生成交互对象模块命令,根据该命令确定从数据库模块中读取MIB描述的数据并发送给生成交互对象模块。
5、一种基于上述装置的管理网络设备的方法,其特征在于包括:
a、网络管理设备前台向管理网络设备的装置发送命令;
b、命令语法分析模块对发来的命令进行分析,并将分析结果分别发送给生成交互对象模块和命令逻辑处理模块;
c、命令逻辑处理模块根据命令分析结果进行分析和内部处理,将生成SNMP对象数据包所需的数据输出给生成交互对象模块;;
d、生成交互对象模块根据命令分析结果和命令逻辑处理模块输出的数据生成与网络设备交互的SNMP对象数据包,并发送给网络设备,实现对网络设备的管理。
6、根据权利要求5所述的管理网络设备的方法,其特征在于所述的步骤a为:网络管理设备前台向管理网络设备的装置发送可延伸式标注语言/人机交互语言XML/MML命令。
7、根据权利要求6所述的管理网络设备的方法,其特征在于步骤b所述的命令分析结果包括:用于内部命令逻辑处理的命令对象和用于生成SNMP交互对象数据包的参数值。
8、根据权利要求6或7所述的管理网络设备的方法,其特征在于所述的步骤c包括:
c1、配置流程选择子模块在网络设备前台发来命令的触发下,根据命令语法分析模块分析出的命令名,判断是否为自动配置,如果是,执行步骤c2,否则,执行步骤c3;
c2、自动配置子模块根据命令名读取该命令的配置文件,并生成SNMP交互数据,发送给生成交互对象模块;
c3、根据命令名调用通过编程接口子模块提供的编程接口手工写好的代码,生成snmp交互数据,发送给生成交互对象模块。
9、根据权利要求8所述的管理网络设备的方法,其特征在于所述的步骤d包括:
d1、生成交互对象模块根据配置文件里描述的MIB表名从数据库中读取MIB描述及其对象标识OID;
d2、根据上述读出的MIB描述和配置文件描述生成基于SNMP的交互对象数据包;
d3、将交互对象数据包发送给网络设备;
d4、网络设备获取交互对象数据包,并根据该数据包的内容执行相应的操作。
10、根据权利要求9所述的管理网络设备的方法,其特征在于所述的MIB描述通过数据库表格定义,且所述的数据库表格包括:
非索引列描述表:描述网络设备中代理Agent相关表格的非索引列,具体包括以下字段:
tablename:存储Agent对应表格数据的表名;
columnname:Agent对应表格的列在网络管理设备表格中的列名;
mibname:为Agent对应表格的列可以另外取一个名字;
oidstr:该MIB变量的OID字串;
datatype:该MIB变量的数据类型;
datalen:数据长度,以字节为单位,仅对字符串类型有效;
access:存取权限;
索引列描述表:描述Agent相关表格的索引列,且tablename列与非索引列描述表的tablename相关联,具体包括以下字段:
tablename:存储Agent对应表格数据的表名;
indexno:该表格的索引编号;
columnname:该索引列的名字;
datatype:数据类型;
datalen:数据长度;
addtype:当对Agent的tablename表格增加记录时该索引的取值类型;
addvalue:当对Agent的tablename表格增加记录时该索引的取值;
表操作列描述表:描述Agent相关表格的表操作,其中tablename列与上述两张表的tablename相关联,具体包括以下字段:
tablename:存储Agent对应表格数据的表名;
action:操作类型;
oidstr:该表操作列的OID字串;
value:对应操作的取值;
叶子节点信息定义表:定义所有的叶子节点信息,包括以下字段:
name:表示该叶子节点的含义;
oidstr:表示它的OID表示形式;
tablename:叶子节点信息所在表的名称;
datatype:表示数据类型;
datalen:表示数据长度,仅对字符串类型有效;
access:表示存取读/写权限。
11、根据权利要求10所述的管理网络设备的方法,其特征在于还包括对MIB描述表进行自动刷新,发起刷新的方式包括:在配置文件中配置刷新命令和网络管理设备前台直接下发刷新命令。
12、根据权利要求8所述的管理网络设备的方法,其特征在于所述的配置文件包括:配置文件名和配置内容,配置文件由配置文件名索引。
13、根据权利要求5所述的管理网络设备的方法,其特征在于所述的生成交互对象模块为生成SNMP交互对象生成模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031039863A CN1299467C (zh) | 2003-02-18 | 2003-02-18 | 管理网络设备的装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031039863A CN1299467C (zh) | 2003-02-18 | 2003-02-18 | 管理网络设备的装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1523814A CN1523814A (zh) | 2004-08-25 |
CN1299467C true CN1299467C (zh) | 2007-02-07 |
Family
ID=34282142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031039863A Expired - Fee Related CN1299467C (zh) | 2003-02-18 | 2003-02-18 | 管理网络设备的装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1299467C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662925A (zh) * | 2012-03-16 | 2012-09-12 | 北京护航科技有限公司 | 一种将不同格式的配置语言转换成通用功能性描述语言的方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100466658C (zh) * | 2004-08-30 | 2009-03-04 | 华为技术有限公司 | 一种运营支撑***的接口及其与网管***对接的方法 |
CN100403724C (zh) * | 2006-02-20 | 2008-07-16 | 华为技术有限公司 | 一种后台进行正反向解析报文的方法和*** |
CN100446473C (zh) * | 2006-05-26 | 2008-12-24 | 华为技术有限公司 | 一种网络维测方法 |
CN101197703B (zh) * | 2006-12-08 | 2011-05-04 | 华为技术有限公司 | 对Zigbee网络进行管理的方法及***及设备 |
CN101043545B (zh) * | 2007-03-22 | 2010-07-07 | 华为技术有限公司 | 一种通信设备的维护方法 |
CN101321080B (zh) * | 2007-06-04 | 2010-07-28 | 华为技术有限公司 | 配置网络设备的方法、网络设备、网络*** |
CN100579030C (zh) * | 2007-06-28 | 2010-01-06 | 华为技术有限公司 | 一种基于snmp的通用配置方法及装置 |
CN101174985B (zh) * | 2007-09-28 | 2010-11-10 | 华为技术有限公司 | 恢复配置信息的方法和装置 |
CN101630257B (zh) * | 2009-05-07 | 2012-08-22 | 永洋科技股份有限公司 | 嵌入式***架构的控制方法 |
CN102546260A (zh) * | 2012-02-06 | 2012-07-04 | 烽火通信科技股份有限公司 | 一种基于snmp网络管理的模拟器 |
CN102752138A (zh) * | 2012-06-30 | 2012-10-24 | 华为技术有限公司 | 异步配置管理方法和网络设备 |
CN103731251A (zh) * | 2012-10-12 | 2014-04-16 | 上海斐讯数据通信技术有限公司 | 机架式设备卡同步***及其同步方法 |
CN103001807B (zh) * | 2012-12-20 | 2015-09-09 | 北京思特奇信息技术股份有限公司 | 一种与snmp协议对应的请求应答模块 |
CN103997412B (zh) * | 2013-02-18 | 2018-01-02 | 中兴通讯股份有限公司 | 管理信息库文件生成方法及装置、数据处理*** |
CN109412856B (zh) * | 2018-11-05 | 2022-06-03 | 深圳互联先锋科技有限公司 | 一种网络设备品牌无差异管理方法及*** |
CN116938669A (zh) * | 2022-03-31 | 2023-10-24 | 华为技术有限公司 | 网络设备的管理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172601A (ja) * | 1998-12-04 | 2000-06-23 | Matsushita Electric Ind Co Ltd | ネットワークシステム |
US6219703B1 (en) * | 1996-10-31 | 2001-04-17 | Motorola, Inc. | Method and apparatus for constructing a device management information base in a network management station |
JP2001282646A (ja) * | 2000-03-29 | 2001-10-12 | Canon Inc | 通信制御装置およびデータ処理装置およびネットワーク制御装置および通信制御方法およびデータ処理方法および記憶媒体 |
EP1170900A2 (en) * | 2000-06-15 | 2002-01-09 | Murata Kikai Kabushiki Kaisha | Network apparatus and network administration method |
CN1372403A (zh) * | 2002-04-01 | 2002-10-02 | 北京港湾网络有限公司 | 网络设备面板管理方法和*** |
KR20020078758A (ko) * | 2001-04-10 | 2002-10-19 | 현대네트웍스 주식회사 | Mib 네임 서버를 이용한 망 관리 장치 및 방법 |
-
2003
- 2003-02-18 CN CNB031039863A patent/CN1299467C/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219703B1 (en) * | 1996-10-31 | 2001-04-17 | Motorola, Inc. | Method and apparatus for constructing a device management information base in a network management station |
JP2000172601A (ja) * | 1998-12-04 | 2000-06-23 | Matsushita Electric Ind Co Ltd | ネットワークシステム |
JP2001282646A (ja) * | 2000-03-29 | 2001-10-12 | Canon Inc | 通信制御装置およびデータ処理装置およびネットワーク制御装置および通信制御方法およびデータ処理方法および記憶媒体 |
EP1170900A2 (en) * | 2000-06-15 | 2002-01-09 | Murata Kikai Kabushiki Kaisha | Network apparatus and network administration method |
KR20020078758A (ko) * | 2001-04-10 | 2002-10-19 | 현대네트웍스 주식회사 | Mib 네임 서버를 이용한 망 관리 장치 및 방법 |
CN1372403A (zh) * | 2002-04-01 | 2002-10-02 | 北京港湾网络有限公司 | 网络设备面板管理方法和*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662925A (zh) * | 2012-03-16 | 2012-09-12 | 北京护航科技有限公司 | 一种将不同格式的配置语言转换成通用功能性描述语言的方法 |
CN102662925B (zh) * | 2012-03-16 | 2015-03-11 | 北京护航科技有限公司 | 一种将不同格式的配置语言转换成通用功能性描述语言的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1523814A (zh) | 2004-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1299467C (zh) | 管理网络设备的装置及其方法 | |
CN101061688A (zh) | 基于简单网络管理协议的网络管理设备和方法 | |
CN1280716C (zh) | 计算机处理方法、分布式计算方法和网络计算方法 | |
CN1148687C (zh) | 用于网络处理器的全匹配搜索方法和设备 | |
CN1293465C (zh) | Gui显示装置及光标或gui组件动画显示处理方法 | |
CN1174319C (zh) | 数据结构管理装置、数据结构管理***和方法 | |
CN1615480A (zh) | 网络设备间配置文件的翻译 | |
CN1173933A (zh) | 建立通信网络数据库的一种方法和设备 | |
CN1625865A (zh) | 用于管理树状数据交换的方法和设备 | |
CN101047707A (zh) | 发起设备能力信息协商的方法及*** | |
CN1968133A (zh) | 设备配置信息管理方法及其*** | |
CN101069181A (zh) | 存储设备和记录介质 | |
CN1399738A (zh) | 网络交换机和部件及其操作方法 | |
CN1801146A (zh) | 用于确定访问控制的方法和装置 | |
CN101052956A (zh) | 在标记语言环境中使用可撤消命令来编辑文档的文档处理和管理方法 | |
CN101051937A (zh) | 一种基于xml的用户权限管理方法及*** | |
CN1932756A (zh) | 动态生成用于合成数据的语音可导航菜单的方法和*** | |
CN1369160A (zh) | 使用网络处理器的网络交换机和方法 | |
CN101048773A (zh) | 文件分析***、以及文件适应*** | |
CN1158680A (zh) | 通用服务协调机构 | |
CN1795434A (zh) | 程序执行控制设备,程序执行控制方法,控制程序和记录介质 | |
CN1371500A (zh) | 网络处理器处理组合体和方法 | |
CN1846207A (zh) | 类型路径索引 | |
CN1959569A (zh) | 刻蚀机集群控制器 | |
CN1645819A (zh) | 一种方便快捷的通信网络管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070207 Termination date: 20150218 |
|
EXPY | Termination of patent right or utility model |