一种会话信息同步方法及装置

文档序号:537008 发布日期:2021-06-01 浏览:13次 >En<

阅读说明:本技术 一种会话信息同步方法及装置 (Session information synchronization method and device ) 是由 张文鑫 于 2021-01-11 设计创作,主要内容包括:本申请提供了一种会话信息同步方法及装置。一种会话信息同步方法,应用于包括至少两个业务板卡的网络设备,该方法包括:为所述至少两个业务板卡创建一个组播组,所述组播组的组播MAC地址为指定MAC地址;任一业务板卡的CPU对会话信息进行操作后,若检查当前网络设备启用了会话同步功能,则将所述操作的相关信息封装在目的MAC地址为所述指定MAC地址的组播报文中,并将所述组播报文发送至本业务板卡的交换芯片,以由交换芯片将所述组播报文发送至所述组播组中的其他业务板卡;任一业务板卡在接收到目的MAC地址为所述指定MAC地址的组播报文时,根据所述组播报文操作会话信息。通过上述方法,本申请在实现业务板卡间会话信息的同步时能够有效节约CPU资源。(The application provides a session information synchronization method and device. A method for synchronizing session information is applied to network equipment comprising at least two service boards, and comprises the following steps: creating a multicast group for the at least two service board cards, wherein the multicast MAC address of the multicast group is a designated MAC address; after a CPU of any service board card operates session information, if the current network equipment is checked to start a session synchronization function, the relevant information of the operation is packaged in a multicast message of which the destination MAC address is the specified MAC address, and the multicast message is sent to a switching chip of the service board card, so that the switching chip sends the multicast message to other service board cards in the multicast group; and when any service board card receives the multicast message of which the destination MAC address is the specified MAC address, operating the session information according to the multicast message. By the method, the application can effectively save CPU resources when the synchronization of the session information between the service board cards is realized.)

一种会话信息同步方法及装置

技术领域

本申请涉及通信技术领域,特别涉及一种会话信息同步方法及装置。

背景技术

目前网络设备通常接入多个业务板卡以满足大流量数据转发的需求,并且为使各个业务板卡负载较为均衡,网络设备通常将流量均匀分配至各个业务板卡,由各业务板卡分别处理各自被分配的流量,并分别记录被分配的流量的会话信息。这意味着任一流量的会话信息只会被记录在多个业务板卡中的一个上,如果任一业务板卡由于异常重启、热插拔等原因无法正常工作,则该业务板卡所记录的会话信息对应的流量将转发失败,导致用户网络中断。

发明内容

本申请提供了一种会话信息同步方法和装置,以实现各个业务板卡间会话信息的同步。

本申请提供的技术方案包括:

第一方面,本申请提供一种会话信息同步方法,应用于网络设备,上述网络设备包括至少两个业务板卡,该方法包括:

为上述至少两个业务板卡创建一个组播组,上述组播组的组播MAC地址为指定MAC地址;

任一业务板卡的CPU对会话信息进行操作后,若检查当前网络设备启用了会话同步功能,则将上述操作的相关信息封装在目的MAC地址为上述指定MAC地址的组播报文中,并将上述组播报文发送至本业务板卡的交换芯片,以由交换芯片将上述组播报文发送至上述组播组中除本业务板卡外的其他业务板卡;

任一业务板卡在接收到目的MAC地址为上述指定MAC地址的组播报文时,根据上述组播报文操作会话信息。

第二方面,本申请提供一种会话信息同步装置,应用于网络设备,上述网络设备包括至少两个业务板卡,该方法包括:

创建单元,为上述至少两个业务板卡创建一个组播组,上述组播组的组播MAC地址为指定MAC地址;

发送单元,用于使任一业务板卡的CPU对会话信息进行操作后,若检查当前网络设备启用了会话同步功能,则将上述操作的相关信息封装在目的MAC地址为上述指定MAC地址的组播报文中,并将上述组播报文发送至本业务板卡的交换芯片,以由交换芯片将上述组播报文发送至上述组播组中除本业务板卡外的其他业务板卡;

