防火墙系统和基于该防火墙系统的数据处理方法

文档序号:7783621阅读:184来源:国知局
专利名称:防火墙系统和基于该防火墙系统的数据处理方法
技术领域
本发明涉及通信领域,具体而言,涉及一种防火墙系统和基于该防火墙系统的数据处理方法。
背景技术
目前,防火墙系统通常包括一个中央处理单元(Central Processing Unit,简称为CPU) ,Switch (交换)系统和若干输入/输出(Input/output,简称为I/O)端口组成,如图1所示的防火墙系统结构示意图,其中,CPU负责完成所有防火墙的业务处理,该防火墙系统的数据包流向如图2所示,首先,数据包进入该防火墙系统的I/O端口,由I/O端口将数据包发送至Switch系统,经Switch系统转发至CPU ;然后,CPU对该数据包进行处理,将处理后的数据包经Switch系统转发到I/O端口 ;最后,I/O端口将该数据包从防火墙系统中输出。上述的防火墙系统只有一个CPU进行业务处理,其性能受限于系统中的CPU的处理能力,不能扩展处理性能,并且在进行系统升级时,防火墙系统的CPU要中断业务才能完成升级过程,这样将导致该系统的业务处理过程不够可靠。目前还存在一种通信设备系统,该通信设备系统包括主板和备板,主板负责处理系统业务,备板负责接收来自主板的同步信息。主板将配置和状态信息实时同步到备板,在进行软件升级时,先对备板进行,然后将配置和状态信息同步到该备板,该配置和状态信息的同步操作完成之后进行主备切换,原来的备板变为主板,接着再升级原来的主板。这样整个系统的软件就升级为新的软件版本,该升级方式仅支持需要CPU处理的业务都在主控板上进行处理的情况。针对相关技术中系统无法进行业务扩展的问题,目前尚未提出有效的解决方案。

