专利名称:一种基于snmp协议进行网络管理的方法和系统的制作方法
技术领域:
本发明涉及网络通信技术领域,尤其涉及一种基于SNMP协议进行网络管理的方法和系统。
背景技术:
简单网络管理协议SNMP(Simple Network Management Protocol)以其简洁高效的特点,被广泛应用于计算机网络的管理上。SNMP网络管理的框架如图1所示,在SNMP网络设备管理系统中,SNMP Manager(管理器)协助网管完成管理整个网络的工作。SNMP Agent(管理代理)是一种特殊的软件或固件,包含了一个特定设备及该设备所处环境的信息。当一个SNMP Agent被安装到一个设备上时,这个设备就被列为“被管理的”。SNMP Agent可以获得所驻留设备的运转状态、设备特性和系统配置等相关信息。它就像是每个被管理设备的经纪人,完成SNMP Manager布置的信息采集任务。
SNMP Manager和运行在被管设备上的SNMP Agent之间是通过标准的SNMP协议来进行通信的,网络管理的流程如下所述(1)SNMP Manager根据操作请求,构造对应的SNMP报文发送给SNMPAgent;(2)SNMP Agent解析SNMP Manager发送的SNMP报文并根据报文的内容让设备执行相关的操作,然后SNMP Agent构造SNMP响应报文发送给SNMP Manager;(3)SNMP Manager解析结果后显示操作请求的结果。
当设备发生特殊的事件时,设备主动产生一个告警,并由SNMP Agent发送给SNMP Manager。
SNMP的使用极为广泛,如ATCA(Advanced Telecom ComputerArchitecture先进电信运算架构)机框中功能单元的管理。随着电信运营商的转型,IT(Information Technology信息技术)、CT(Communication Technology通信技术)融合已经成为大势所趋。在现有的ICT(Information CommunicationTechnology信息与通信技术)融合方案中,多个设备集成在一个机框中,不同设备完成不同的业务。现有的标准如高级电信运算架构(ATCA),这种结构中,一个机框中的一个或多个单板,包括单板上承载的应用组成一个独立的功能单元。
如图2所示为使用SNMP协议进行传统机框的管理模式,其中每一个功能单元是一个被管设备,其上运行一个SNMP Agent,需使用一个管理IP地址(公有IP地址),则当功能单元很多时,就需要使用多个管理IP地址,这样不仅会消耗大量的公有IP地址,而且不支持统一的SNMP用户配置,一个用户要在多个设备上拥有权限,需要在多个设备上分别进行配置。
发明内容
本发明的目的在于提供一种基于SNMP协议进行网络管理的方法和系统,旨在于对网络中的设备进行单IP的统一高效的管理。
本发明的技术方案包括一种基于SNMP协议进行网络管理的方法,包括SNMP代理根据SNMP报文中的引擎ID或团体名,对该SNMP报文进行处理和转发,完成网管对功能单元的统一管理。
SNMP代理根据SNMP报文中的引擎ID或团体名查找到对应的功能单元的IP地址,并修改所述的报文源地址和目的地址,将其转发到对应的功能单元。
引擎ID与功能单元的实际引擎ID相等,SNMP代理中保存有功能单元的实际引擎ID、IP地址和版本号的映射。
引擎ID与功能单元的虚拟引擎ID相等,SNMP代理中保存有功能单元的虚拟引擎ID、实际引擎ID、IP地址和版本号的映射。
所述的网管对功能单元的统一管理还包括绘制SNMP代理的设备视图、提供进入每个功能单元自身配套的SNMP网管系统的方式和统一的SNMP用户配置。
提供统一的SNMP用户配置包括提供统一的视图配置、提供统一的组配置和/或提供统一的用户配置。
SNMP代理根据SNMP报文中的用户名确定所述的报文是否加密,若加密,则用加密密钥对所述的报文进行解密。
SNMP代理根据功能单元和SNMP代理,以及SNMP代理和网管之间的SNMP协议版本修改所述的SNMP报文。
一种基于SNMP协议进行网络管理的系统,包括功能单元和网管,所述的网管通过SNMP协议对所述的功能单元进行管理,还包括SNMP代理,所述的SNMP代理根据SNMP报文中的引擎ID或团体名,对该SNMP报文进行处理和转发,完成网管对功能单元的统一管理。
所述的SNMP代理包括映射表,保存功能单元的引擎ID或团体名、IP地址和版本号的映射;报文接收模块,从网管或功能单元接收SNMP报文,并获取所述报文中的用户名、引擎ID或团体名;报文修改模块,根据所述报文中的引擎ID或团体名和所述的映射表中的信息修改所述的报文;报文发送模块,将修改后的报文发送到对应的功能单元或网管。
本发明的有益效果是SNMP代理为ATCA机框中的各个功能单元提供统一的管理IP,可以屏蔽ATCA机框中各个功能单元的管理IP地址,如果ATCA机框内部使用私有IP地址,则可以节省很多公有IP地址;通过为snmpEngineID映射虚拟snmpEngineID,避免各个功能单元snmpEngineID重复的问题;对于ATCA机框中的SNMP V1、SNMP V2c的功能单元,通过SNMP代理将SNMPV1、SNMP V2c报文转换成SNMP V3的报文,从而实现对SNMP V1、SNMP V2c功能单元的安全管理;支持对ACTA机框的网管用户的统一管理,一个SNMP网管用户的权限范围可以是ATCA机框中的一个或者多个功能单元。
图1是SNMP的网络管理模型;图2是传统机框的管理模式;图3是本发明的管理方式的示意图;图4是SNMP V3的报文格式;图5是本发明的机框管理的示意图;图6是显示在网管端的设备视图;图7是每个功能单元的SNMP网管示意图。
图8是本发明实施例的视图配置示意图。
图9是本发明实施例的组配置示意图。
图10是本发明实施例的用户配置示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图3所示,本发明在网管和功能单元之间增加一SNMP代理,SNMP代理配置公有IP地址和私有IP地址,功能单元配置私有IP地址, SNMP代理根据SNMP报文中的引擎ID或团体名,对该SNMP报文进行处理和转发,完成网管对功能单元的统一管理。
第一实施例本发明提供一种基于SNMP协议进行网络管理的方法,第一实施例的实现流程如下S11、网管向SNMP代理发送标准格式的SNMP报文,如图4所示,为SNMPV3的报文格式,其中的引擎ID(contextEngineID)与该报文要管理的功能单元的实际引擎ID(snmpEngineID)相等;S12、SNMP代理根据所述的引擎ID,对所述的报文进行处理并转发给功能单元,该步骤具体包括S121、SNMP代理接收该报文,并从报文中获取引擎ID;S122、SNMP代理根据获取的引擎ID查找到对应的功能单元的IP地址,SNMP代理中保留有功能单元的引擎ID和IP地址的映射,所以根据报文中的引擎ID(和功能单元的引擎ID相等),就可找到对应的功能单元的IP地址;S123、SNMP代理将报文的源IP地址改为SNMP代理的IP地址,目的IP地址改为该功能单元的IP地址,并转发给该功能单元;S13、功能单元将SNMP响应报文发给SNMP代理;S14、SNMP代理将响应报文的源IP地址改为SNMP代理的IP地址,目的IP地址改为网管的IP地址,并转发给网管。
对于设备发生特殊的事件时,设备主动产生的告警(SNMP Trap)报文的处理过程同上步骤S14,在此不再赘述。
第二实施例在本发明的第二实施例中,SNMP代理为各个功能单元分配一个虚拟引擎ID(虚拟snmpEngineID),从而避免功能单元之间实际引擎ID(snmpEngineID)的可能的重复,该实施例的实现流程如下S21、网管向SNMP代理发送标准格式的SNMP报文,其中的引擎ID(contextEngineID)与该报文要管理的功能单元的虚拟引擎ID(虚拟snmpEngineID)相等;S22、SNMP根据所述的引擎ID,对所述的报文进行处理并转发给功能单元,该步骤具体包括
S221、SNMP代理接收该报文,并从报文中获取引擎ID;S222、SNMP代理根据获取的引擎ID查找到对应的功能单元的IP地址,SNMP代理中保留有功能单元的虚拟引擎ID、实际引擎ID和IP地址的映射,所以根据报文中的引擎ID(和功能单元的虚拟引擎ID相等),就可找到对应的功能单元的IP地址;S223、SNMP代理将报文的引擎ID换成功能单元的实际引擎ID,源IP地址改为SNMP代理的IP地址,目的IP地址改为该功能单元的IP地址,并转发给该功能单元;S23、功能单元将SNMP响应报文发给SNMP代理,该响应报文的引擎ID为该功能单元的实际引擎ID;S24、SNMP代理将响应报文的引擎ID换成功能单元的虚拟ID,源IP地址改为SNMP代理的IP地址,目的IP地址改为网管的IP地址,并转发给网管。
对于设备发生特殊的事件时,设备主动产生的告警(SNMP Trap)报文的处理过程同上步骤S24,在此不再赘述。
第三实施例因为SNMP V3可以对报文加密,也可不加密,所以,本发明的第三实施例在SNMP代理收到网管发送的报文时,要先根据报文的用户名(如图4中的msgUserName)确定该报文是否加密,如果发现有加密,则用加密密钥对报文进行解密,获得明文后再进行第一实施例或第二实施例的步骤;在SNMP代理收到功能单元的响应报文或主动告警报文时(此时的报文为非加密报文),对之进行第一实施例或第二实施例的修改后,进行加密再发送给网管。
第四实施例一个用户可以属于多个snmpEngineID(即多个功能单元)中的组(SNMP代理中存在组的配置),使用该用户名访问该用户所属的所有snmpEngineID(即该用户所属的所有功能单元)时使用相同的认证和加密密钥,组的安全等级决定组中所有功能单元的安全等级,则SNMP代理接收到网管发送的报文时,SNMP代理根据报文的用户名查找对应的组,根据组的安全等级确定该报文是否加密,若加密用加密密钥对报文进行解密,获得明文后再进行第一实施例或第二实施例的步骤;在SNMP代理收到功能单元的响应报文或主动告警报文时(此时的报文为非加密报文),对之进行第一实施例或第二实施例的修改后,进行加密再发送给网管。
上述实施例中功能单元和SNMP代理之间,以及SNMP代理和网管之间的管理通信协议都是SNMP V3,但本发明中功能单元和SNMP代理之间,以及SNMP代理和网管之间的管理通信协议可以是SNMP V1、SNMP V2c、SNMP V3等所有SNMP版本。
本发明中若功能单元和SNMP代理之间的管理通信协议是SNMP V1或SNMP V2c,SNMP代理和网管之间的管理通信协议是SNMP V3,则SNMP代理还需将SNMP V3的管理报文转换成SNMP V1或SNMP V2c报文,以及将SNMP V1或SNMP V2c的响应报文或主动告警报文转换成SNMP V3报文,而且,在SNMP代理中保存的是引擎ID、功能单元团体名(community,SNMP V1或SNMP V2c报文中的团体名和SNMP V3报文中的引擎ID类似)和功能单元IP地址的映射。
本发明中若功能单元和SNMP代理之间,以及SNMP代理和网管之间的管理通信协议都是SNMP V1或SNMP V2c,那么就通过报文中的团体名来转发报文,SNMP代理中保存有功能单元的团体名和IP地址的映射。
本发明中若功能单元和SNMP代理之间的管理通信协议是SNMP V3,SNMP代理和网管之间的管理通信协议是SNMP V1或SNMP V2c,那么SNMP代理还需将SNMP V1或SNMP V2c的管理报文转换成SNMP V3报文,以及将SNMP V3的响应报文转换成SNMP V1或SNMP V2c报文。
本发明的网管对功能单元的统一管理还包括绘制SNMP代理的设备视图(如图5所示,在网管看来整个ATCA机框是一个虚拟的设备,SNMP代理就是这个虚拟设备的逻辑提供者),比如在管理员添加设备时,可以要求管理员输入用户参数,然后和SNMP代理建立连接,并向SNMP代理收集所有功能单元的相关信息,并根据这些信息绘制一个设备视图,如图6所示,该图显示在网管端,其中每一个方框表示ATCA机框中的一个功能单元;提供进入每个功能单元自身配套的SNMP网管系统的方式,每个功能单元自身有配套的SNMP网管,如图7所示,每一个方框对应ATCA机框中的一个功能单元,右边是每个功能单元对应的SNMP网管应用程序,当用户点击设备时,进入对应于该功能单元的SNMP网管系统;统一SNMP用户配置,包括提供统一的视图配置、提供统一的组配置、提供统一的用户配置等如图8所示,图8是统一的视图配置示意图。
一个视图可以包含多个snmpEngineID(即多个功能单元)的不同MIB(Management Information Base管理信息库)子树。网管可以发送两个SNMP管理配置报文分别完成配置下发,目的地址是SNMP代理报文1中包含的信息<snmpEngineID1(包含在报文头部中),read view(视图类型),"test"(view Name is"test"),1(Included oid),1.0.8802.1(Excluded)>
报文2中包含的信息<snmpEngineIDn(包含在报文头部中),read view(视图类型),"test"(view Name is"test"),1(Included oid),1.0.8802.1(Excluded)>
等价于先为snmpEngineID1(即功能单元1)配置一个视图名为”test”、Included节点为1、Excluded节点为1.0.8802.1的读视图,再为snmpEngineIDn(即功能单元n)配置一个视图名为”test”、Included节点为1、Excluded节点为1.0.8802.1的读视图;如图9所示,图9是统一的组配置示意图。
配置一个组时,该组可以属于多个snmpEngineID(即多个功能单元),对应于某个snmpEngineID(即某个功能单元),可以包含该功能单元的读写视图,对于该组所属的所有snmpEngineID(即所有功能单元),使用相同的安全级别。网管可以发送两个SNMP管理配置报文分别完成配置下发,目的地址是SNMP代理报文1中包含的信息<snmpEngineID1(包含在报文头部中),"test"(group Name is“test"),"Read MIB View 1"(snmpEngineID 1's Read MIBView),""(snmpEngineID 1's Write MIB View),Authentication and unencryption(Security Level)>
报文2中包含的信息<snmpEngineIDn(包含在报文头部中),"test"(group Name is"test"),"Read MIB View 2"(snmpEngineIDn's Read MIBView),"Write MIB View 1"(snmpEngineIDn's WriteMIB View),Authentication and unencryption(Security Level)>
等价于先为snmpEngineID1(即功能单元1)配置一个组名为”test”、读视图为“Read MIB View 1”、写视图为“”、安全级别为Authentication and unencryption的组,再为snmpEngineIDn(即功能单元n)配置一个组名为”test”、读视图为“ReadMIB View 2”、写视图为“Write MIB View 1”、安全级别为Authentication andunencryption的组;如图10所示,图10是统一的用户配置示意图。
一个用户可以属于多个snmpEngineID(即多个功能单元)中的组,使用该用户名访问该用户所属的所有snmpEngineID(即该用户所属的所有功能单元)时使用相同的认证和加密密钥。网管可以发送两个SNMP管理配置报文分别完成配置下发,目的地址是SNMP代理报文1中包含的信息<snmpEngineID1(包含在报文头部中),"test"(user Name is test),"group Name 1"(snmpEngineID 1's group Name),authentication algorithm 1(snmpEngineID 1'sauthentication algorithm),"234567"(snmpEngineID 1's authentication privacy),encryption algorithm 2(snmpEngineID 1's encryptionalgorithm),"123456"(snmpEngineID1's encryption privacy)>
报文2中包含的信息<snmpEngineIDn(包含在报文头部中),"test"(user Name is test),"group Name 2"(snmpEngineIDn's,oup Name),authentication algorithm 1(snmpEngineIDn'sauthentication algorithm),"234567"(snmpEngineIDn's authentication privacy),encryption algorithm 1(snmpEngineIDn's encryptionalgorithm),"123456"(snmpEngineIDn's encryption privacy)>
等价于先为snmpEngineID1(即功能单元1)配置一个用户名为”test”、组名为group Name 1、认证算法为authentication algorithm 1、认证密钥为“234567”、加密算法为encryption algorithm 2、加密密钥为“123456”的用户,再为snmpEngineIDn(即功能单元n)配置一个用户名为”test”、组名为group Name2、认证算法为authentication algorithm 1、认证密钥为“234567”、加密算法为encryption algorithm 2、加密密钥为“123456”的用户。
如果新加入了一个功能单元,需要在SNMP代理上增加该功能单元的snmpEngineID(SNMPV3)或团体名(SNMPV1或SNMPV2c)、SNMP初始用户信息。如果是SNMP V3功能单元,则建立该功能单元IP地址、该功能单元snmpEngineID、虚拟snmpEngineID、SNMP版本号的映射;如果是SNMPV1或SNMPV2c功能单元,则建立该功能单元IP地址、该功能单元团体名、虚拟snmpEngineID、SNMP版本号的映射。
本发明还提供一种基于SNMP协议进行网络管理的系统,包括功能单元和网管,所述的网管通过SNMP协议对所述的功能单元进行管理,所述的系统还包括SNMP代理,所述的SNMP代理根据SNMP报文中的引擎ID或团体名,对该SNMP报文进行处理和转发,完成网管对功能单元的统一管理。
所述的SNMP代理包括映射表,保存功能单元的引擎ID或团体名、IP地址和版本号的映射;报文接收模块,从网管或功能单元接收SNMP报文,并获取所述报文中的用户名、引擎ID或团体名;报文修改模块,根据所述报文中的引擎ID或团体名和所述的映射表中的信息修改所述的报文;报文发送模块,将修改后的报文发送到对应的功能单元或网管。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于SNMP协议进行网络管理的方法,其特征在于,包括SNMP代理根据SNMP报文中的引擎ID或团体名,对该SNMP报文进行处理和转发,完成网管对功能单元的统一管理。
2.如权利要求1所述的一种基于SNMP协议进行网络管理的方法,其特征在于,SNMP代理根据SNMP报文中的引擎ID或团体名查找到对应的功能单元的IP地址,并修改所述的报文源地址和目的地址,将其转发到对应的功能单元。
3.如权利要求1所述的一种基于SNMP协议进行网络管理的方法,其特征在于,引擎ID与功能单元的实际引擎ID相等,SNMP代理中保存有功能单元的实际引擎ID、IP地址和版本号的映射。
4.如权利要求1所述的一种基于SNMP协议进行网络管理的方法,其特征在于,引擎ID与功能单元的虚拟引擎ID相等,SNMP代理中保存有功能单元的虚拟引擎ID、实际引擎ID、IP地址和版本号的映射。
5.如权利要求1所述的一种基于SNMP协议进行网络管理的方法,其特征在于,所述的网管对功能单元的统一管理还包括绘制SNMP代理的设备视图、提供进入每个功能单元自身配套的SNMP网管系统的方式和统一的SNMP用户配置。
6.如权利要求5所述的一种基于SNMP协议进行网络管理的方法,其特征在于,提供统一的SNMP用户配置包括提供统一的视图配置、提供统一的组配置和/或提供统一的用户配置。
7.如权利要求1所述的一种基于SNMP协议进行网络管理的方法,其特征在于,SNMP代理根据SNMP报文中的用户名确定所述的报文是否加密,若加密,则用加密密钥对所述的报文进行解密。
8.如权利要求2所述的一种基于SNMP协议进行网络管理的方法,其特征在于,SNMP代理根据功能单元和SNMP代理,以及SNMP代理和网管之间的SNMP协议版本修改所述的SNMP报文。
9.一种基于SNMP协议进行网络管理的系统,包括功能单元和网管,所述的网管通过SNMP协议对所述的功能单元进行管理,其特征在于,还包括SNMP代理,所述的SNMP代理根据SNMP报文中的引擎ID或团体名,对该SNMP报文进行处理和转发,完成网管对功能单元的统一管理。
10.如权利要求9所述的一种基于SNMP协议进行网络管理的系统,其特征在于,所述的SNMP代理包括映射表,保存功能单元的引擎ID或团体名、IP地址和版本号的映射;报文接收模块,从网管或功能单元接收SNMP报文,并获取所述报文中的用户名、引擎ID或团体名;报文修改模块,根据所述报文中的引擎ID或团体名和所述的映射表中的信息修改所述的报文;报文发送模块,将修改后的报文发送到对应的功能单元或网管。
全文摘要
本发明公开了一种基于SNMP协议进行网络管理的方法和系统,所述的方法包括设置一SNMP代理,SNMP代理配置公有IP地址和私有IP地址,功能单元配置私有IP地址;SNMP代理根据SNMP报文中的引擎ID或团体名,对该SNMP报文进行处理和转发,完成网管对功能单元的统一管理。所述的系统包括功能单元和网管,所述的网管通过SNMP协议对所述的功能单元进行管理,还包括SNMP代理。通过本发明所述的方法和系统,能够对网络中的设备进行单IP的统一高效的管理。
文档编号H04L29/06GK101043361SQ20061006119
公开日2007年9月26日 申请日期2006年6月16日 优先权日2006年6月16日
发明者易剑锋, 黎静, 张国栋 申请人:华为技术有限公司