同步单元,任一业务板卡在接收到目的MAC地址为上述指定MAC地址的组播报文时,根据上述组播报文操作会话信息。

本申请通过为网络设备接入的多个业务板卡建立一个组播组,使任一业务板卡的CPU可将对会话信息进行的操作的相关信息封装在组播报文中,由业务板卡的交换芯片将该组播报文发送给组播组内的其他业务板卡,组播组内的其他业务板卡在接收到该组播报文后,即可根据该组播报文操作会话信息,从而实现会话信息的同步。并且,根据本申请提供的方案,无论组播组内存在多少个业务板卡,各业务板卡的CPU均可只向交换芯片发送一份封装有待同步的信息的组播报文,由此可以在会话信息同步过程中有效节约CPU资源。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1为本申请实施例提供的网络设备结构示意图;

图2为本申请提供的会话信息同步方法流程图;

图3为本申请提供的会话信息同步装置结构图;

图4为本申请实施例提供的一种电子设备的硬件结构示意图。

具体实施方式

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在一个例子中,为了满足大流量数据转发的需求,网络设备支持接入多个业务板卡。作为一个实施例,网络设备可接入的业务板卡可包括:防火墙(Fire Wall,FW)业务板卡、入侵防御系统(Intrusion Prevention System,IPS)业务板卡、远程访问服务(forefront Unified Access Gateway,UAG)业务板卡等等,分别用于提供不同的业务。作为一个实施例,网络设备可接入相同类型的多个业务板卡,也可接入不同类型的多个业务板卡。为便于描述,以下实施例主要针对接入相同类型的多个业务板卡的网络设备,对于接入不同类型的业务板卡的网络设备,根据实际使用的需要对相关流程进行差异化处理即可。

为便于理解本申请提供的实施例,下面结合图1对网络设备的结构进行简要说明:

参见图1,图1为本申请实施例提供的网络设备结构示意图。

如图1所示,网络设备接入有若干个业务板卡。其中,每个业务板卡均包含CPU和交换芯片,交换芯片主要用于转发报文;各业务板卡的交换芯片通过内部连线连接,构成交换芯片间的数据通道,以使各业务板卡间可以进行通信,具体的连接方式图1中未示出,可参考本领域现有的多种方式。

为了实现各业务板卡的负载均衡,作为一个实施例,任一业务板卡的交换芯片在接收到来自网络设备外部的流量时,可先按照一定规则确定出用于处理该流量的业务板卡,然后将该流量发送至确定出的业务板卡进行处理。具体的,确定出用于处理流量的业务板卡可包括:交换芯片根据流量的源IP地址和目的IP地址得到一个哈希值,再根据分流算法对该哈希值进行计算得到一个计算结果,将与该计算结果对应的业务板卡作为用于处理该流量的业务板卡。

需要注意的是,图1所示的网络设备结构只是示例,并不用于具体限制本申请。并且,实际应用时,网络设备还可能包括主控板、交换网板、背板等结构,由于其并非本申请方案主要涉及的结构,在此不做详述。

下面结合图2对本申请提供的会话信息同步方法进行举例描述,通过本申请提供的会话信息同步方法,可以实现网络设备各业务板卡间会话信息的同步,且在同步过程中可以有效节约CPU资源。

参见图2,图2为本申请提供的会话信息同步方法流程图。在一个例子中,该方法可应用于网络设备如网关等,该网络设备包括至少两个业务板卡。如图2所示,该流程可包括如下步骤S201-S203:

步骤S201,为网络设备的所有业务板卡创建一个组播组,该组播组的组播MAC地址为指定MAC地址。

在一个例子中,为网络设备的所有业务板卡创建一个组播组可包括:配置每一业务板卡上至少一个端口的组播MAC地址为指定MAC地址,以及,为每一业务板卡配置用于向组播组内其他业务板卡发送组播报文的出端口信息。

