具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例一
一种报文处理方法,本方法实施例的方法应用于如图1所示的防火墙系统,包括线路处理板和业务处理板,且一个业务处理板(如第一业务处理板)会根据该业务处理板的备份算法将该业务板上的会话备份到其他业务处理板上,例如:第一业务处理板上的会话可以根据第一业务处理板的备份算法被备份到第二业务处理板上。本发明实施例的一种报文处理方法的流程图如图2所示,该方法包括:
步骤101、线路处理板确定处理会话中报文的第一业务处理板异常;
线路处理板在接收到报文后,按照第一算法确定处理该报文的业务处理板,具体的,可以根据报文中目的地址和源地址进行哈希运算,并根据计算的哈希值确定处理该报文的业务处理板如第一业务处理板;并将该报文发送给第一业务处理板,在第一业务处理板上建立会话,并储存会话表,会话表中包括该报文的源地址和目的地址等信息。
当线路处理板接收到另一个报文后,如果目的地址和源地址与上述报文中的一致,则说明这另一个报文是属于上述建立的会话中的报文,则将这另一个报文发送给第一业务处理板进行处理。
当线路处理板发送报文给第一业务处理板失败时,或检测到第一业务处理板不能接收报文时,可以确定第一业务处理板异常。而第一业务处理板异常包括第一业务处理板的板卡处于重启状态、注册状态、已经被拔出状态或是发生故障导致板卡在位异常等情况。
步骤102、线路处理板通过第二算法确定处理会话中报文的第二业务处理板;第二算法是第一业务处理板确定备份会话的第二业务处理板的算法;
具体的,在实际应用中,为了防止第一业务处理板在处理业务过程中发生故障时,导致会话中断,当第一业务处理板接收到线路处理板的报文,并根据报文建立了相应会话后可以按照第二算法确定备份该会话的第二业务处理板,并将会话备份到第二业务处理板上。因此,当线路处理板确定第一业务处理板异常时,可以通过第二算法确定处理会话中报文的第二业务处理板。
其中,第二算法包括但不限于在第一业务处理板不在位条件下,根据报文的源地址和目的地址进行的哈希算法。算法本身的内容并不构成对本发明的限制。
步骤103、线路处理板将会话中报文发送给第二业务处理板进行处理。
可见,本发明实施例中的报文处理方法包括:当确定处理会话中报文的第一业务处理板异常;通过第二算法确定处理会话中报文的第二业务处理板;该第二算法是第一业务处理板确定备份会话的第二业务处理板的算法;并将会话中报文发送给第二业务处理板进行处理。这样使得在其中一个业务处理板异常时,线路处理板可以按照与该异常的业务处理板进行备份会话时同样的算法,找到备份该异常业务处理板上会话的其它业务处理板,这样会话中的报文可以在备份的业务处理板上得到继续处理,使得在业务处理板发生故障时,能保证业务的正常处理,从而提高了设备的可靠性。
在一个具体的实施例中,参考图3a所示,线路处理板在上述步骤102中通过第二算法确定处理会话中报文的第二业务处理板时,可以通过如下步骤实现:
A1、根据会话中报文的源地址和目的地址进行哈希运算(如进行异或运算)得到第一哈希值;
B1、在第一业务处理板不在位条件下,获取哈希值与业务处理板的第二对应关系;
C1、在第二对应关系中查找第一哈希值对应的第二业务处理板。
例如:防火墙系统中有3块业务处理板,根据预设的第二算法确定1号板的某个会话备份于2号板上。当线路处理板接收到该会话中的第一报文,确定处理第一报文的业务处理板为1号板,若此时1号板发生异常,则线路处理板可以根据预设的第二算法确定处理该报文的业务处理板。具体的,若第一报文中的源地址和目的地址分别为:202.121.100.2和219.100.1.243,则线路处理板可以将该报文的源地址及目的地址共64bit做异或运算,异或运算时高位和低位进行异或,最终可以得到一个8位的数值为10011000,转换成十进制就是152,则152即为第一哈希值。
线路处理板可以在1号板不在位条件下,获取哈希值与业务处理板的第二对应关系,并在第二对应关系中查找第一哈希值对应的第二业务处理板。
具体地,线路处理板可以根据1号板不在位的情况构造哈希散列表,表的大小为256,然后把正常运行的2号和3号业务块处理板按照2、3的序列填入到这个散列表中得到第二对应关系,并在第二对应关系中查找到与第一哈希值152对应的业务处理板,例如为2号板。
进一步的,在另一个具体的实施例中,参考图3b所示,如果第一业务处理板在一定时间内还没有恢复正常,报文处理方法还包括如下的步骤:
A2、线路处理板确定第一业务处理板异常的时间超过预置的时间,则执行步骤B2;
B2、将确定处理新报文的业务处理板的算法调整为第三算法,第三算法包括在第一业务处理板不在位条件下根据新报文的源地址和目的地址进行的哈希算法。
可以理解,在第一业务处理板异常超过预置的时间,则认为第一业务处理板无法恢复正常,这里预置的时间可以根据第一业务处理板启动的时间来设定,一般情况下设定为启动时间的3倍。由于在第一业务处理板上备份了其他业务处理板的会话,为了防止其它业务处理板在故障时,业务中断,则需要根据第三算法来调整其它正常的业务处理板上的会话分布,同时调整线路处理板上的算法。
比如3号板的会话按照3号板之前的备份算法,本来是备份到1号板上的,此时,如果1号板故障且超过一定时间,为了防止3号板在故障时,业务中断,则3号板需要根据第三算法重新备份其会话,该第三算法为线路处理板在1号业务板故障无法恢复情况下确定处理新报文的业务处理板时使用的算法,包括线路处理板在1号业务板不在位的情况下根据新报文的源地址和目的地址进行的哈希运算。例如,3号板可以在1号板不在位的情况下,根据本地会话表中的源地址和目的地址进行的哈希运算,确定另一业务处理板(例如4号板),并将其本地会话备份到4号业务板上。
在重新分布了业务处理板上的会话后,相应地调整线路处理板上的算法,即对确定处理新报文的业务处理板的算法进行调整;且使得在某一业务处理板异常时,确定处理新报文的业务处理板的算法与在正常的业务处理中该业务处理板备份本地会话到另一业务处理板的算法一致。这样在一个业务处理板异常时间超过一定时间时,异常业务处理板上的会话能及时进行备份,线路处理板也能正确地找到处理新报文的其他业务处理板,并保证业务正常运行。
需要说明的是,上述第一、第二业务处理板,及下面文中提到的第三、第四业务处理板并不是表示顺序的关系,而是表示不同的业务处理板。
方法实施例二
一种报文处理方法,本方法实施例的方法应用于如图1所示的防火墙系统,包括线路处理板和业务处理板,流程图如图4a所示,包括:
步骤201、第一业务处理板接收线路处理板发送的报文,进行会话的建立;
在建立会话时,可以建立新的会话表,包括报文的源地址、目的地址、源端口、目的端口、协议类型等信息。
步骤202、第一业务处理板按照第二算法确定备份会话的第二业务处理板;第二算法包括在第一业务处理板不在位条件下根据报文的源地址和目的地址进行的哈希Hash运算;
步骤203、将报文发送给第二业务处理板进行会话的备份。
可见,本实施例中的报文处理方法包括第一业务处理板接收到报文,建立会话,并按照第二算法确定备份该会话的第二业务处理板,将该报文发送给第二业务处理板进行会话的备份,其中第二算法可以包括第一业务处理板不在位条件下根据报文的源地址和目的地址进行的Hash运算。这样使得第一业务处理板上建立的会话可以备份到其他业务处理板上,在第一业务处理板异常时,可以将会话的业务转到其他业务处理板上进行处理,保证了业务的正常进行,提高了设备的可靠性。
参考图4b所示,在一个具体的实施例中,报文处理方法还包括第一业务处理板对其他业务处理板上会话的备份,具体包括如下步骤:
步骤204、第一业务处理板接收第三业务处理板发送的报文,根据第三业务处理板发送的报文建立会话,即进行备份;
步骤205、当确定第三业务处理板异常,且异常时间超过预置的时间时,第一业务处理板按照第三算法分布本地会话,并相应地调整线路处理板上的算法;第三算法是线路处理板确定处理新报文的业务处理板的算法;
具体的,当第一业务处理板检测到第三业务处理板不能发送报文,或接收不到第三业务处理板发送的报文时,可以确定第三业务处理板异常。其中,第三业务处理板异常包括第三业务处理板的板卡处于重启状态、注册状态、已经被拔出状态或是发生故障导致板卡在位异常等情况。
预置的时间可以根据第三业务处理板的启动时间进行设置,一般情况下可以设置为第三业务处理板启动时间的3倍,当异常时间超过预置的时间,则认为第三业务处理板无法恢复正常。
这里,第三算法可以包括第三业务处理板不在位条件下根据本地会话表中的源地址和目的地址进行的哈希Hash运算,也可以是其它的算法,并不能造成对本发明的限制,只需要与线路处理板确定处理新报文的业务处理板的算法一致。
例如:在第一业务处理板上有3个本地会话1、2和3;对应的源地址、目的地址分别为A、B和C;在第三业务处理板不在位条件下分别根据A、B、C进行的哈希运算后,得到的业务处理板号分别为2、1和4。则第一业务处理板将本地会话1重新分布到第二业务处理板,并将本地会话3重新分布到第四业务处理板上。另外,在会话重新分布时,第一业务处理板还需要备份其他业务处理板上的会话。
在重新分布会话后,本实施例的方法还可以对重新分布后的本地会话进行备份,具体包括:
步骤206、第一业务处理板通过第四算法确定用于备份分布后的本地会话的第四业务处理板;第四算法包括在第一业务处理板和第三业务处理板不在位条件下根据分布后的本地会话表中的源地址和目的地址进行的哈希Hash运算;
步骤207、第一业务处理板将分布后的本地会话备份到第四业务处理板。
可以理解,第一业务处理板可以备份其他业务处理板(如第三业务处理板)上的会话,当第三业务处理板异常的时间超过预置的时间时,可以在重新分布会话后,将分布后的本地会话再备份到其他业务处理板上,这样为业务处理可靠性提供了保障。
可以理解,在第一业务处理板将分布后的本地会话重新分布到第四业务处理板后,第四业务处理板会将该会话按照其备份算法重新备份,则此时,可能出现在2个以上的业务处理板上有相同的会话的情况出现,即出现冗余会话,需要对冗余会话进行加速老化,以减少冗余会话占用的资源。
例如,某会话之前分布在第三业务处理板上时,第三业务处理板会将该会话进行备份,例如备份到第一业务处理板,当第三业务处理板出现异常且长时间不能恢复时,原备份于第一业务板上的该会话可能被重新分布到第四业务处理板上,第四业务处理板又会将该会话进行备份,例如备份到第二业务处理板,则此时,可能在第一业务处理板、第四业务处理板和第二业务处理板上均出现了相同的会话,此时,第一业务处理板可以通过对冗余会话进行加速老化,以减少冗余会话占用的资源。需要说明的是,上述第一业务处理板并没有将业务处理板限定为一个固定的业务处理板,其可以代表任意一个业务处理板。
方法实施例三
一种报文处理方法,本实施例中以一个具体的防火墙系统为例进行说明,该系统的结构图如图1所示,流程图如图5所示,包括:
步骤301、报文a达到线路处理板LPU的时候,LPU根据报文a中的源IP、目的网络协议(IP)地址进行Hash计算得到H1值,并在业务处理板SPU1在位的条件下得到哈希值与业务处理板的第一对应关系,确定H1值对应的第一业务处理板SPU1处理该报文a,并将报文a发送给SPU1。
具体的,在得到第一对应关系时,LPU可以先构建Hash散列表,并将系统中的所有业务处理板按1、2、3...的顺序填到列表中,即得到了第一对应关系。
步骤302、SPU1根据报文a的源IP地址、目的IP地址、源端口、目的端口以及协议类型建立会话表。
步骤303、SPU1根据报文a的源IP地址、目的IP地址进行Hash计算得到H1值,在SPU1不在位的条件下得到哈希值与业务处理板的第二对应关系,确定H1对应的第二业务处理板SPU2处理该报文a,并将在SPU1上根据报文a建立的会话表备份到SPU2。
步骤304、SPU2根据SPU1上备份过来的会话表,建立新的会话。
步骤305、报文b到达LPU,LPU通过Hash计算得到H1值,并确定第一业务处理板SPU1处理该报文b,并将报文b发送给SPU1。
如果LPU确定SPU1由于故障导致板卡在位异常,则LPU会在SPU1不在位的条件下得到哈希值与业务处理板的第二对应关系,即将系统中的除SPU1之外的业务处理板按其各自的序号填到构建的散列表中,得到第二对应关系;并根据报文b的源IP地址、目的IP地址进行Hash计算得到H1值,确定将报文b发送给SPU2进行处理。
步骤306、如果确定SPU1异常的时间超过预置的时间,认为SPU1无法恢复正常,则按照SPU1不在位条件下根据本地会话表中报文的源IP地址、目的地址进行的哈希运算,在SPU2到SPUN(其中,N为自然数,代表业务处理板的序号。)上对会话进行重新分布,同时调整LPU上的算法:
在进行会话的重新分布时,SPU2到SPUN将各自板上的会话重新备份到相应的业务处理板上,例如:SPU2在SPU1不在位条件下得到哈希值与业务处理板的第三对应关系,并根据第三对应关系及SPU2上建立会话的会话表中会话的源地址、目的地址得到:将会话m分布到SPU3,将会话n分布到SPU4上,则SPU2将会话m备份到SPU3上,将会话n备份到SPU4上;
在调整LPU的算法时,将接收到新报文,确定处理新报文的业务处理板的算法调整为:SPU1不在位条件下根据新报文的源IP地址和目的IP地址进行哈希运算。并将某一业务处理板异常时确定处理新报文的业务处理板的算法调整为:SPU1和该某一业务处理板不在位条件下根据新报文的源地址和目的地址进行的哈希运算。
步骤307、SPU2到SPUN将重新分布后的本地会话进行备份,在进行会话备份后,对产生的冗余会话进行加速老化,此部分会话的老化时间调整为10秒左右,保证资源的最小占用。
在会话重新分布时,在SPU2到SPUN可能会将会话重复备份到其他业务处理板,而在对分布后的会话备份后,这样就是出现在两个以上的业务处理板上有相同的会话即出现会话的冗余,则需要将冗余会话进行加速老化,比如:SPU1上的一个会话根据SPU1上的备份算法会备份到SPU2上,当工作过程中确定SPU1出现异常后无法恢复正常时,需要将会话进行重新分布,在会话进行重新分布时,SPU2将会话m、n分别重新分布到SPU3和SPU4上,而在对重新分布后会话进行备份时,会将SPU3和SPU4上重新分布的会话m、n分别备份SPU5和SPU6上,则会话m、n不会在SPU2上用到,SPU2上的会话m、n为冗余会话,需要进行老化处理。
在进行老化处理时,可以将冗余的会话进行删除,或放入老化文件中等。
步骤308、在进行冗余会话的老化之后,重复上述步骤304到307,进入下一轮的会话备份流程。
可见,本实施例中的报文处理方法包括:当LPU确定处理报文b的SPU1异常;通过第二算法确定处理报文b的SPU2;该第二算法是SPU1确定备份会话的SPU2的算法;并将报文b发送给SPU2进行处理。这样使得在SPU1异常时,LPU可以按照与SPU1进行备份会话时同样的算法找到备份该异常业务处理板上会话的其它业务处理板,这样报文在备份的业务处理板SPU2上处理,使得在SPU1发生故障时,能保证其业务在SPU2上继续处理,从而提高了设备的可靠性。
另外,当某一业务处理板的异常时间超过一定的时间后,对正常运行的业务处理板上的会话进行重新分布,使得异常的业务处理板上的会话及时备份到其他的业务处理板上,及时地形成业务可靠性的保证。
设备实施例一
一种线路处理板,结构示意图如图6所示,包括:
异常确定单元10,用于确定处理会话中报文的第一业务处理板异常;
当线路处理板发送报文给第一业务处理板失败时,或检测到第一业务处理板不能接收报文时,异常确定单元10可以确定第一业务处理板异常。而第一业务处理板异常包括该第一业务处理板的板卡处于重启状态、注册状态、已经被拔出状态、发生故障导致板卡在位异常等情况。
处理板确定单元11,用于当异常确定单元10确定第一业务处理板异常后,通过第二算法确定处理会话中报文的第二业务处理板;第二算法是第一业务处理板确定备份会话的第二业务处理板的算法;
第二算法包括在第一业务处理板不在位条件下并根据报文的源地址和目的地址进行的哈希运算,也可以是其它的算法,算法本身的内容并不构成对本发明的限制。
报文处理单元12,用于将会话中报文发送给处理板确定单元11确定的第二业务处理板进行处理。
在其它的实施例中,线路处理板还可以包括:
确定调整单元13,用于确定第一业务处理板异常的时间超过预置的时间,将确定处理新报文的业务处理板的算法调整为第三算法,第三算法包括在第一业务处理板不在位条件下根据新报文的源地址和目的地址进行的哈希运算。
这里预置的时间可以根据第一业务处理板启动的时间来设定,一般情况下设定为启动时间的3倍,则认为第一业务处理板无法恢复正常,则确定调整单元13调整线路处理板上的会话,将确定处理新报文的业务处理板的算法进行调整;还可以使得在确定某一处理板异常时确定处理新报文的业务处理板的算法,与在正常的业务处理板中某一业务处理板备份本地会话到另一业务处理板的算法一致。
参考图7所示,在另一个具体的实施例中,线路处理板中的处理板确定单元11可以包括:
哈希值获得子单元110,用于根据会话中报文的源地址和目的地址进行哈希Hash算法得到第一哈希值;
哈希值获得子单元110可以将会话中报文的源目的地址做异或运算,异或运算时高位和低位进行异或得到一个哈希值。
查找子单元111,用于在第一业务处理板不在位条件下,获取哈希值与业务处理板的第二对应关系,并在第二对应关系中查找哈希值获得子单元110获得的第一哈希值对应的第二业务处理板。
查找子单元111可以构造哈希散列表,然后把正常运行的业务块处理板按照2、3....的序列填入到哈希散列表中得到第二对应关系;并在第二对应关系中查找到第一哈希值对应的业务处理板。
本发明实施例的新路处理板中,当异常确定单元10确定处理会话中报文的第一业务处理板异常时,处理板确定单元11可以通过第二算法确定处理该会话中报文的第二业务处理板,该第二算法是第一业务处理板确定备份会话的第二业务处理板的算法,并由报文处理单元12将会话中报文发送给第二业务处理板进行处理。这样使得在其中一个业务处理板异常时,线路处理板可以按照与该异常的业务处理板进行备份会话时同样的算法,找到备份该异常业务处理板上会话的其它业务处理板,使报文在备份的业务处理板上得到处理,从而使得在业务处理板发生故障时,能保证业务的正常处理,提高了设备的可靠性。
进一步的,线路处理板还可以通过确定调整单元13使得在一个业务处理板异常时间超过一定时间时,线路处理板能正确地找到处理新报文的其他业务处理板,并保证业务正常运行。
设备实施例二
一种业务处理板,结构示意图如图8所示,包括:
会话建立单元20,用于接收线路处理板发送的报文,进行会话的建立;
会话建立单元20在建立会话时,可以建立新的会话表,包括报文的源IP地址、源端口、目的IP地址、目的端口和协议信息等信息。
第一备份确定单元21,用于按照第二算法确定备份会话的第二业务处理板;第二算法包括第一业务处理板不在位条件下根据报文的源地址和目的地址进行的哈希Hash运算;
第一备份单元22,用于将报文发送给第一备份确定单元21确定的第二业务处理板进行会话的备份。
在其它的实施例中,业务处理板还可以包括:
第二备份单元23,用于接收第三业务处理板发送的报文,根据第三业务处理板发送的报文建立会话,即备份第三业务处理板上的会话。
进一步的,在其它的实施例中,业务处理板还可以包括:
会话分布单元24,用于当确定第三业务处理板异常,且异常时间超过预置的时间时,按照第三算法分布本地会话;第三算法是线路处理板确定处理新报文的业务处理板的算法;第三算法包括第三业务处理板不在位条件下根据本地会话表中的源地址和目的地址进行的哈希Hash运算。
进一步的,在其它的实施例中,业务处理板还可以包括:
第二备份确定单元25,用于通过第四算法确定备份分布后的本地会话的第四业务处理板;第四算法包括第一业务处理板和第三业务处理板不在位条件下根据分布后的本地会话表中的源地址和目的地址进行的哈希Hash运算;
当第一业务处理板检测到第三业务处理不能发送报文,或接收不到第三业务处理板发送的报文,第二备份确定单元25确定第三业务处理板异常,而第三业务处理板异常包括该第三业务处理板的板卡处于重启状态、注册状态、已经被拔出状态、发生故障导致板卡在位异常等情况。
预置的时间可以根据第三业务处理板的启动时间进行设备,一般情况下位第三业务处理板启动时间的3倍,当异常时间超过预置的时间,则认为第三业务处理板无法恢复正常。
第三备份单元26,用于将会话分布单元24分布后的本地会话备份到第二备份确定单元25确定的第四业务处理板。
可以理解,本发明实施例的业务处理板可以备份其他业务处理板(如第三业务处理板)上的会话,当第三业务处理板异常的时间超过预置的时间时,可以将本地会话再备份到其他业务处理板上,这样形成了业务处理可靠性的保障。
在本实施例的业务处理板中:会话建立单元20接收到报文,建立会话,第一备份确定单元21按照第二算法确定备份该会话的第二业务处理板,第一备份单元22将该报文发送给第二业务处理板进行会话的备份,其中第二算法可以包括第一业务处理板不在位条件下根据报文的源地址和目的地址进行的Hash运算。这样使得业务处理板上建立的会话备份到其他业务处理板上,在该业务处理板异常时,可以将会话的业务转到其他业务处理板上进行处理,保证了业务的正常进行,提高了设备的可靠性;
且该业务处理板中第二备份单元23可以备份第三业务处理板上的会话,的会话分布单元24在确定某一业务处理板异常超过预置的时间时,进行会话重新分布,并通过第二备份确定单元25确定备份分布后的本地会话的另一业务处理板,通过第三备份单元26将分布后的本地会话备份到另一业务处理板上,使得在系统中一个业务处理板异常且不能恢复时,在其他业务处理板上及时形成会话可靠性的保障。
系统实施例
一种报文处理系统,结构示意图如图1所示,包括:线路处理板LPU和至少两个业务处理板SPU1、SPU2到SPUN;
至少两个业务处理板中的第一业务处理板SPU1,用于接收线路处理板发送的报文,进行会话的建立;按照第二算法确定备份报文的第二业务处理板;将报文发送给第二业务处理板SPU2进行会话的备份;
线路处理板LPU,用于确定处理会话中报文的第一业务处理板异常;通过第二算法确定处理会话中报文的第二业务处理板;第二算法是第一业务处理板确定备份会话的第二业务处理板的算法;将会话中报文发送给第二业务处理板进行处理。
可以理解,本发明实施例的系统中的线路处理板和业务处理板可以按照方法实施例一到方法实施例三中的方法进行报文的处理,在此不再赘述。
可见,本发明实施例中的报文处理方法包括:当确定处理会话中报文的第一业务处理板异常;通过第二算法确定处理会话中报文的第二业务处理板;该第二算法是第一业务处理板确定备份会话的第二业务处理板的算法;并将会话中报文发送给第二业务处理板进行处理。这样使得在其中一个业务处理板异常时,线路处理板可以按照同样的算法,找到备份该异常业务处理板上会话的其它业务处理板,这样报文在备份的业务处理板上处理,使得在业务处理板发生故障时,能保证业务的正常处理,从而提高了设备的可靠性。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
以上对本发明实施例所提供的报文处理方法、系统及业务处理板、线路处理板,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。