发明内容
针对相关技术中系统无法进行业务扩展的问题,本发明提供了一种防火墙系统和基于该防火墙系统的数据处理方法,以至少解决上述问题。根据本发明的一个方面,提供了一种防火墙系统,该系统包括两个主控模块、多个业务处理模块、多个分流模块、多个I/O模块和一个交换模块,其中,两个主控模块互为主备关系,用于控制上述多个业务处理模块、上述多个分流模块、上述多个I/O模块和上述交换模块,该交换模块用于转发各模块间的数据包,多个I/O模块和多个分流模块绑定,每个I/O模块用于将接收到的数据包发送到与其绑定的分流模块;多个分流模块中的每个分流模块用于将同一会话中的数据包发送给同一个业务处理模块;每个业务处理模块用于对接收到的数据包进行处理,处理完成之后将该数据包通过多个I/O模块中的一个I/O模块输出。上述分流模块包括负载确定单元,用于接收到一个会话的第一个数据包时,确定上述多个业务处理模块的负载情况;选择单元,用于根据负载确定单元确定的负载情况,选择第一个数据包对应的业务处理模块;第一分流单元,用于将第一个数据包转发给选择单
5元选择的业务处理模块。上述分流模块包括映射单元,用于接收到一个会话的第一个数据包时,根据第一个数据包的包头携带的信息进行映射;确定单元,用于根据映射单元的映射结果确定第一个数据包对应的业务处理模块;第二分流单元,用于将第一个数据包转发给确定单元确定的业务处理模块。上述业务处理模块包括接收单元,用于接收第一个数据包;创建单元,用于根据第一个数据包创建上述会话的数据结构;响应单元,用于向分流模块回复响应消息,其中该响应消息携带有上述会话标识与业务处理模块的标识的对应关系;分流模块包括对应关系存储单元,用于存储上述响应消息中携带的上述会话标识与业务处理模块的标识的对应关系;第三分流单元,用于根据对应关系存储单元存储的上述对应关系,将上述会话中的后续数据包转发给业务处理模块。上述分流模块包括同步单元,用于接收到升级指示后,将对应关系存储单元中存储的上述对应关系同步至多个分流模块中的另一个分流模块;第一升级单元,用于根据上述升级指示进行升级;另一个分流模块包括同步存储单元,用于存储同步单元同步的对应关系;交换模块包括绑定修改单元,用于根据系统配置指示修改上述多个I/O模块和上述多个分流模块绑定关系。上述业务处理模块包括信息同步单元,用于接收到升级指示后,将创建单元创建的上述数据结构同步至多个业务处理模块中的另一个业务处理模块;通知单元,用于向分流模块发送上述对应关系修改通知,其中该修改通知携带有自身所在的业务处理模块的标识和另一个业务处理模块的标识;第二升级单元,用于根据上述升级指示进行升级;分流模块包括对应关系修改单元,用于根据通知单元发送的修改通知,将上述对应关系中与上述修改通知中第一个业务处理模块的标识相同的标识修改为修改通知中第二个业务处理模块的标识;第四分流单元,用于根据对应关系修改单元修改后的对应关系将上述会话中的后续数据包转发至另一个业务处理模块;另一个业务处理模块包括信息存储单元,用于存储信息同步单元同步的上述数据结构;业务处理单元,用于根据信息存储单元存储的上述数据结构对上述会话中的后续数据包进行处理。根据本发明的另一方面,提供了一种基于上述防火墙系统的数据处理方法,该方法包括多个I/O模块中的每个I/O模块接收到数据包后,将数据包发送到与其绑定的分流模块;多个分流模块中的每个分流模块接收到该数据包后,按照同一会话中的数据包发送给同一个业务处理模块的分流规则,将该数据包转发给对应的业务处理模块;每个业务处理模块接收到该数据包后,对该数据包进行处理,处理完成之后将该数据包通过多个I/O 模块中的一个I/O模块输出。上述分流模块将上述数据包转发给对应的业务处理模块包括分流模块接收到一个会话的第一个数据包后,确定上述多个业务处理模块的负载情况;分流模块根据确定的多个业务处理模块的负载情况,选择第一个数据包对应的业务处理模块;分流模块将第一个数据包转发给选择的业务处理模块。上述分流模块将上述数据包转发给对应的业务处理模块包括分流模块接收到一个会话的第一个数据包后,根据第一个数据包的包头携带的信息进行映射;分流模块根据映射结果确定第一个数据包对应的业务处理模块;分流模块将第一个数据包转发给确定的业务处理模块。每个业务处理模块接收到上述数据包后包括业务处理模块接收到第一个数据包后,根据第一个数据包创建上述会话的数据结构;业务处理模块向分流模块回复响应消息, 其中,该响应消息携带有上述会话标识与业务处理模块的标识的对应关系;分流模块存储上述响应消息中携带的上述会话标识与业务处理模块的标识的对应关系;分流模块根据存储的上述对应关系,将上述会话中的后续数据包转发给业务处理模块。上述方法还包括分流模块接收到升级指示后,将存储的上述对应关系同步至上述多个分流模块中的另一个分流模块;然后,根据上述升级指示进行升级;交换模块接收系统配置指示后,根据上述系统配置指示修改上述多个I/O模块和上述多个分流模块绑定关系,按照修改后的绑定关系转发上述会话中的后续数据包;另一个分流模块存储分流模块同步的对应关系后,根据存储的上述对应关系,将交换模块转发的上述会话中的后续数据包转发给业务处理模块。上述方法还包括业务处理模块接收到升级指示后,将创建的上述数据结构同步至上述多个业务处理模块中的另一个业务处理模块,并向分流模块发送上述对应关系修改通知,其中,该修改通知携带有自身所在的业务处理模块的标识和另一个业务处理模块的标识,然后,根据上述升级指示进行升级;分流模块根据业务处理模块发送的修改通知,将上述对应关系中与上述修改通知中第一个业务处理模块的标识相同的标识修改为上述修改通知中第二个业务处理模块的标识;分流模块根据修改后的上述对应关系将上述会话中的后续数据包转发至另一个业务处理模块;另一个业务处理模块存储业务处理模块同步的上述数据结构,并根据存储的上述数据结构对上述会话中的后续数据包进行处理。通过本发明,防火墙系统中的多个I/O模块和多个分流模块绑定,每个I/O模块将接收到的数据包发送到与其绑定的分流模块,然后每个分流模块接收到数据包后,将同一会话中的数据包发送给同一个业务处理模块,每个业务处理模块对数据包进行处理后通过一个I/O模块输出,解决了相关技术中系统无法进行业务扩展的问题,该系统有多个业务处理模块,该业务处理模块的数量可以按照需求进行配置,使该系统支持业务的扩展,进而提高了防火墙系统的性能。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的防火墙系统结构的示意图;图2是根据相关技术的防火墙系统的数据包流向的示意图;图3是根据本发明实施例的防火墙系统的结构框图;图4是根据本发明实施例的防火墙系统的具体结构框图;图5是根据本发明实施例的防火墙系统的数据包流向的示意图;图6根据本发明实施例的基于防火墙系统的数据处理方法的流程图;图7根据本发明实施例一的基于防火墙系统的数据处理方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。在现有技术中,由于防火墙系统只有一个CPU负责进行业务的处理,因此该系统性能受限于CPU的处理能力,不能扩展处理性能。基于此,本发明实施例提供了一种防火墙系统和基于该防火墙系统的数据处理方法。该防火墙系统用多个业务处理模块,便于进行业务扩展。下面通过实施例进行详细说明。本实例提供了一种防火墙系统,该系统包括两个主控模块、多个业务处理模块、 多个分流模块、多个I/O模块和一个交换(Switch)模块。如图3所示的是防火墙系统的结构框图,在图3中两个主控模块分别以第一主控模块30a和第二主控模块30b为例进行说明,多个业务处理模块分别以第一业务处理模块32a、第二业务处理模块32b和第三业务处理模块32c为例进行说明,多个分流模块分别以第一分流模块34a、第二分流模块34b和第三分流模块3 为例进行说明,多个I/O模块分别以第一 I/O模块36a、第二 I/O模块36b 和第三I/O模块36c为例进行说明,一个交换模块以交换模块38为例进行说明。下面对该结构进行说明。两个主控模块互为主备关系,用于控制多个业务处理模块、所述多个分流模块、多个I/O模块和交换模块;交换模块(比如图3中的交换模块38),与上述模块均相连,用于转发各模块间的数据包;多个I/O模块和多个分流模块绑定,每个I/O模块(比如图3中的第一 I/O模块 36a)连接至交换模块38,用于将接收到的数据包发送到与其绑定的分流模块(比如图3中的第一分流模块34a);多个分流模块中的每个分流模块(比如图3中的第一分流模块34a) 连接至交换模块38,用于将同一会话中的数据包发送给同一个业务处理模块(比如图3中的第一业务处理模块32a);每个业务处理模块(比如图3中的第一业务处理模块32a)连接至交换模块38, 用于对接收到的数据包进行处理,处理完成之后将该数据包通过多个I/O模块中的一个I/ 0模块(比如图3中的第一 I/O模块36a)输出。其中,上述业务处理模块的处理过程中包括了查找出接口的过程,如果接收到的数据包是三层数据包,通过路由查找出接口 ;如果接收到的数据包是二层数据包,则通过目的MAC地址决定出接口 ;出接口所在的I/O模块就是被选择的I/O模块,具体通过哪个I/O 模块完成数据包的输出可以参考相关技术实现,这里不再详述。通过上述系统,防火墙系统中的多个I/O模块和多个分流模块绑定,每个I/O模块将接收到的数据包发送到与其绑定的分流模块,然后每个分流模块接收到数据包后,将同一会话中的数据包发送给同一个业务处理模块,每个业务处理模块对数据包进行处理后通过一个I/O模块输出,解决了相关技术中系统无法进行业务扩展的问题,该系统有多个业务处理模块,该业务处理模块的数量可以按照需求进行配置,使该系统支持业务的扩展,进而提高了防火墙系统的性能。每个分流模块在接收到I/O模块发送的数据包之后,按照同一会话中的数据包发送给同一个业务处理模块的分流规则,将上述数据包发送给同一个业务处理模块,对于分流模块在接收到第一个数据包后如何选择业务处理模块进行数据包的传输,本实施例给出两种优选实施方式,当然,本发明并不限于这两种实施方式,下面对分流模块在接收到第一个数据包后如何选择业务处理模块的两种优选实施方式分别进行描述,其中,本优选实施方式以图3中的第一分流模块3 为例进行详细说明。第一种方式,该防火墙系统的第一分流模块3 包括负载确定单元,用于接收到一个会话的第一个数据包时,确定多个业务处理模块的负载情况;选择单元,用于根据负载确定单元确定的负载情况,选择上述第一个数据包对应的第一业务处理模块32a ;第一分流单元,连接至选择单元,用于将第一个数据包转发给选择单元选择的第一业务处理模块 32a。该方式是基于业务处理模块的负载情况进行选择的,一般情况下,分流模块选择一个负载较低的业务处理模块来进行数据包的发送。第二种方式,该防火墙系统第一分流模块3 包括映射单元,用于接收到一个会话的第一个数据包时,根据第一个数据包的包头携带的信息进行映射;确定单元,连接至映射单元,用于根据映射单元的映射结果确定上述第一个数据包对应第一业务处理模块32a ; 第二分流单元,连接至确定单元,用于将第一个数据包转发给确定单元确定的第一业务处理模块32a。该方式是基于第一个数据包的包头携带的信息和第一业务处理模块3 之间的映射关系进行业务处理模块的选择,比如可以采用固定映射的方式,计算数据包的5元组(IP数据包的源目的IP地址,源目的端口和协议号)的hash(杂凑或称为哈希,也可以写为HASH)值,将同一个hash值的数据包对应与同一个业务处理单元,以此建立第一个数据包和业务处理模块之间的映射关系,从而使第一分流模块3 在接收到第一个数据包时选择出第一业务处理模块3 进行数据包的发送。在分流模块接收到第一个数据包时,上述两种优选实施方式便于快速简捷的选择合适的业务处理模块。在业务处理模块接收到分流模块发送的第一个数据包之后,业务处理模块可以将其记录下来,便于后续的数据包的接收和处理,因此,在本实施例的一个优选实施方式中, 为了实现上述目的,业务处理模块(本优选实施方式以第一业务处理模块3 为例进行说明)可以包括接收单元,用于接收第一个数据包;创建单元,连接至接收单元,用于根据上述第一个数据包创建会话的数据结构;响应单元,连接至创建单元,用于向第一分流模块 34a回复响应消息,其中该响应消息携带有会话标识与第一业务处理模块32a的标识的对应关系。通过本优选实施方式,业务处理模块可以更加方便有效的对分流模块发送过来的后续数据包进行管理记录。其中,本实施例创建的数据结构可以包括数据包的5元组、数据包出接口、数据包下一跳MAC地址、反向数据包的5元组、数据包入接口、数据包源MAC地址、安全策略ID、处理该会话的数据包的业务处理模块ID等中的部分或全部参数。该会话标识可以是数据包中携带的5元组及反向数据包中携带的5元组等。在分流模块接收到该响应消息之后,可以将上述会话标识与业务处理模块的标识的对应关系记录下来,便于分流模块在接收到后续的数据包时,根据此对应关系将数据包发送给对应的业务处理模块。分流模块(本优选实施方式以第一分流模块3 为例进行说明)可以包括对应关系存储单元,用于存储第一业务处理模块3 发送的响应消息中携带的会话标识与第一业务处理模块32a的标识的对应关系;第三分流单元,连接至对应关系存储单元,用于根据对应关系存储单元存储的该对应关系,将会话中的后续数据包转发给第一业务处理模块32a。上述对应关系存储单元存储的上述对应关系可以选择在分流表中进行记录,分流模块在接收到数据包后,可以先查找分流表,如果在该分流表中找到了该数据包的会话标识和业务处理模块的标识的对应关系,根据记录的信息就可以确定该数据包应该发送给哪个业务处理模块。如果没有找到该对应关系,则按照上述的分流模块在接收到第一个数据包后如何选择业务处理模块的两种优选实施方式,选择一个负载较低的业务处理模块,或者按照固定映射的方式选择一个业务处理模块。这样分流表中存储的信息就可以不断的扩充。本优选实施方式提供的对应关系使分流模块可以简捷快速并且有规划地发送数据包至业务处理模块。上述实施例及各个优选实施方式中的防火墙系统中的业务处理模块的数量可以按需求进行配置,这样实现了系统性能的可扩展性,并且在系统内部进行数据处理时可以更加有规划有目的的进行。防火墙系统还面临着升级的问题,现有技术中的有些系统在升级时要中断业务,这样将导致该系统的业务处理过程不够可靠,还有些系统在升级时虽然不用中断业务,但是这种升级方式仅支持所有业务的处理都在主控板上进行的系统。因此, 本实施例提供了一个优选实施方式,如图4所示的是防火墙系统的具体结构框图,该系统除了包括图3中的各个模块之外,还包括分流模块(以图4中的第一分流模块3 为例)包括同步单元34a0,用于接收到升级指示后,将对应关系存储单元中存储的对应关系同步至多个分流模块中的另一个分流模块(以图4中的第二分流模块34b为例);第一升级单元34a2,连接至同步单元34a0, 用于根据上述升级指示进行升级;另一个分流模块(即图4中的第二分流模块34b)包括同步存储单元34b0,连接至同步单元34a0,用于存储同步单元34a0同步的对应关系;后续,该分流模块将根据同步后的对应关系进行数据包的转发。交换模块38包括绑定修改单元380,用于根据系统配置指示修改多个I/O模块和多个分流模块绑定关系。在本优选实施方式中,第一分流模块3 要进行升级时,将其存储的对应关系同步到第二分流模块34b,然后交换模块38修改I/O模块和分流模块绑定关系,这样在第一 I/O模块36a接收到数据包时,将该数据包发送到第二分流模块34b;并且,如果一个会话的数据包在第一分流模块3 上要发送至第一业务处理模块32a,本优选实施方式中的第二分流模块34b将该数据包发送至第一业务处理模块32a。这样保证了在分流模块进行升级的过程中数据包的传输不会中断,当然,在第一分流模块3 要进行升级时,其所选择的要进行对应关系同步的其他分流模块并不只限于第二分流模块34b,可以是除其本身之外的任意一个分流模块。通过本优选实施方式,防火墙系统可以在业务不中断的情况下进行分流模块的升级操作,提高了该防火墙系统的业务处理的可靠性。在对分流模块的升级进行了描述之后,下面对业务处理模块的升级过程进行描述。本实施例提供了另外一种优选实施方式,该方式包括业务处理模块(以图4中的第一业务处理模块3 为例)包括信息同步单元,用于接收到升级指示后,将创建单元创建的数据结构同步至多个业务处理模块中的另一个业务处理模块(以图4中的第二业务处理模块32b为例);通知单元,用于向分流模块(以图 4中的第三分流模块3 为例)发送对应关系修改通知,其中该修改通知携带有自身所在的业务处理模块的标识(即第一业务处理模块3 的标识)和第二业务处理模块32b的标识,这两个标识指明了从哪个业务处理模块切换到哪个业务处理模块;第二升级单元,连接
10至通知单元,用于根据上述升级指示进行升级。本实施例的业务迁移完毕后,主控模块会将其重启,然后加载新的软件版本。分流模块(即第一分流模块34a)包括对应关系修改单元,用于根据通知单元发送的修改通知,将上述对应关系中与该修改通知中第一个业务处理模块的标识相同的标识修改为该修改通知中第二个业务处理模块的标识,本实施例即将上述对应关系(例如分流表)中的第一业务处理模块32a的标识修改为第二业务处理模块32b的标识;第四分流单元,连接至对应关系修改单元,用于根据对应关系修改单元修改后的对应关系将上述会话中的后续数据包转发至第二业务处理模块32b ;另一个业务处理模块(即图4中的第二业务处理模块32b)包括信息存储单元, 连接至信息同步单元,用于存储信息同步单元同步的数据结构;业务处理单元,连接至信息存储单元,用于根据信息存储单元存储的数据结构述会话中的后续数据包进行处理。在本优选实施方式中,第一业务处理模块3 要进行升级时将其创建的数据结构同步到第二业务处理模块32b,然后第一分流模块3 修改数据包的会话标识与第二业务处理模块32b的标识的对应关系,这样在第一分流模块3 要发送数据包至第一业务处理模块3 时,本优选实施方式中的第一分流模块3 将该数据包发送至第二业务处理模块 32b。这样保证了在业务处理模块进行升级的过程中使数据包的传输不会中断,当然,在第一业务处理模块3 要进行升级时,其所选择的要进行数据结构同步的其他业务处理模块并不只限于第二业务处理模块32b,可以是除其本身之外的任意一个业务处理模块。通过本优选实施方式,防火墙系统可以在业务不中断的情况下进行业务处理模块的升级操作,提高了该防火墙系统的业务处理的可靠性。上述优选实施方式对分流模块和业务处理模块的升级方式分别进行了详细描述, 针对主控模块的升级方式,下面通过优选实施方式进行介绍。两个主控模块互为主备关系, 假设第一主控模块30a是处于主状态的主控模块,第二主控模块30b是处于备状态的主控模块,当然,二者的主备关系并不限于此。第一主控模块30a上的配置、状态信息会随时同步到第二主控模块30b,首先对处于备状态的第二主控模块30b进行升级操作,在此期间第一主控模块30a可以继续对该系统中的各个模块进行控制,在第二主控模块30b的升级操作结束之后,对两个主控模块的主备关系进行切换,然后再对切换后处于备状态的第一主控模块30a进行升级操作。这样本优选实施方式就在不中断业务的前提下完成了两个主控模块的升级操作,提高了系统的业务处理能力。在上述防火墙系统中,采用业务在同种类模块间转移、轮流升级各模块的方案实现了系统软件的平滑升级。该系统可以进行业务扩展,并且可以在不中断业务的前提下进行系统的升级操作,该实施例还可以在机框式系统中进行实现,比如构建一个机框式的防火墙系统,该防火墙系统可以有16个槽位,包括两个主控板槽位和两个交换板槽位和12个通用槽位,该通用槽位可以插I/O板、业务处理板和分流板。主控板对应上述实施例中的主控模块,交换板对应上述实施例中的交换模块,I/O板对应上述实施例中的I/O模块,业务处理板对应上述实施例中的业务处理模块,分流板对应上述实施例中的分流模块。I/O板, 业务处理板和分流板的数量可以根据网络处理的需要进行灵活配置。该系统可以配置两个主控板,两个或者更多个业务处理板,两个或者更多个分流板,该防火墙系统可以实现软件的平滑升级。即升级软件时不需要重启整个系统,并且业务处理不受影响。
对应于上述实施例提供的一种防火墙系统,本实施例提供了一种基于该防火墙系统的数据处理方法,该防火墙系统可以由主控模块、业务处理模块、分流模块、交换模块以及I/O端口组成。该系统的数据包流向如图5所示,首先,数据包进入该防火墙系统的I/ 0端口,由I/O端口将数据包发送至Switch模块,经Switch模块转发至分流模块;然后,分流模块按照上述的同一会话中的数据包发送给同一个业务处理模块的分流规则,将该数据包经由Switch模块转发给对应的业务处理模块;然后,该业务处理模块对该数据包进行处理,将处理后的数据包经Switch模块转发到I/O端口 ;最后,I/O端口将该数据包从防火墙系统中输出。本实施例中的系统以包括两个主控模块、若干个业务处理模块、若干个分流模块、若干个I/O端口和一个Switch(交换)系统为例进行说明。图6是根据本发明实施例的基于防火墙系统的数据处理方法的流程图,如图6所示,该方法包括以下步骤(步骤 S6O2-步骤 S6O6)步骤S602,多个I/O模块中的每个I/O模块接收到数据包后,将该数据包发送到与其绑定的分流模块。从一个I/O端口来的数据包首先需要交给分流模块处理,在系统初始化时,将I/O端口与分流模块进行绑定,即从一个I/O端口上来的所有数据包都交给预先指定的分流模块,该绑定关系在运行时也可以更改。步骤S604,多个分流模块中的每个分流模块接收到数据包后,按照同一会话中的数据包发送给同一个业务处理模块的分流规则,将该数据包转发给对应的业务处理模块。步骤S606,每个业务处理模块接收到上述数据包后,对该数据包进行处理,处理完成之后将数据包通过多个I/O模块中的一个I/O模块输出。其中,上述业务处理模块的处理过程中包括了查找出接口的过程,如果接收到的数据包是三层数据包,通过路由查找出接口 ;如果接收到的数据包是二层数据包,则通过目的MAC地址决定出接口 ;出接口所在的I/O模块就是被选择的I/O模块,具体通过哪个I/O 模块完成数据包的输出可以参考相关技术实现,这里不再详述。通过上述方法,防火墙系统中的多个I/O模块和多个分流模块绑定,每个I/O模块将接收到的数据包发送到与其绑定的分流模块,然后每个分流模块接收到数据包后,将同一会话中的数据包发送给同一个业务处理模块,每个业务处理模块对数据包进行处理后通过一个I/O模块输出,解决了相关技术中系统无法进行业务扩展的问题,该系统有多个业务处理模块,该业务处理模块的数量可以按照需求进行配置,使该系统支持业务的扩展,进而提高了防火墙系统的性能。每个分流模块在接收到I/O模块发送的数据包之后,按照同一会话中的数据包发送给同一个业务处理模块的分流规则,将上述数据包发送给同一个业务处理模块,对于分流模块在接收到第一个数据包后如何选择业务处理模块进行数据包的传输,本实施例给出两种优选实施方式,当然,本发明并不限于这两种实施方式,下面对分流模块在接收到第一个数据包后如何选择业务处理模块的两种优选实施方式分别进行描述。第一种方式,分流模块接收到一个会话的第一个数据包后,确定多个业务处理模块的负载情况,然后分流模块根据确定的多个业务处理模块的负载情况,选择第一个数据包对应的业务处理模块,最后分流模块将上述第一个数据包转发给选择的业务处理模块。 该方式是基于业务处理模块的负载情况进行选择的,一般情况下,分流模块选择一个负载较低的业务处理模块来进行数据包的发送。
第二种方式,分流模块接收到一个会话的第一个数据包后,根据该第一个数据包的包头携带的信息进行映射,然后分流模块根据映射的结果确定第一个数据包对应的业务处理模块,最后分流模块将第一个数据包转发给确定的业务处理模块。比如可以采用固定映射的方式,计算数据包的5元组(IP数据包的源目的IP地址,源目的端口和协议号)的 hash (杂凑或称为哈希,也可以写为HASH)值,将同一个hash值的数据包对应与同一个业务处理单元,以此建立第一个数据包和业务处理模块之间的映射关系,从而使分流模块在接收到第一个数据包时选择出业务处理模块进行数据包的发送。在分流模块接收到第一个数据包时,上述两种优选实施方式便于快速简捷的选择合适的业务处理模块。在业务处理模块接收到分流模块发送的第一个数据包之后,业务处理模块可以将其记录下来,便于后续的数据包的接收和处理,因此,在本实施例的一个优选实施方式中, 为了实现上述目的,在接收到分流模块发送的第一个数据包后,业务处理模块可以根据第一个数据包创建会话的数据结构,然后业务处理模块向该分流模块回复响应消息,其中该响应消息携带有会话标识与业务处理模块的标识的对应关系,然后上述分流模块存储响应消息中携带的会话标识与业务处理模块的标识的对应关系,这样在分流模块接到后续的数据包时,可以根据存储的对应关系,将会话中的后续数据包转发给业务处理模块。通过本优选实施方式,业务处理模块可以更加方便有效的对分流模块发送过来的后续数据包进行管理记录,然后分流模块可以将上述会话标识与业务处理模块的标识的对应关系记录下来, 便于分流模块在接收到后续的数据包时,根据此对应关系将数据包发送给对应的业务处理模块。其中,本实施例创建的数据结构可以包括数据包的5元组、数据包出接口、数据包下一跳MAC地址、反向数据包的5元组、数据包入接口、数据包源MAC地址、安全策略ID、处理该会话的数据包的业务处理模块ID等中的部分或全部参数。该会话标识可以是数据包中携带的5元组及反向数据包中携带的5元组等。上述实施例及其各个优选实施方式中的防火墙系统可以满足业务扩展的要求,并且在系统内部进行数据处理时可以更加有规划有目的的进行。现有技术中的防火墙系统还面临着升级时必须中断业务的问题。因此,本实施例提供了一个优选实施方式,在接收到升级指示后,分流模块可以将存储的对应关系同步至多个分流模块中的另一个分流模块,然后该分流模块根据上述升级指示进行升级,然后交换模块接收系统配置指示后,根据该系统配置指示修改多个I/O模块和多个分流模块的绑定关系,按照修改后的绑定关系转发所述会话中的后续数据包,另一个分流模块存储上述分流模块同步的对应关系后,根据存储的对应关系,将交换模块转发的会话中的后续数据包转发给业务处理模块。假定系统有多个分流模块,其中有两个分流模块分别称为A和B,现在准备要升级分流模块A。首先将分流模块A上的分流表同步到分流模块B上,后续,分流模块B将根据同步后的对应关系进行数据包的转发。同步操作完成后,更改Switch模块的配置,将原来与分流模块A绑定的I/O端口的流量全部转发给分流模块B进行处理,这时分流模块A将不再收到业务数据包,可以对其进行升级并且不影响业务的处理,在分流模块A升级完成后。 再按照类似的过程升级分流模块B。当然,在分流模块要进行升级时,其所选择的要进行对应关系同步的其他分流模块并不只限于某一个特定的分流模块,可以是除其本身之外的任意一个分流模块。本优选实施方式保证了在分流模块进行升级的过程中使数据包的传输不会中断,通过本优选实施方式,防火墙系统可以在业务不中断的情况下进行分流模块的升级操作, 提高了该防火墙系统的业务处理的可靠性。在对分流模块的升级进行了描述之后,下面对业务处理模块的升级过程进行描述。本实施例提供了另外一种优选实施方式,该方式的过程如下所示。业务处理模块接收到升级指示后,将创建的数据结构同步至多个业务处理模块中的另一个业务处理模块,并向分流模块发送对应关系修改通知,其中该修改通知携带有自身所在的业务处理模块的标识和上述另一个业务处理模块的标识,这两个标识指明了从哪个业务处理模块切换到哪个业务处理模块,然后,上述业务处理模块根据升级指示进行升级。本实施例的业务迁移完毕后,主控模块会将其重启,然后加载新的软件版本。分流模块根据上述业务处理模块发送的修改通知,将对应关系中与该修改通知中上述业务处理模块的标识相同的标识修改为该修改通知中上述另一个业务处理模块的标识,上述分流模块根据修改后的对应关系将会话中的后续数据包转发至上述另一个业务处理模块,该另一个业务处理模块存储上述业务处理模块同步的数据结构,然后根据存储的数据结构对会话中的后续数据包进行处理。假定防火墙系统有多个业务处理模块,其中有两个业务处理模块分别称为A和B, 现在准备要升级业务处理模块A。首先将业务处理模块A上的session (会话)信息同步到业务处理模块B上,同步操作完成后,通知分流模块将原来转发给业务处理模块A的流量全部转发给业务处理模块B。这样处理后,业务处理模块A将不再收到业务数据包,这时就可以对业务处理模块A进行升级,在业务处理模块A的升级完成后,按照类似方法,再对其他业务处理模块升级。当然,在业务处理模块要进行升级时,其所选择的要进行数据结构同步的其他业务处理模块并不只限于某一个特定的业务处理模块,可以是除其本身之外的任意一个业务处理模块。本优选实施方式保证了在业务处理模块进行升级的过程中使数据包的传输不会中断,通过本优选实施方式,防火墙系统可以在业务不中断的情况下进行业务处理模块的升级操作,提高了该防火墙系统的业务处理的可靠性。上述优选实施方式对分流模块和业务处理模块的升级方式分别进行了详细描述, 针对主控模块的升级方式,下面通过优选实施方式进行介绍。防火墙系统中的两个主控模块处于主备的逻辑,主上的配置、状态信息会随时同步到备,在系统进行升级时,先升级备状态的主控模块,升级完成后再对主备逻辑进行切换,然后再升级新的备状态的主控模块。 该方式在不中断业务的前提下完成了两个主控模块的升级操作,提高了系统的业务处理能力。下面结合优选实施例和附图对上述实施例的实现过程进行详细说明。实施例一图7是根据本发明实施例一的基于防火墙系统的数据处理方法的流程图,该防火墙系统可以由主控模块、业务处理模块、分流模块、Switch(交换)模块以及I/O端口组成。 主控模块负责系统的控制平面处理,两个主控模块构成主备冗余,业务处理模块负责防火墙业务处理,分流模块负责将数据包分发到业务处理模块上,Switch模块用于各模块的互联,各模块间交互的业务和控制数据将由Switch模块进行转发。如图7所示,该方法包括如下步骤(步骤S702-步骤S7M)步骤S702,系统升级备状态的主控模块。
步骤S704,在备状态的主控模块升级完成之后,两个主控模块进行主备切换。步骤S706,升级备状态的主控模块(即原来的主状态的主控模块)。步骤S708,对所有的业务处理模块排队,选择队头的业务处理模块为第一个升级的业务处理模块,下一个业务处理模块为其备份模块,该选择方式并不限于此,本实施例仅以此方式进行说明。步骤S710,升级选择出的业务处理模块。步骤S712,判断所有业务处理模块的升级是否全部完成,如果所有业务处理模块都已经升级完成,执行步骤S714,如果业务处理模块没有全部升级完成,执行步骤S716。步骤S714,对所有分流模块进行排队,选择队头的分流模块为第一个升级的分流模块,下一个分流模块为其备份模块,该选择方式并不限于此,本实施例仅以此方式进行说明,然后执行步骤S718。步骤S716,选择队列中的下一个模块作为升级模块,然后执行步骤S710 ;步骤S718,升级选择出的分流模块。步骤S720,判断所有分流模块的升级是否全部完成,如果所有分流模块都已经升级完成,执行步骤S7M,如果分流模块没有全部升级完成,执行步骤S722。步骤S722,选择队列中的下一个模块作为升级模块,然后执行步骤S718。步骤S7M,系统升级完成。本实施例的方法可以使防火墙系统进行性能扩展,并且实现业务不间断的平滑升级,该系统具有高可靠、性能易扩展等优势。从以上的描述中,可以看出,本发明方案可实现一个性能可扩展的防火墙系统,并且该系统采用业务在同种类模块间转移、轮流升级各模块的方案实现了平滑升级,从而实现了防火墙系统的性能扩展,并且在业务不中断的前提下可以进行系统的升级,提高了系统业务处理的可靠性。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种防火墙系统,其特征在于,包括两个主控模块、多个业务处理模块、多个分流模块、多个输入/输出I/O模块和一个交换模块;其中,两个主控模块互为主备关系,用于控制所述多个业务处理模块、所述多个分流模块、所述多个I/O模块和所述交换模块;所述交换模块用于转发各模块间的数据包;所述多个I/O模块和所述多个分流模块绑定,每个所述I/O模块用于将接收到的数据包发送到与其绑定的分流模块;所述多个分流模块中的每个所述分流模块用于将同一会话中的数据包发送给同一个业务处理模块;每个所述业务处理模块用于对接收到的所述数据包进行处理,处理完成之后将所述数据包通过所述多个I/O模块中的一个I/O模块输出。
2.根据权利要求1所述的系统,其特征在于,所述分流模块包括负载确定单元,用于接收到一个会话的第一个数据包时,确定所述多个业务处理模块的负载情况;选择单元,用于根据所述负载确定单元确定的负载情况,选择所述第一个数据包对应的业务处理模块;第一分流单元,用于将所述第一个数据包转发给所述选择单元选择的业务处理模块。
3.根据权利要求1所述的系统,其特征在于,所述分流模块包括映射单元,用于接收到一个会话的第一个数据包时,根据所述第一个数据包的包头携带的信息进行映射;确定单元,用于根据所述映射单元的映射结果确定所述第一个数据包对应的业务处理模块;第二分流单元,用于将所述第一个数据包转发给所述确定单元确定的业务处理模块。
4.根据权利要求2或3所述的系统,其特征在于,所述业务处理模块包括 接收单元,用于接收所述第一个数据包;创建单元,用于根据所述第一个数据包创建所述会话的数据结构; 响应单元,用于向所述分流模块回复响应消息,其中,所述响应消息携带有所述会话标识与所述业务处理模块的标识的对应关系;所述分流模块包括对应关系存储单元,用于存储所述响应消息中携带的所述会话标识与所述业务处理模块的标识的对应关系;第三分流单元,用于根据所述对应关系存储单元存储的所述对应关系,将所述会话中的后续数据包转发给所述业务处理模块。
5.根据权利要求4所述的系统,其特征在于,所述分流模块包括同步单元,用于接收到升级指示后,将所述对应关系存储单元中存储的所述对应关系同步至所述多个分流模块中的另一个分流模块;第一升级单元,用于根据所述升级指示进行升级;所述另一个分流模块包括同步存储单元,用于存储所述同步单元同步的对应关系; 所述交换模块包括绑定修改单元,用于根据系统配置指示修改所述多个I/O模块和所述多个分流模块绑定关系。
6.根据权利要求4所述的系统,其特征在于,所述业务处理模块包括信息同步单元,用于接收到升级指示后,将所述创建单元创建的所述数据结构同步至所述多个业务处理模块中的另一个业务处理模块;通知单元,用于向所述分流模块发送所述对应关系修改通知,其中,所述修改通知携带有自身所在的所述业务处理模块的标识和所述另一个业务处理模块的标识;第二升级单元,用于根据所述升级指示进行升级;所述分流模块包括对应关系修改单元,用于根据所述通知单元发送的修改通知,将所述对应关系中与所述修改通知中第一个所述业务处理模块的标识相同的标识修改为所述修改通知中第二个所述业务处理模块的标识;第四分流单元,用于根据所述对应关系修改单元修改后的对应关系将所述会话中的后续数据包转发至所述另一个业务处理模块;所述另一个业务处理模块包括信息存储单元,用于存储所述信息同步单元同步的所述数据结构;业务处理单元,用于根据所述信息存储单元存储的所述数据结构对所述会话中的后续数据包进行处理。
7.一种基于权利要求1所述的防火墙系统的数据处理方法,其特征在于,包括所述多个I/O模块中的每个所述I/O模块接收到数据包后,将所述数据包发送到与其绑定的分流模块;所述多个分流模块中的每个所述分流模块接收到所述数据包后,按照同一会话中的数据包发送给同一个业务处理模块的分流规则,将所述数据包转发给对应的业务处理模块;每个所述业务处理模块接收到所述数据包后,对所述数据包进行处理,处理完成之后将所述数据包通过所述多个I/O模块中的一个I/O模块输出。
8.根据权利要求7所述的方法,其特征在于,所述分流模块将所述数据包转发给对应的业务处理模块包括所述分流模块接收到一个会话的第一个数据包后,确定所述多个业务处理模块的负载情况;所述分流模块根据确定的所述多个业务处理模块的负载情况,选择所述第一个数据包对应的业务处理模块;所述分流模块将所述第一个数据包转发给选择的所述业务处理模块。
9.根据权利要求7所述的方法,其特征在于,所述分流模块将所述数据包转发给对应的业务处理模块包括所述分流模块接收到一个会话的第一个数据包后,根据所述第一个数据包的包头携带的信息进行映射;所述分流模块根据映射结果确定所述第一个数据包对应的业务处理模块;所述分流模块将所述第一个数据包转发给确定的所述业务处理模块。
10.根据权利要求8或9所述的方法,其特征在于,每个所述业务处理模块接收到所述数据包后包括所述业务处理模块接收到所述第一个数据包后,根据所述第一个数据包创建所述会话的数据结构;所述业务处理模块向所述分流模块回复响应消息,其中,所述响应消息携带有所述会话标识与所述业务处理模块的标识的对应关系;所述分流模块存储所述响应消息中携带的所述会话标识与所述业务处理模块的标识的对应关系;所述分流模块根据存储的所述对应关系,将所述会话中的后续数据包转发给所述业务处理模块。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括所述分流模块接收到升级指示后,将存储的所述对应关系同步至所述多个分流模块中的另一个分流模块;然后,根据所述升级指示进行升级;所述交换模块接收系统配置指示后,根据所述系统配置指示修改所述多个I/O模块和所述多个分流模块绑定关系,按照修改后的绑定关系转发所述会话中的后续数据包;所述另一个分流模块存储所述分流模块同步的对应关系后,根据存储的所述对应关系,将所述交换模块转发的所述会话中的后续数据包转发给所述业务处理模块。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括所述业务处理模块接收到升级指示后,将创建的所述数据结构同步至所述多个业务处理模块中的另一个业务处理模块,并向所述分流模块发送所述对应关系修改通知,其中,所述修改通知携带有自身所在的所述业务处理模块的标识和所述另一个业务处理模块的标识,然后,根据所述升级指示进行升级;所述分流模块根据所述业务处理模块发送的修改通知,将所述对应关系中与所述修改通知中第一个所述业务处理模块的标识相同的标识修改为所述修改通知中第二个所述业务处理模块的标识;所述分流模块根据修改后的所述对应关系将所述会话中的后续数据包转发至所述另一个业务处理模块;所述另一个业务处理模块存储所述业务处理模块同步的所述数据结构,并根据存储的所述数据结构对所述会话中的后续数据包进行处理。
全文摘要
本发明公开了一种防火墙系统和基于该防火墙系统的数据处理方法。其中,该系统包括两个主控模块、多个业务处理模块、多个分流模块、多个I/O模块和一个交换模块,两个主控模块互为主备关系,用于控制各个模块,交换模块用于转发各模块间的数据包,多个I/O模块和多个分流模块绑定,每个I/O模块用于将接收的数据包发送到与其绑定的分流模块;每个分流模块用于将同一会话中的数据包发送给同一个业务处理模块;每个业务处理模块用于对数据包处理后通过一个I/O模块输出。通过本发明,解决了系统无法进行业务扩展的问题,该系统中业务处理模块的数量可以按需配置,使该系统支持业务的扩展,进而提高了该系统的性能。
文档编号H04L29/06GK102404339SQ20111042495
公开日2012年4月4日 申请日期2011年12月16日 优先权日2011年12月16日
发明者刘向明, 杨启军, 王钟, 莫宁 申请人:山石网科通信技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1