作为一个实施例,上述指定MAC地址可为任意组播MAC地址,符合组播MAC地址的格式要求。具体的,组播MAC地址由48bit组成,其中高24bit为0x01005e,第25bit为0,即组播MAC地址的高25bit为固定值,至于组播MAC地址的低23bit,可由组播IP地址的低23bit映射得到。在为业务板卡的端口配置组播MAC地址时,作为一个实施例,可将每一业务板卡的所有端口的组播MAC地址均配置为指定MAC地址,也可将每一业务板卡上相同数量的端口的组播MAC地址配置为指定MAC地址。关于具体如何为端口静态配置组播MAC地址,本领域已有较为成熟的技术,在此不做详述。

作为一个实施例,当网络设备上的业务板卡发生变化,比如增加业务板卡或者拔出现有的业务板卡,则为了保证各业务板卡会话信息的同步,可重新为变化后的各业务板卡创建一个组播组,为新建的组播组内的每一业务板卡配置用于向组播组内其他业务板卡发送组播报文的出端口信息。以网络设备上新增一业务板卡为例,则可为网络设备当前的各业务板卡分别重新配置用于向组播组内其他业务板卡发送组播报文的出端口信息,并配置新增的组播组的至少一个端口的组播MAC地址为指定MAC地址。

步骤S202,任一业务板卡的CPU在对会话信息进行操作后,若检查当前网络设备启用了会话同步功能,则将上述操作的相关信息封装在目的MAC地址为上述指定MAC地址的组播报文中,并将该组播报文发送至本业务板卡的交换芯片,以由交换芯片将该组播报文发送至上述组播组中除本业务板卡外的其他业务板卡。

会话同步功能即各业务板卡间同步会话信息的功能,在一个例子中,网络设备可根据接收到的配置启用或禁用会话同步功能。作为一个实施例,网络设备可采用指定变量的取值来指示是否启用会话同步功能。具体的,业务板卡的CPU在对会话信息进行操作后,可检查上述指定变量的当前值,若指定变量的当前值为第一值,则确定网络设备启用了会话同步功能,若指定变量的当前值为第二值,则确定网络设备未启用会话同步功能。

关于CPU具体如何在对会话信息进行操作后,将操作的相关信息封装在组播报文中,下文举例描述,在此暂不赘述。

业务板卡的交换芯片将组播报文发送至组播组中除本业务板卡外的其他业务板卡的过程可包括:交换芯片根据组播组中除本业务板卡外的其他业务板卡数量复制相同数量的组播报文,并将复制后的组播报文发送至其他业务板卡。以网络设备上创建的组播组包括业务板卡A、业务板卡B为例,当业务板卡A的交换芯片接收到来自CPU的组播报文时,由于组播组中除本业务板卡A外只包括一个业务板卡B,则交换芯片可据此复制1份组播报文,并将复制后的组播报文发送到业务板卡B。

步骤S203,任一业务板卡在接收到目的MAC地址为上述指定MAC地址的组播报文时,根据该组播报文操作会话信息。

通过本步骤S203,使业务板卡可根据其他业务板卡发送的组播报文同步操作自身的会话信息,以使自身的会话信息和其他业务板卡同步。

至此,完成图2所示流程。

通过图2所示流程,本申请能够实现各业务板卡间会话信息的同步,当任一业务板卡异常重启时,该业务板卡上的流量可由其他业务板卡正常转发。并且无论组播组内存在多少个业务板卡,各业务板卡的CPU均可只向交换芯片发送一份封装有待同步的信息的组播报文,由此可以在会话信息同步过程中有效节约CPU资源。

下面对上述图2所示流程中,CPU具体如何在对会话信息进行操作后,将操作的相关信息封装在组播报文中进行举例描述:

在一个例子中,CPU对会话信息进行的操作可包括:新增会话信息、修改已记录的会话信息以及删除已记录的会话信息。

作为一个实施例,当CPU新增会话信息时,可至少将新增的会话信息封装在目的MAC地址为指定MAC地址的组播报文中。作为一个实施例,组播报文中还可封装用于指示新增会话信息的指令。

