专利名称:多生成树协议的分布式处理系统及处理方法
技术领域:
本发明涉及路由技术,尤其涉及路由器设备的多生成树协议的分布式处理系统及处理方法。
背景技术:
随着市场需求的不断扩大,路由器在网络中的应用越来越广泛,二层应用随之产生。为了避免二层的广播风暴,需要在路由器上实现多生成树协议MSTP(Multiple Spanning Tree Protocol,简称MSTP)。
MSTP将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN(Virtual Local Area Network,虚拟局域网)数据的负载均衡。现在有的MSTP技术是基于多实例的,每个实例可以映射多个VLAN,而且要针对每个接口分别计算其状态。它沿用了生成树协议(Spanning TreeProtocol,简称STP)的状态机计算方法,要由多个状态机协调进行工作,具体的实现极其的复杂。
STP兴起时主要应用于单接口板的交换机设备上,即一个设备上只有一个处理器,这样相关处理也都是采用集中方式进行。而现在出现了大量多接口板的分布式结构路由器,每个接口板上配有处理器,业务接口既有在主控板上的,也有在接口板上的。MSTP本身也是个极其复杂的协议,要实现多个状态机协同工作,还有众多定时器不断运行。在这样的硬件体系结构上,如果把集中式的MSTP实现方式直接应用于分布式路由器,就会出现如图1所示的体系结构主控板和接口板通过主从通信总线进行通信,主控板及接口板上均有MSTP计算模块及接口管理模块,在这种体系结构下,为了能正确的计算一个接口的状态,需要各个接口板之间不断的交换接口信息。
采用传统的集中式MSTP计算方法,在主控板和接口板上分别运行状态机的运算,虽然能实现接口板的独立工作,但大大增加了接口板处理器的负担;主控板和接口板及接口板之间为了统一计算MSTP状态机的状态,要频繁的交互信息,这样给主从通信造成很大压力,而且很容易计算错误,造成灾难性的后果;MSTP本身计算复杂,而且各个运行MSTP的处理器间交互太多,所以在主备倒换时出问题的几率也会大大增加。
发明内容
本发明的目的在于针对现有技术所存在的缺陷,提供一种多生成树协议的分布式处理系统及处理方法,接口板接口状态的计算简单;减少接口板处理的负担,减轻主从通信的控制平面占用的带宽。
为了实现上述目的,本发明提供了一种多生成树协议的分布式处理系统,包括括主控板及接口板,主控板及接口板均设有远程过程调用(RemoteProcedure Calls,简称RPC)通信模块,并通过RPC通信模块进行主从通信,该主控板包括多生成树计算模块,与主控板的RCP通信模块连接,用于计算接口状态;以及接口管理模块,与主控板的RPC通信模块及多生成树计算模块连接,用于记录各接口板的接口状态;接口板包括接口管理模块,与接口板的RPC通信模块连接,用于记录所在接口板的接口状态;多生成树适配模块,与接口板的RPC通信模块及接口管理模块连接,用于设置接口状态。
主控板还可包括接口映射模块,与所述主控板的RPC通信模块及多生成树计算模块连接,用于进行虚拟接口和接口板接口的相互映射;还可包括一事件管理模块,与所述主控板的RPC通信模块及多生成树计算模块连接,用于管理外部事件,在收集到与多生成树计算模块相关的事件后通知多生成树计算模块;还可包括配置管理模块,与所述主控板的RPC通信模块、事件管理模块及多生成树计算模块连接,用于查看接口配置,并对接口板的配置进行控制。
接口板还可包括产品适配模块,通过接口板及主控板的RPC通信模块与主控板的多生成树计算模块连接,用于为主接口板的多生成树计算模块转发桥协议数据单元报文。
该系统还涉及备用主控板,该备用主控板的结构与主控板的结构相同。
为了实现上述目的,本发明还提供了一种多生成树协议的分布式处理方法,该方法包括步骤A1、主控板的多生成树计算模块计算接口板的接口状态;步骤A2、该多生成树计算模块向接口板发送状态设置消息;步骤A3、接口板根据状态设置消息,进行接口状态设置。
接口映射模块将接口板接口映射为虚拟接口,主控板的多生成树计算模块计算虚拟接口的生成树状态;如果计算结果需要进行底层接口设置,则将各虚拟接口映射为接口板接口,并向接口板接口发送状态设置消息。
多生成树计算模块在事件管理模块注册回调函数,事件管理模块收到与多生成树计算模块相关的事件后,通过回调函数通知多生成树计算模块,回调函数将事件写入事件队列中,由多生成树计算模块对事件统一进行处理,MSTP计算模块不用去底层监控外部事件,实现了对对外部事件的高效处理。
该方法还包括处理桥协议数据单元(Bridge Protocol Data Unit,简称BPDU)报文的步骤,具体包括步骤B1、接口板收到BPDU报文后,接口板的产品适配模块将该BPDU报文发送至主控板的多生成树计算模块;步骤B2、主控板的多生成树计算模块根据该BPDU报文携带的信息及内部存储的信息计算生成树状态;步骤B3、多生成树计算模块根据计算结果生成需要发送的BPDU报文,将接口号附加到需要发送的BPDU报文上发送至接口板的产品适配模块,并由产品适配模块执行具体的发送。
该方法还涉及到对主用主控板和备用主控板进行倒换的过程,具体为步骤C1、在进行倒换前,对备用主控板执行与主用主控板相同的配置;步骤C2、在启用主备倒换时,备用主控板上启动多生成树计算任务,根据已经有的配置和接收到的其他设备的报文计算生成树状态。
在主备板倒换过程中,只根据各个配置参数及收到的BPDU报文进行生成树计算,计算过程中不去对底层接口状态进行设置,因此整个设备的流量不会因MSTP计算而中断,这种简单的主备倒换实现方式,可以绕过很多复杂的流程,出问题的几率也会大大降低。
本发明只在主控板执行MSTP计算,然后通过通信模块来下发接口板上接口的状态,使接口板接口状态的计算简单,减少了接口板处理的负担,可有效减轻主从通信的控制平面占用的带宽;通过使用注册回调函数通报事件机制感知整个设备的链路状态变化,然后触发主控板上的MSTP计算模块运算,从而MSTP计算模块不用去底层监控外部事件,实现了对外部事件的高效处理,并且模块的划分清晰;主备倒换期间不进行底层接口状态的改变,备用主控板变成主用主控板后,根据收到的一两个报文进行状态机的平滑过渡,这样整个设备的流量不会因MSTP计算而中断,用简单的方式实现了复杂的功能。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为现有技术中的分布式处理系统结构示意图;图2为本发明的多生成树协议的分布式处理系统结构示意图;图3为本发明的多生成树协议的分布式处理方法流程图;图4为本发明的主控板一具体实施例结构示意图;图5为本发明的多生成树协议的分布式处理方法一具体实施例流程图;
图6为本发明的报文处理的方法流程图;图7为本发明的多生成树协议的分布式处理系统一具体实施例结构示意图;图8为本发明的多生成树协议的分布式处理系统另一具体实施例结构示意图;图9为本发明的主备板倒换处理方法流程图。
具体实施例方式
本发明的多生成树协议的分布式处理系统只在主控板上进行多生成树状态的计算,并通过通信模块将接口状态下发至接口板,每个接口板不需进行接口状态的计算,从而可以大大减少接口板处理器的负担,并可避免主控板和接口板及接口板之间为了统一计算MSTP状态的频繁信息交互。
如图2所示,为本发明的多生成树协议的分布式处理系统结构示意图,包括主控板1及至少一个接口板2。主控板1设有RPC通信模块11,MSTP计算模块12以及接口管理模块13。MSTP计算模块12以及接口管理模块13均与RPC通信模块11连接,接口管理模块13与MSTP计算模块12连接。MSTP计算模块12用于计算接口板的接口状态;接口管理模块13用于记录各接口板的接口状态。接口板2设有RPC通信模块21、MSTP适配模块22及接口管理模块23。MSTP适配模块22及接口管理模块23均与RPC通信模块21连接,MSTP适配模块22与接口管理模块23连接。接口管理模块23用于记录所在接口板的接口状态,MSTP适配模块22用于根据主控板1的MSTP计算结果设置接口板的接口状态。主控板1和接口板2通过RPC通信模块11及21进行主从通信。
在这种分布式情况下,在对接口板2的接口状态进行管理时,由主控板1的MSTP计算模块12计算各接口的状态并通知各接口板2。如图3所示,为本发明的多生成树协议的处理方法流程图,包括
步骤A1、主控板的MSTP计算模块计算接口板的接口状态;步骤A2、将携带有接口板的接口状态的状态设置消息发送至接口板,通知接口板进行接口状态设置;步骤A3、接口板根据状态设置消息,进行接口状态设置。
为了便于主控板MSTP计算模块对各接口的控制,随时掌握各接口板的接口状态,在步骤A3中,接口板进行状态设置后,可将设置结果返回主控板的MSTP计算模块。
在执行步骤A1计算接口状态前,可先将接口板上的接口都映射为主控板上的虚拟接口,这时,主控板上的MSTP计算模块会把这些接口板接口都当作本板上的接口,无论是对接口状态的计算,还是对计算结果的设置,都直接操作这些虚拟接口,不必去关心这些虚拟接口具体在哪个板上;因此需要加入一个接口映射模块,用于实现虚拟接口到接口板上接口的转换。
如图4所示,为主控板一具体实施例结构示意图,在本实施例中,加入了接口映射模块14,该模块与RPC通信模块11及MSTP计算模块12连接,用于进行虚拟接口和接口板接口的转换。接口映射模块14将接口板接口映射为虚拟接口,并发送至MSTP计算模块12;MSTP计算模块12完成虚拟接口的状态计算后,将接口状态返回接口映射模块14,由该模块将虚拟接口翻译成对应的接口板的第几卡上的第几个接口。
如图5所示,为本发明的多生成树协议的分布式处理方法一具体实施例流程图,包括步骤101、接口映射模块将接口板接口转换为虚拟接口,接口板上的所有参加MSTP计算的虚拟接口在主控板进行一次性状态计算,MSTP计算模块将虚拟接口的生成树状态计算后保存在主控板上。
生成树状态包括转发(forwarding),丢弃(discarding)或学习(learning)。
步骤102、MSTP计算模块把这些接口状态转发给接口映射模块,由接口映射模块将虚拟接口翻译成对应的接口板的第几卡上的第几个接口,给主控板上的RPC通信模块发送消息。
步骤103、主控板上的RPC通信模块,将收到的消息进行封装,通过RPC通信模块发送到对应接口板上进行处理。
步骤104、接口板上的RPC通信模块收到这个消息后,将报文头去掉后,找到相关的消息类型,发现是MSTP用来设置接口状态的,然后再将消息交由MSTP适配模块进行处理。
步骤105、MSTP适配模块和接口管理模块将对应接口的状态进行设置,最后将设置结果返回RPC通信模块;步骤106、接口板的RPC通信模块将设置结果返回到主控板MSTP计算模块。
采用这种虚拟接口的方式,对接口板上的接口的计算不需分布到各个接口板上去单独进行,这样就不需分别在各个接口板上运行MSTP计算,可以大大减小接口板的负担,并且可有效避免主控板和接口板及接口板之间为统一计算MSTP状态而进行的频繁信息交互。
在系统运行过程中,MSTP计算模块需要对外部事件进行处理,因此在主控板一具体实施例中,还包括事件管理模块,该模块用于管理外部事件。MSTP计算模块在事件管理模块注册回调函数,事件管理模块收集到和MSTP相关的事件,直接通知MSTP计算模块,不用MSTP计算模块再专门到底层去监控各个事件。对于事件管理模块通告的事件,在MSTP计算模块的回调函数里处理,该处理只是把各事件写到MSTP的事件队列中去,然后由MSTP计算模块统一进行处理,这样减少了事件管理模块的处理负担,有利于问题的定位。采用事件管理模块统一进行事件管理,加上虚拟接口管理方式,可以很好的避免接口板和主控板间交互信息量太大的问题。
对于MSTP计算模块来说,接受的外部事件主要有三类管理员对MSTP参数进行设置;从产品适配收到BPDU报文及链路状态发生变化。这些事件的产生都会影响MSTP计算。在主控板中,可利用配置管理模块,该模块与事件管理模块及多生成树计算模块连接,用户通过该配置管理模块进行配置控制操作。用户可通过命令行接口(Command Line Interface,简称CLI)和简单网络管理协议(Simple Network Management Protocol,SNMP)进行配置管理,由于只是在用户进行操作的时候才对MSTP产生影响,所以这部分的处理是如果命令只在主控板上起作用,则在主控板上更改相应配置;接口板就不用处理了,如果命令涉及到接口板的配置,则和设置接口状态执行相似的流程。
在接口板中,可加入产品适配模块,该模块通过接口板及主控板的RPC模块与主控板的MSTP计算模块连接,用于为MSTP计算模块转发BPDU报文。各系统通过报文传递信息,接口板接收到其他系统发送的BPDU报文后,由产品适配模块转发给主控板的MSTP计算模块处理;MSTP计算模块生成需要发送的BPDU报文后,也发送至产品适配模块,并又该产品适配模块发送至相应的目的系统。如图6所示,为报文处理流程图,包括步骤B1、接口板收到其他系统发送的BPDU报文后,接口板的产品适配模块将该BPDU报文发送至主控板的MSTP计算模块;步骤B2、主控板的MSTP计算模块根据该BPDU报文携带的信息及内部存储的信息计算生成树状态;步骤B3、主控板的MSTP计算模块将携带有接口板的接口状态的状态设置消息发送至接口板;步骤B4、MSTP计算模块根据计算结果生成需要发送的BPDU报文,将接口号附加到该BPDU报文上发送至接口板的产品适配模块,并由产品适配模块执行具体的发送,将BPDU报文发至相应的目的系统。如图7所示,为多生成树协议的分布式处理系统一具体实施例结构示意图,主控板1包括RPC通信模块11、MSTP计算模块12、接口管理模块13、接口映射模块14、事件管理模块15及配置管理模块16;RPC通信模块11与MSTP计算模块12连接;接口管理模块13、接口映射模块14、事件管理模块15及配置管理模块16均与RPC通信模块11及MSTP计算模块12连接;事件管理模块15与配置管理模块16连接。接口板2包括RPC通信模块21、MSTP适配模块22、接口管理模块23及产品适配模块24,MSTP适配模块22、接口管理模块23及产品适配模块24均与RPC通信模块21连接,MSTP适配模块22还与接口管理模块23及产品适配模块24连接。
为了保证系统的可靠性,要在系统中设置备用主控板,如图8所示,为多生成树协议的分布式处理系统另一具体实施例结构示意图,该系统涉及两个主控板,即主用主控板1a和备用主控板1b,还包括两个接口板2,两个接口板2通过主从通信方式与主用主控板1a和备用主控板1b通信。在正常情况下,主用主控板1a工作;当主用主控板1a发生故障时,进行主备板倒换,备用主控板1b代替主用主控板1a工作。由于在前面已对主控板及接口板的结构进行了详细的说明,此处不再赘述。下面对主控板发生故障时的主备板倒换处理方法进行说明。
在系统运行过程中,主控板的MSTP计算模块一直在计算生成树状态,但在许多情况下,计算结果是相同的,接口的状态并没有改变,因此并不需要重新设置接口状态。从而,在得到计算结果后,MSTP计算模块可判断计算得到的接口状态是否有变化,并且只在接口状态是否有变化时,才将包含接口状态的状态设置消息发送至接口板。
MSTP计算是路由器功能的一部分,在主备倒换时,不能因为MSTP的计算时间过长而导致用户流量中断过久,如图9所示,为主备板倒换处理方法流程图,包括步骤C1、在进行倒换前,在备用主控板上执行与主用主控板相同的设置;在设置时,过渡到备用主控板;采用批量备份和平滑的方式将将主控板的MSTP参数过渡到备用主控板上去。
步骤C2、在进行主备倒换时,在备用主控板上启动MSTP计算任务,备用主控板根据已经有的配置和接收到的其他设备的BPDU报文计算生成树状态。
在主备倒换时,直接让备用主控板上的状态机根据收到的前几个报文对各个接口的状态进行计算,因为收到的报文和原主用主控板上的是一样的,参数的配置也是一样的,所以对接口状态的计算结果也是一样,这样备用主控板变成主用主控板后,会很快的进入MSTP状态机的正常运行中去。
为了让数据流不间断的进行,MSTP在主备倒换期间不对设备的底层接口状态进行设置,并且这种简单的主备倒换实现方式,可以绕过很多复杂的流程,出问题的几率也会大大降低。
本发明只在主控板执行MSTP计算,然后通过RPC通信模块来下发接口板上接口的状态,使接口板接口状态的计算简单,减少了接口板处理的负担,可有效减轻主从通信的控制平面占用的带宽;通过注册回调函数通报事件感知整个设备的链路状态变化,然后触发主控板上的MSTP计算模块运算,从而MSTP计算模块不用去底层监控外部事件,实现了对外部事件的高效处理,并且模块的划分清晰;主备倒换期间不进行接口状态的改变,备用主控板变成主用主控板后,根据收到的一两个报文进行状态机的平滑过渡,这样整个设备的流量不会因MSTP计算而中断,用简单的方式实现了复杂的功能。
最后应当说明的是以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解,依然可以对本发明的具体实施方式
进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1.一种多生成树协议的分布式处理系统,涉及到主控板及接口板,主控板及接口板均设有RPC通信模块,并通过RPC通信模块进行主从通信,其特征在于该主控板包括多生成树计算模块,与主控板的RPC通信模块连接,用于计算接口板的接口状态;以及接口管理模块,与主控板的RPC通信模块及多生成树计算模块连接,用于记录所述的接口状态,并为所述的多生成树计算模块提供计算过程中所需要的各种接口参数;接口板包括接口管理模块,用于记录接口板的接口状态;多生成树适配模块,与所述接口管理模块连接,用于设置接口状态。
2.根据权利要求1所述的多生成树协议的分布式处理系统,其特征在于,所述主控板还包括接口映射模块,与所述主控板的RPC模块及多生成树计算模块连接,用于进行主控板的虚拟接口和接口板接口的相互映射。
3.根据权利要求1所述的多生成树协议的分布式处理系统,其特征在于,所述主控板还包括事件管理模块,与所述主控板的RPC通信模块及多生成树计算模块连接,用于管理外部事件,在收集到与多生成树计算模块相关的事件后通知多生成树计算模块。
4.根据权利要求3所述的多生成树协议的分布式处理系统,其特征在于,所述主控板还包括配置管理模块,与所述主控板的RPC通信模块、事件管理模块及多生成树计算模块连接,用于查看接口配置,并对接口板的配置进行控制。
5.根据权利要求1所述的多生成树协议的分布式处理系统,其特征在于,所述接口板还包括产品适配模块,通过所述接口板的及主控板的RPC通信模块与主控板的多生成树状态计算模块连接,用于为多生成树状态计算模块转发桥协议数据单元报文。
6.一种多生成树协议的分布式处理方法,其特征在于,该方法包括步骤A1、主控板的多生成树计算模块计算接口板的接口状态;步骤A2、将包含接口状态的状态设置消息发送至接口板;步骤A3、接口板根据状态设置消息,进行接口状态设置。
7.根据权利要求6所述的多生成树协议的分布式处理方法,其特征在于,所述步骤A1之前还包括接口映射模块将接口板接口映射为主控板的虚拟接口,所述步骤A1中,主控板的多生成树计算模块计算所述的虚拟接口的生成树状态。
8.根据权利要求7所述的多生成树协议的分布式处理方法,其特征在于,所述步骤A2具体为将虚拟接口的生成树状态发送至接口映射模块,接口映射模块将各虚拟接口映射为接口板接口,并向接口板接口发送状态设置消息。
9.根据权利要求6所述的多生成树协议的分布式处理方法,其特征在于,该方法还包括在事件管理模块注册回调函数,通过回调函数通知多生成树计算模块,回调函数将事件写入事件队列中,由多生成树计算模块对事件统一进行处理。
10.根据权利要求6所述的多生成树协议的分布式处理方法,其特征在于,在所述步骤A1之前还包括接口板收到桥协议数据单元报文后,接口板的产品适配模块将该桥协议数据单元报文发送至主控板的多生成树计算模块;所述步骤A1具体为,主控板的多生成树计算模块根据桥协议数据单元报文携带的信息及内部存储的信息计算接口板的接口状态;在所述步骤A3之后还包括多生成树计算模块根据计算结果生成需要发送的桥协议数据单元报文,将接口号附加到该需要发送的桥协议数据单元报文上发送至接口板的产品适配模块,并由产品适配模块执行具体发送。
11.根据权利要求6-10任一所述的多生成树协议的分布式处理方法,其特征在于,所述步骤A2具体为在接口状态是有变化时,将包含接口状态的状态设置消息发送至接口板。
12.根据权利要求6-10任一所述的多生成树协议的分布式处理方法,其特征在于,该方法还包括对主用主控板和备用主控板进行倒换的步骤,具体为步骤C1、在进行倒换前,对备用主控板执行与主用主控板相同的配置;步骤C2、在启用倒换时,在备用主控板上启动多生成树计算任务,备用主控板根据配置和接收到的其他设备的报文计算生成树状态。
13.根据权利要求6-10任一所述的多生成树协议的分布式处理方法,其特征在于,所述步骤A3中,接口板进行接口状态设置后将设置结果返回主控板。
全文摘要
本发明涉及一种多生成树协议的分布式处理系统,包括主控板和接口板,主控板包括多生成树计算模块及接口管理模块;接口板包括接口管理模块及多生成树适配模块。还涉及一种多生成树协议的分布式处理方法,主控板的多生成树计算模块计算接口板接口状态,向接口板发送状态设置消息,接口板根据状态设置消息,进行接口状态设置,并将设置结果返回主控板。本发明的接口板接口状态的计算简单,减少了接口板处理的负担,也可有效减轻控制平面在主从通信上的占用的带宽;通过使用注册回调函数通报事件机制感知整个设备的链路状态变化,实现了对外部事件的高效处理;主备板倒换操作简单,在倒换过程中,系统流量不会因MSTP计算而中断。
文档编号H04L12/40GK1905508SQ200610099200
公开日2007年1月31日 申请日期2006年8月2日 优先权日2006年8月2日
发明者汪河川 申请人:华为技术有限公司