专利名称::一种简单网络管理协议配置方法及装置的制作方法
技术领域:
:本发明涉及通信
技术领域:
,尤其涉及一种简单网络管理协议配置方法及装置。
背景技术:
:随着网络技术的发展和网络影响的扩大,SNMP(SimpleNetworkManagementProtocol,简单网络管理协议)作为一种简化网络的管理和维护的服务方式,受到越来越多的关注。许多与网络相关的软件包和硬件设备,包括交换机、路由器、防火墙和网络打印机,均通过SNMP简化大型网络中设备的管理和数据的获取。SNMP是由IETF(InternetEngineeringTaskForce,互联网工程任务组)定义的一套基于SGMP(SimpleGatewayMonitorProtocol,简单网关监视协议)的网络管理协议,可以作为网络中NMS(NetworkManagementStation,网络管理站)和Agent(代理)设备之间的通信规则。NMS可以通过SNMP远程管理所有支持SNMP的Agent设备,包括监视Agent设备的网络状态、修改Agent设备的配置,以及接收来自Agent设备的网络事件警告等。SNMP通常采用默认的通信字符串获取设备信息和修改配置,该通信字符串主要包括Get(获取)命令和Set(配置)命令。其中,Set命令用于设置Agent设备的某些参数和功能,如关闭某个网络接口和修改路由器参数等,可以作为NMS向Agent设备发送设置消息的方式。通过使用Set命令的SNMPSet操作,NMS可以改变Agent设备的相关属性和运行状态,从而对Agent设备进行有效的控制。具体地,NMS向Agent设备发送SNMPSet报文,Agent设备根据接收到的Set报文进行Set操作,并根据Set操作结果向NMS返回响应报文。如果Set操作成功,Agent设备返回的响应报文中包含Set操作成功信息和配置结果,NMS将Set操作成功信息和配置结果返回给调用程序以提示用户;如果Set操作失败,Agent设备返回的响应报文中包含Set操作失败信息,NMS接收到包含Set操作失败信息的响应报文后,停止Set操作,不再向Agent设备下发数据,而是将配置结果和错误信息返回给调用程序以提示用户。需要说明的是,当SNMPSet报文中有多项内容可能导致Set操作失败时,Agent设备在发现任一项内容导致Set操作失败时,即在返回的响应报文中包含Set操作失败信息,且每次只携带导致Set操作失败的一项内容对应的错误信息。因此,现有技术方案的缺点在于,NMS在SNMPSet操作失败后,不会尝试修正引起Set操作失败的错误,而仅仅将错误信息告知用户,等待用户的下一步操作,缺乏灵活性和智能性。
发明内容本发明提供了一种SNMP配置方法及装置,用于提高SNMP配置的效率。本发明提供了一种SNMP配置方法,应用于包括网络管理站NMS和代理设备的网络系统中,所述方法包括以下步骤所述NMS向所述代理设备发送SNMP配置报文,并接收所述代理设备对所述SNMP配置报文的响应报文,其中所述SNMP配置报文中的多个配置项之间彼此相互独立、不存在业务依赖关系;所述NMS根据所述响应报文判断所述SNMP配置报文对应的配置操作是否成功,如果成功则将配置结果通知用户;否则根据所述响应报文中的错误信息修改所述SNMP配置报文中的配置项,并将所述修改后的SNMP配置报文发送到所述代理设备,直到接收到的响应报文指示配置操作成功或者所述修改后的SNMP配置报文中没有配置项。优选地,所述响应报文中的错误信息包括错误状态字段和错误索引字段,所述NMS根据响应报文中的错误信息修改SNMP配置报文中的配置项,具体包括所述NMS读取所述错误信息中的错误状态字段,判断所述错误状态是否为协议包太大,如果是,则对所述SNMP配置报文对应的协议包进行拆包处理;否则读取所述错误信息中的错误索引字段,获取错误位置索引,删除所述SNMP配置报文的变量绑定字段中与所述错误位置索引对应的配置项。优选地,所述NMS获取错误位置索引之后,还包括所述NMS存储所述错误位置索引对应的配置项和错误状态。优选地,所述NMS接收到的响应报文指示配置操作成功或者修改后的SNMP配置报文中没有配置项之后,还包括所述NMS将存储的所述错误位置索引对应的配置项和错误状态进行显示。优选地,所述NMS根据响应报文判断SNMP配置报文对应的配置操作是否成功,具体包括所述NMS读取所述响应报文中的错误状态字段,判断错误状态是否为noError,如果是,则判断所述配置操作成功;否则判断所述配置操作失败。本发明还提供了一种应用于所述方法的装置,包括收发模块、判断模块和处理模块,其中,所述收发模块,与所述判断模块电性连接,用于向代理设备发送SNMP配置报文,并接收所述代理设备对所述SNMP配置报文的响应报文,其中所述SNMP配置报文中的多个配置项之间彼此相互独立、不存在业务依赖关系;所述判断模块,与所述处理模块电性连接,用于根据所述响应报文判断所述SNMP配置报文对应的配置操作是否成功,如果成功则指示所述处理模块将配置结果通知用户;否则指示所述处理模块修改所述SNMP配置报文;所述处理模块,与所述收发模块电性连接,用于在所述判断模块判断配置操作失败时,根据所述收发模块接收到的响应报文中的错误信息修改所述SNMP配置报文中的配置项,并通知所述收发模块将所述修改后的SNMP配置报文发送到所述代理设备;在所述判断模块根据所述响应报文判断配置操作成功时,将配置结果通知用户。优选地,所述响应报文中的错误信息包括错误状态字段和错误索引字段,所述处理模块,具体用于读取所述错误信息中的错误状态字段,判断所述错误状态是否为协议包太大,如果是,对所述SNMP配置报文对应的协议包进行拆包处理;否则读取所述错误信息中的错误索引字段,获取错误位置索引,删除所述SNMP配置报文的变量绑定字段中与所述错误位置索引对应的配置项,通知所述收发模块将所述修改后的SNMP配置报文发送到所述代理设备。优选地,所述处理模块,还用于存储所述错误位置索引对应的配置项和错误状态。优选地,所述处理模块,还用于在配置操作成功时,将存储的所述错误位置索引对应的配置项和错误状态进行显示。优选地,所述判断模块,具体用于读取所述响应报文中的错误状态字段,判断错误状态是否为noError,如果是,判断所述配置操作成功;否则判断所述配置操作失败。与现有技术相比,本发明具有以下优点本发明在SNMP配置失败时,根据接收到的响应消息中的错误信息修改SNMP配置报文,并向代理设备发送修改后的SNMP配置报文,能够自动纠正SNMP配置报文中的配置项的错误,提高了SNMP配置的成功几率,简化配置操作。图1为本发明中的一种SNMP配置方法流程图;图2为本发明应用场景中的Set操作过程示意图;图3为本发明应用场景中SNMP配置流程图;图4为本发明应用场景中SNMP配置装置的结构示意图。具体实施例方式本发明提供的技术方案中,其核心思想为在SNMPSet操作失败时,NMS获取接收到的响应报文中的错误信息,根据该错误信息修改SNMP配置报文,其中所述SNMP配置报文中的多个配置项之间相互独立、不存在业务依赖关系,并将修改后的SNMP配置报文发送到代理设备,直到接收到的响应报文指示配置操作成功或者修改后的SNMP配置报文中没有配置项,从而自动纠正SNMP配置报文中的配置项的错误。下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述,如图1所示,为本发明中的一种SNMP配置方法流程图,应用于包括NMS和代理设备的网络系统中,所述方法包括以下步骤步骤101,NMS向代理设备发送SNMP配置报文,并接收代理设备对SNMP配置报文的响应报文。其中所述SNMP配置报文中的多个配置项之间相互独立、且不存在业务依赖关系。步骤102,NMS根据该响应报文判断SNMP配置报文对应的配置操作是否成功,如果配置操作成功,则执行步骤103;如果配置失败,则执行步骤104。具体地,NMS读取响应报文中的错误状态字段,判断错误状态是否为noError,如果是,则判断所述配置操作成功;否则判断所述配置操作失败。步骤103,NMS将配置结果通知用户。步骤104,NMS根据响应报文中的错误信息修改SNMP配置报文。具体地,响应报文中的错误信息包括错误状态字段和错误索引字段,NMS读取错误信息中的错误状态字段,判断错误状态是否为协议包太大(tooBig),如果错误状态为协议包太大,则对SNMP配置报文对应的协议包进行拆包处理;如果错误状态不是协议包太大,则读取错误信息中的错误索引字段,获取错误位置索引,删除SNMP配置报文的变量绑定字段中与错误位置索引对应的配置项。步骤105,NMS将修改后的SNMP配置报文发送到代理设备,直到接收到的响应报文指示配置操作成功或者修改后的SNMP配置报文中没有配置项。另外,NMS还可以存储错误位置索引对应的配置项和错误状态,供用户查看;NMS在接收到的响应报文指示配置操作成功或者修改后的SNMP配置报文中没有配置项之后,将存储的错误位置索引对应的配置项和错误状态进行显示。以下结合应用场景,对本发明中的SNMP配置方法进行详细、具体的描述。本应用场景以SNMPvlSet操作为例,需要说明的是本发明的技术方案不限于SNMPvlSet操作,同样适用于SNMPv2cSet操作和SNMPv3Set操作。另外,本发明提供的技术方案仅应用于SNMP配置报文中的多个配置项之间相互独立、不存在业务依赖关系的应用场景。如图2所示,为本发明应用场景中的Set操作过程示意图,NMS向代理设备发送SNMP配置报文1、3、5和7,代理设备向NMS返回上述SNMP配置报文对应的响应报文2、4、6、8。上述报文的内容,如表1所示。其中,VARIABLEBINDINGS(变量绑定)字段表示NMS对代理设备进行配置操作时对应的SNMP配置报文中配置项的内容,包括代理设备的一个或多个变量以及各个变量对应的配置值,例如配置项(A:a)表示将代理设备配置中的变量A配置为a;ErrorStatus(错误状态)字段表示NMS对代理设备进行配置操作的错误状态,Errorlndex(错误索引)字段表示错误状态对应的错误索引,即发生配置操作失败的配置项在VARIABLEBINDINGS字段中的位置。响应消息中的ErrorStatus字段和ErrorIndex字段只能表示单个配置项的错误信息;对于SNMP配置报文1、3、5和7而言,其包括的ErrorStatus禾口ErrorIndex这两个字段均为0。表lSNMP配置报文及对应的响应报文内容表<table>tableseeoriginaldocumentpage7</column></row><table>本发明应用场景中对于图2所示的操作过程示意图,具体的SNMP配置流程图如图3所示,包括以下步骤步骤301,NMS向代理设备发送SNMP配置报文1,并接收代理设备返回的响应报文2。需要说明的是,NMS可以存储向代理设备发送的SNMP配置报文,以便于根据后续接收到的响应报文修改该SNMP配置报文。步骤302,NMS读取响应报文2中的错误状态字段和错误索引字段,获取错误状态和错误位置索引分别为badValue(坏值)和2,则NMS将SNMP配置报文1的变量绑定字段中对应错误位置索引的第二项配置项(B:b)删除,并存储删除的配置项(B:b)和对应的错误状态badValue。对于响应报文中的变量绑定字段携带的配置项,NMS可以不进行解析和处理。步骤303,NMS根据将修改后的SNMP配置报文1作为SNMP配置报文3,并将该SNMP配置报文3发送到代理设备,并接收代理设备返回的响应报文4。步骤304,NMS读取响应报文4中的错误状态字段和错误索引字段,获取错误状态和错误位置索引分别为noSuchName(没有对应的名称)和3,则NMS将SNMP配置报文3的变量绑定字段中对应错误位置索引的第三项配置项(D:d)删除,并存储删除的配置项(D:d)和对应的错误状态noSuchName。步骤305,NMS将修改后的SNMP配置报文3作为SNMP配置报文5,并将该SNMP配置报文5发送到代理设备,接收代理设备返回的响应报文6。步骤306,NMS读取响应报文6中的错误状态字段和错误索引字段,获取错误状态和错误位置索引分别为genErr(出错)和4,则NMS将SNMP配置报文5的变量绑定字段中对应错误位置索引的第四项配置项(F:f)删除,并存储删除的配置项(F:f)和对应的错误状态genErr。步骤307,NMS将修改后的SNMP配置报文5作为SNMP配置报文7,并将该SNMP配置报文7发送到代理设备,接收代理设备返回的响应报文8。步骤308,NMS读取响应报文8中的错误状态字段,获取错误状态为noError(没有错误),将配置结果显示给用户,提示用户配置项(A:a)、(C:c)、(E:e)和(G:g)配置成功以及配置项(B:b)、(D:d)和(F:f)配置失败,并给出相应的错误状态,例如配置项(B:b),对应的错误状态为badValue;配置项(D:d),对应的错误状态为noSuchName;配置项(F:f),对应的错误状态为genErr。需要说明的是,如果接收到的响应报文继续提示配置操作失败,直到修改后的SNMP配置报文中没有配置项时,NMS不再向代理设备发送SNMP配置报文,而是将存储的错误位置索引对应的配置项和错误状态显示给用户。本发明中的NMS在SNMP配置失败后,根据接收到的响应消息中的错误信息修改SNMP配置报文,并继续向代理设备发送修改后的SNMP配置报文,能够自动纠正SNMP配置报文中的配置项的错误,使NMS具备自我容错能力,提高了SNMP配置的成功几率和NMS对于多变量绑定形式的兼容性。例如,当NMS支持多变量绑定形式为a、b、c、d的Set操作,设备A支持多变量绑定形式为a、b、c、d的Set操作,设备B支持多变量绑定形式为a、b、d的Set操作,设备C支持多变量绑定形式为a、d的Set操作时,NMS的多变量绑定Set操作可以同时成功作用于设备A、设备B和设备C,从而大大减少了NMS对于不同设备的多变量绑定形式的适配工作量。另外,NMS在修改配置项的整个过程中没有与用进行任何交互,用户仅在SNMP配置成功后查看SNMP配置的最终结果,包括出错的配置项和对应的错误状态,提高了NMS的灵活性和智能性。本发明在上述实施方式中提供了SNMP配置方法和应用场景,相应地,本发明还提供了应用上述SNMP配置方法的装置。如图4所示,为本发明应用场景中SNMP配置装置结构示意图,包括收发模块410、判断模块420和处理模块430,其中,收发模块410,与判断模块420电性连接,用于向代理设备发送SNMP配置报文,并接收所述代理设备对所述SNMP配置报文的响应报文。其中,所述SNMP配置报文中的多个配置项之间彼此相互独立、不存在业务依赖关系。判断模块420,与处理模块430电性连接,用于解析收发模块410接收到的响应报文,根据该响应报文判断所述SNMP配置报文对应的配置操作是否成功,在配置操作成功时,则指示处理模块430将配置结果通知用户;在配置操作失败时,指示处理模块430修改所述SNMP配置报文。上述判断模块420,具体用于读取所述响应报文中的错误状态字段,判断错误状态是否为noError,在所述错误状态为noError时,判断所述配置操作成功;在所述错误状态不是noError时,判断所述配置操作失败。处理模块430,与收发模块410电性连接,用于在判断模块420判断配置操作失败时,获取收发模块410接收到的响应报文中的错误信息,根据所述错误信息修改所述SNMP配置报文中的配置项,并通知收发模块410将所述修改后的SNMP配置报文发送到所述代理设备;在判断模块420根据所述响应报文判断配置操作成功时,将配置结果通知用户。其中,响应报文中的错误信息包括错误状态字段和错误索引字段,上述处理模块430,具体用于读取所述错误信息中的错误状态字段,判断所述错误状态是否为协议包太大,在所述错误状态为协议包太大时,对所述SNMP配置报文对应的协议包进行拆包处理;在所述错误状态不是协议包太大时,读取所述错误信息中的错误索引字段,获取错误位置索引,删除所述SNMP配置报文的变量绑定字段中与所述错误位置索引对应的配置项,通知收发模块410将所述修改后的SNMP配置报文发送到所述代理设备。上述处理模块430,还用于存储所述错误位置索引对应的配置项和错误状态。上述处理模块430,还用于在配置操作成功时,将存储的错误位置索引对应的配置项和错误状态进行显示。本发明在SNMP配置失败时,根据接收到的响应消息中的错误信息修改SNMP配置报文,并继续向代理设备发送修改后的SNMP配置报文,能够自动纠正SNMP配置报文中的配置项的错误,提高了SNMP配置的成功几率,简化配置操作。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。权利要求一种简单网络管理协议SNMP配置方法,应用于包括网络管理站NMS和代理设备的网络系统中,其特征在于,所述方法包括以下步骤所述NMS向所述代理设备发送SNMP配置报文,并接收所述代理设备对所述SNMP配置报文的响应报文,其中所述SNMP配置报文中的多个配置项之间彼此相互独立、不存在业务依赖关系;所述NMS根据所述响应报文判断所述SNMP配置报文对应的配置操作是否成功,如果成功则将配置结果通知用户;否则根据所述响应报文中的错误信息修改所述SNMP配置报文中的配置项,并将所述修改后的SNMP配置报文发送到所述代理设备,直到接收到的响应报文指示配置操作成功或者所述修改后的SNMP配置报文中没有配置项。2.如权利要求1所述的方法,其特征在于,所述响应报文中的错误信息包括错误状态字段和错误索引字段,所述NMS根据响应报文中的错误信息修改SNMP配置报文中的配置项,具体包括所述NMS读取所述错误信息中的错误状态字段,判断所述错误状态是否为协议包太大,如果是,则对所述SNMP配置报文对应的协议包进行拆包处理;否则读取所述错误信息中的错误索引字段,获取错误位置索引,删除所述SNMP配置报文的变量绑定字段中与所述错误位置索引对应的配置项。3.如权利要求2所述的方法,其特征在于,所述NMS获取错误位置索引之后,还包括所述NMS存储所述错误位置索引对应的配置项和错误状态。4.如权利要求3所述的方法,其特征在于,所述NMS接收到的响应报文指示配置操作成功或者修改后的SNMP配置报文中没有配置项之后,还包括所述NMS将存储的所述错误位置索引对应的配置项和错误状态进行显示。5.如权利要求2所述的方法,其特征在于,所述NMS根据响应报文判断SNMP配置报文对应的配置操作是否成功,具体包括所述NMS读取所述响应报文中的错误状态字段,判断错误状态是否为noError,如果是,则判断所述配置操作成功;否则判断所述配置操作失败。6.—种应用权利要求1所述方法的装置,其特征在于,包括收发模块、判断模块和处理模块,其中,所述收发模块,与所述判断模块电性连接,用于向代理设备发送SNMP配置报文,并接收所述代理设备对所述SNMP配置报文的响应报文,其中所述SNMP配置报文中的多个配置项之间相互独立、不存在业务依赖关系;所述判断模块,与所述处理模块电性连接,用于根据所述响应报文判断所述SNMP配置报文对应的配置操作是否成功,如果成功则指示所述处理模块将配置结果通知用户;否则指示所述处理模块修改所述SNMP配置报文;所述处理模块,与所述收发模块电性连接,用于在所述判断模块判断配置操作失败时,根据所述收发模块接收到的响应报文中的错误信息修改所述SNMP配置报文中的配置项,并通知所述收发模块将所述修改后的SNMP配置报文发送到所述代理设备;在所述判断模块根据所述响应报文判断配置操作成功时,将配置结果通知用户。7.如权利要求6所述的装置,其特征在于,所述响应报文中的错误信息包括错误状态字段和错误索引字段,所述处理模块,具体用于读取所述错误信息中的错误状态字段,判断所述错误状态是否为协议包太大,如果是,对所述SNMP配置报文对应的协议包进行拆包处理;否则读取所述错误信息中的错误索引字段,获取错误位置索引,删除所述SNMP配置报文的变量绑定字段中与所述错误位置索引对应的配置项,通知所述收发模块将所述修改后的SNMP配置报文发送到所述代理设备。8.如权利要求7所述的装置,其特征在于,所述处理模块,还用于存储所述错误位置索引对应的配置项和错误状态。9.如权利要求8所述的装置,其特征在于,所述处理模块,还用于在配置操作成功时,将存储的所述错误位置索引对应的配置项和错误状态进行显示。10.如权利要求7所述的装置,其特征在于,所述判断模块,具体用于读取所述响应报文中的错误状态字段,判断错误状态是否为noError,如果是,判断所述配置操作成功;否则判断所述配置操作失败。全文摘要本发明公开了一种简单网络管理协议SNMP配置方法及装置,应用于包括网络管理站NMS和代理设备的网络系统中,所述方法包括以下步骤所述NMS向所述代理设备发送SNMP配置报文,并接收所述代理设备对所述SNMP配置报文的响应报文,其中所述SNMP配置报文中的多个配置项之间彼此相互独立、不存在业务依赖关系;所述NMS根据所述响应报文判断所述SNMP配置报文对应的配置操作是否成功,如果成功则将配置结果通知用户;否则根据所述响应报文中的错误信息修改所述SNMP配置报文,并将所述修改后的SNMP配置报文发送到所述代理设备,直到接收到的响应报文指示配置操作成功或者所述修改后的SNMP配置报文中没有配置项。通过使用本发明,提高了SNMP配置的效率。文档编号H04L12/24GK101695028SQ20091020488公开日2010年4月14日申请日期2009年10月16日优先权日2009年10月16日发明者刘浩,班世敏,罗成申请人:杭州华三通信技术有限公司;