作为一个实施例,CPU可在如下情况下新增会话信息:业务板卡具有快速转发功能,业务板卡的CPU对于不能按照快速转发流程转发的报文,可在该报文满足进入慢速转发流程的条件的情况下,按照慢速转发流程转发该报文。其中,慢速转发流程至少包括:提取报文所属会话的会话信息,并将该会话信息记录至会话缓存表,这里的会话信息可包括会话的正向五元组信息和反向五元组信息,进一步的,CPU可对于记录的正向五元组信息和反向五元组信息分别增加标记,以便后续依据该标记处理相关的业务。为便于理解本实施例,下面对快速转发流程和慢速转发流程进行简要说明:

作为一个实施例,快速转发流程可包括:业务板卡的CPU在接收到待处理的报文后,可解析出报文的五元组信息(源IP地址、目的IP地址、源端口、目的端口、协议号),并根据该五元组信息查询会话缓存表,如果会话缓存表中存在与该五元组信息匹配的会话表项(即会话表项中的会话五元组信息与报文的五元组信息完全一致),则可进一步判断该会话表项中的快速转发表项(包括出接口、下一跳等)是否可用,并在快速转发表项可用时,按照快速转发表项直接转发该报文。作为一个实施例,CPU在解析出报文的五元组信息后,可将该五元组信息以及该网络设备上该报文的入接口信息记录在网络封包中。

若CPU判断会话表项中的快速转发表项不可用,比如快速转发表项被标记了老化标记,或者没有在会话缓存表中查询到与报文的五元组信息匹配的会话表项(即不存在报文对应的快速转发表项),则无法按照快速转发流程转发报文。对于不能按照快速转发流程转发的报文,CPU可判断其是否满足进入慢速转发流程的条件,若满足则进入慢速转发流程,若不满足则可将报文丢弃。以CPU没有在会话缓存表中查询到与报文的五元组信息匹配的会话表项为例,则CPU可新建会话表项,并提取报文所属会话的会话信息记录至新建的会话表项中。

在一些实施例中,慢速转发流程除将报文所属会话的会话信息记录至会话缓存表外,还可包括报文信息校验、攻击报文检测和/或路由表项查询等步骤,具体可根据实际需要设置。

作为一个实施例,当CPU修改已记录的会话信息时,可至少将修改前后的会话信息封装在目的MAC地址为指定MAC地址的组播报文中。作为一个实施例,组播报文中还可封装用于指示修改会话信息的指令。

作为一个实施例,当CPU删除已记录的会话信息时,可至少将删除的会话信息封装在目的MAC地址为指定MAC地址的组播报文中。作为一个实施例,组播报文中还可封装用于指示删除会话信息的指令。

上述实施例只是一种示例,实际应用时可根据具体需求对方案进行调整,比如可配置业务板卡的CPU仅在新增会话信息、修改已记录的会话信息时将会话信息同步给其他业务板卡。

至此,完成对图2所示流程中,CPU具体如何在对会话信息进行操作后,将操作的相关信息封装在组播报文中的描述。

为便于理解图2所示流程,下面结合一个具体的例子对图2所示流程进行描述:

以网络设备为网关设备、该网关设备上接入有FW业务板卡A和FW业务板卡B为例。根据图2所示流程,可为FW业务板卡A和FW业务板卡B创建一个组播组(记为组播组G),组播组G的组播MAC地址为指定MAC地址MAC M。

当源IP地址为1.1.1.1,目的IP地址为2.2.2.2的报文P进入该网关设备时,假设FW业务板卡A的交换芯片首先接收到报文P,则交换芯片可先确定用于处理该报文的业务板卡。具体的,交换芯片可对报文P的源IP地址和目的IP地址进行哈希,得到哈希值H,然后根据分流算法对哈希值H进行计算得到一个计算结果,假设得到的计算结果对应的业务板卡为FW业务板卡A,则交换芯片可将报文P上送至FW业务板卡A的CPU处理。

FW业务板卡A的CPU接收到报文P后,解析出报文的五元组信息,该五元组信息包括报文的源IP地址、目的IP地址、源端口、目的端口和协议号,CPU可将解析出的五元组信息和报文进入网关设备的入接口信息记录在网络封包中。

解析出报文P的五元组信息后,CPU可根据该五元组信息查询当前记录的会话缓存表,如果会话缓存表中存在于该五元组信息匹配的会话表项,则CPU可进一步判断该会话表项中的快速转发表项是否可用,如果可用,则按照快速转发表中的出接口等转发信息转发报文P。

如果CPU没有查询到与报文P的五元组信息匹配的会话表项,或者查询到的会话表项中的快速转发表不可用,则可在满足条件的情况下进入慢速转发流程。

在慢速转发流程中,CPU可将报文P所属会话的会话信息新增至会话缓存表中,若检查网关设备启用了会话同步功能,则可将新增的会话信息封装至组播报文中,并将组播报文的目的MAC地址赋值为组播G的组播MAC地址MAC M。然后,CPU可将该组播报文发送至FW业务板卡A的交换芯片,由交换芯片根据组播组G中的成员数量复制响应数量的组播报文,由于此时组播组G仅包含FW业务板卡A和FW业务板卡B,因此交换芯片可复制一份包组播报文,并将该组播报文发送到FW业务板卡B。

FW业务板卡B接收到来自FW业务板卡A的组播报文时,可从该组播报文中提取出报文P的会话信息,并将该会话信息增加到本业务板卡的会话缓存表中,从而实现会话信息同步。

以上对本申请提供的方法进行了描述,下面对本申请提供的装置进行描述:

参见图3,图3为本申请提供的会话信息同步装置结构图。在一个例子中,该装置可应用于包括至少两个业务板卡的网络设备。如图3所示,该装置包括:创建单元301、发送单元302和同步单元303。

在一个例子中,创建单元301,用于为上述至少两个业务板卡创建一个组播组,上述组播组的组播MAC地址为指定MAC地址;

发送单元302,用于使任一业务板卡的CPU对会话信息进行操作后,若检查当前网络设备启用了会话同步功能,则将上述操作的相关信息封装在目的MAC地址为上述指定MAC地址的组播报文中,并将上述组播报文发送至本业务板卡的交换芯片,以由交换芯片将上述组播报文发送至上述组播组中除本业务板卡外的其他业务板卡;

同步单元303,任一业务板卡在接收到目的MAC地址为上述指定MAC地址的组播报文时,根据上述组播报文操作会话信息。

作为一个实施例,上述CPU对会话信息执行操作包括:上述CPU新记录会话信息;上述操作的相关信息至少包括:上述CPU新记录的会话信息;或者,

上述CPU对会话信息执行操作包括:上述CPU修改已记录的会话信息;上述操作的相关信息至少包括:上述CPU修改后的会话信息;或者,

上述CPU对会话信息执行操作包括:上述CPU删除已记录的会话信息;上述操作的相关信息至少包括:上述CPU删除的会话信息。

作为一个实施例,上述发送单元302检查当前网络设备是否启用会话同步功能,包括:

若检查指示启用会话同步功能的指定变量的当前值为第一值,则确定网络设备启用了会话同步功能;若检查上述指定变量的当前值为第二值,则确定网络设备未启用会话同步功能。

作为一个实施例,上述创建单元301为上述至少两个业务板卡创建一个组播组,包括:

配置每一业务板卡的至少一个端口的组播MAC地址为上述指定MAC地址,以及,为每一业务板卡配置用于向组播组内其他业务板卡发送组播报文的出端口信息。

作为一个实施例,上述创建单元301还用于:

当上述网络设备增加业务板卡或者拔出现有的业务板卡时,重新为每一业务板卡配置用于向组播组内其他业务板卡发送组播报文的出端口信息。

上述装置中各模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

请参见图4,图4为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器401、存储器402和通信总线403。处理器401以及存储器402通过通信总线403完成相互间的通信。其中,存储器402上存放有计算机程序;处理器401可以通过执行存储器402上所存放的程序,执行上文描述的会话信息同步方法。

本文中提到的存储器402可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器402可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图4中的存储器402,所述计算机程序可由图4所示电子设备中的处理器401执行以实现上文中描述的会话信息同步方法。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:平坦衰落信道下空时块编码MSK系统的信道估计方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!