报文转发方法、装置、转发系统、存储介质及电子设备与流程

文档序号:16672267发布日期:2019-01-18 23:39阅读:156来源:国知局
报文转发方法、装置、转发系统、存储介质及电子设备与流程

本公开涉及网络安全领域,具体地,涉及一种报文转发方法、装置、转发系统、存储介质及电子设备。



背景技术:

对于安全厂商而言,防火墙针对于攻击防御的功能都是在开启了对应的攻击检测后才能起到防范攻击的效果。换句话讲,只有防火墙开启攻击防御模式,才能将攻击报文丢弃。但是对于没有开启攻击防御模式的防火墙而言,在其遭受攻击时,需要处理超负荷的攻击报文,很有可能因为资源耗尽而瘫痪,影响正常报文的转发。

用户可以手动设置是否开启防火墙的syn攻击防御模式。防火墙作为一个转发设备,如果在遭受到synflood攻击、但没有开启syn攻击防御模式时,防火墙可能会因为遭受synflood攻击而使得其资源耗尽,无法处理正常报文,防火墙由于遭受到synflood攻击而导致其功能瘫痪。对于防火墙转发设备而言,基本上都是基于报文的五元组(源ip地址,源端口号,目的ip地址,目的端口号,传输协议)建立会话表并基于该会话表对报文进行转发。当synflood攻击发生时,由于防火墙未开启syn攻击防御模式,防火墙会将这种攻击报文与正常报文用相同的处理逻辑进行处理,从而导致会话表迅速满载而无法建立新的连接;在攻击报文没有停止的情况下,正常报文基本上也无法保证正常转发,就失去了一个防火墙的基本功能。

针对上述场景,用户可以手动开启防火墙的syn攻击防御模式,以应对synflood攻击。然而,一旦用户忘记开启防火墙的syn攻击防御模式,就会导致系统在受到synflood攻击时出现上面所提到的问题。另外,在很多场景下,syn攻击报文也可能需要进行正常转发。例如,有一些学校、科研机构或者军方,当需要做一些基于synflood攻击的实验时,要求攻击报文可以通过防火墙转发设备发送出去。在这种情况下,如果防火墙开启了syn攻击防御模式,那么syn攻击报文会被丢弃,从而导致无法做成实验;而如果防火墙没有开启syn攻击防御模式,则可能会导致防火墙处于瘫痪状态,进而导致防火墙无法正常工作。



技术实现要素:

本公开的目的是提供一种可以在防火墙未开启攻击防御模式时,能够对攻击报文进行转发的同时,不影响对正常报文进行处理的报文转发方法、装置、转发系统、介质及电子设备。

为了实现上述目的,本公开提供一种报文转发方法,应用于转发系统中的转发cpu,所述方法包括:在确定所述转发系统遭受到攻击的情况下,若接收到的报文为syn类型,确定接收到的报文是否为潜在的攻击报文;在确定所述报文为潜在的攻击报文时,将所述报文发送至所述转发系统中的防攻击cpu,以由所述防攻击cpu对所述报文进行转发。

可选地,所述确定接收到的报文是否为潜在的攻击报文,包括:确定所述报文的源ip地址是否在ip地址白名单中;在所述报文的源ip地址不在所述ip地址白名单中时,确定所述报文为潜在的攻击报文;在所述报文的源ip地址在所述ip地址白名单中时,确定所述报文为正常报文。

可选地,所述方法还包括:在确定所述报文为正常报文时,将所述报文发送至所述转发系统中、与所述转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配;响应于所述逻辑cpu对所述报文匹配成功,在所述转发cpu内创建针对所述报文的普通会话表,并基于所创建的普通会话表对所述报文进行转发。

可选地,所述方法还包括:若接收到的报文为非syn类型,根据所述报文查询在所述转发cpu内建立的普通会话表;当查询到与所述报文相对应的普通会话表时,基于查询到的所述普通会话表对所述报文进行转发;当未查询到与所述报文相对应的普通会话表时,根据所述报文查询在所述防攻击cpu内建立的简易会话表,其中,所述简易会话表内所包含的信息为所述普通会话表内所包含的信息中的一部分;当查询到与所述报文相对应的简易会话表时,根据所述报文的类型,对所述报文进行相应的转发处理。

可选地,所述当查询到与所述报文相对应的简易会话表时,根据所述报文的类型,对所述报文进行相应的转发处理,包括:当查询到与所述报文相对应的简易会话表时,若接收到的报文为syn-ack类型,则基于查询到的所述简易会话表对所述报文进行转发;若接收到的报文为ack类型,则将所述报文发送至所述转发系统中、与所述转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配;响应于所述逻辑cpu对所述报文匹配成功,在所述转发cpu内创建针对所述报文的普通会话表,并基于所创建的普通会话表对所述报文进行转发。

可选地,所述方法还包括:若接收到的报文为ack类型,则所述方法还包括:向所述防攻击cpu发送删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;和/或将所述报文的源ip地址添加至ip地址白名单中。

可选地,当出现以下情况之一时,确定所述转发系统遭受到攻击:由所述转发cpu已建立的普通会话表的个数占所述转发cpu中的可创建普通会话表总数的占比达到第一预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中的已建立普通会话表的个数的占比达到第二预设比例;由所述转发cpu在当前时段内已建立的普通会话表的个数占历史同时段内的全部转发cpu中的普通会话表的总数平均值的占比到达第三预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中已建立的普通会话表的个数的占比达到第四预设比例。

根据本公开的第二方面,提供一种报文转发方法,应用于转发系统中的防攻击cpu,所述方法包括:在确定所述转发系统遭受到攻击的情况下,接收所述转发系统中的转发cpu发送的syn类型的报文,其中,所述syn类型的报文被所述转发cpu确定为潜在的攻击报文;在所述防攻击cpu内创建针对所述报文的简易会话表,其中,所述简易会话表内所包含的信息为由所述转发cpu创建的普通会话表内所包含的信息中的一部分;基于所创建的简易会话表对所述报文进行转发。

可选地,所述方法还包括:接收所述转发cpu发送的删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;响应于所述删除指令,删除与所述报文相对应的简易会话表。

根据本公开的第三方面,提供一种报文转发装置,应用于转发系统中的转发cpu,所述装置包括:第一确定模块,用于在确定所述转发系统遭受到攻击的情况下,若接收到的报文为syn类型,确定接收到的报文是否为潜在的攻击报文;第一发送模块,用于在确定所述报文为潜在的攻击报文时,将所述报文发送至所述转发系统中的防攻击cpu,以由所述防攻击cpu对所述报文进行转发。

可选地,所述第一确定模块包括:第一确定子模块,用于确定所述报文的源ip地址是否在ip地址白名单中;第二确定子模块,用于在所述报文的源ip地址不在所述ip地址白名单中时,确定所述报文为潜在的攻击报文;在所述报文的源ip地址在所述ip地址白名单中时,确定所述报文为正常报文。

可选地,所述装置还包括:第二发送模块,用于在确定所述报文为正常报文时,将所述报文发送至所述转发系统中、与所述转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配;第一转发模块,用于响应于所述逻辑cpu对所述报文匹配成功,在所述转发cpu内创建针对所述报文的普通会话表,并基于所创建的普通会话表对所述报文进行转发。

可选地,所述装置还包括:第一查询模块,用于若接收到的报文为非syn类型,根据所述报文查询在所述转发cpu内建立的普通会话表;第二转发模块,用于当查询到与所述报文相对应的普通会话表时,基于查询到的所述普通会话表对所述报文进行转发;第二查询模块,用于当未查询到与所述报文相对应的普通会话表时,根据所述报文查询在所述防攻击cpu内建立的简易会话表,其中,所述简易会话表内所包含的信息为所述普通会话表内所包含的信息中的一部分;第三转发模块,用于当查询到与所述报文相对应的简易会话表时,根据所述报文的类型,对所述报文进行相应的转发处理。

可选地,所述第三转发模块,包括:第一转发子模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为syn-ack类型,则基于查询到的所述简易会话表对所述报文进行转发;发送子模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为ack类型,则将所述报文发送至所述转发系统中、与所述转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配;第二转发子模块,用于响应于所述逻辑cpu对所述报文匹配成功,在所述转发cpu内创建针对所述报文的普通会话表,并基于所创建的普通会话表对所述报文进行转发。

可选地,所述装置还包括:指令发送模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为ack类型,向所述防攻击cpu发送删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;和/或更新模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为ack类型,将所述报文的源ip地址添加至ip地址白名单中。

可选地,当出现以下情况之一时,确定所述转发系统遭受到攻击:由所述转发cpu已建立的普通会话表的个数占所述转发cpu中的可创建普通会话表总数的占比达到第一预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中的已建立普通会话表的个数的占比达到第二预设比例;

由所述转发cpu在当前时段内已建立的普通会话表的个数占历史同时段内的全部转发cpu中的普通会话表的总数平均值的占比到达第三预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中已建立的普通会话表的个数的占比达到第四预设比例。

根据本公开的第四方面,提供一种报文转发装置,应用于转发系统中的防攻击cpu,所述装置包括:第一接收模块,用于在确定所述转发系统遭受到攻击的情况下,接收所述转发系统中的转发cpu发送的syn类型的报文,其中,所述syn类型的报文被所述转发cpu确定为潜在的攻击报文;简易会话表创建模块,用于在所述防攻击cpu内创建针对所述报文的简易会话表,其中,所述简易会话表内所包含的信息为由所述转发cpu创建的普通会话表内所包含的信息中的一部分;第四转发模块,用于基于所创建的简易会话表对所述报文进行转发。

可选地,所述装置还包括:第二接收模块,用于接收所述转发cpu发送的删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;删除模块,用于响应于所述删除指令,删除与所述报文相对应的简易会话表。

根据本公开的第五方面,提供一种转发系统,所述系统包括:网卡;转发cpu,与所述网卡通信,所述转发cpu包括第三方面所述的报文转发装置;防攻击cpu,与所述网卡和所述转发cpu通信,所述防攻击cpu包括第四方面所述的报文转发装置;逻辑cpu,与所述转发cpu一一对应,每个所述逻辑cpu用于接收相对应的转发cpu发送的报文,并按照匹配策略对所述报文进行匹配,当匹配成功时,向所述相对应的转发cpu发送匹配成功消息,以便所述相对应的转发cpu响应于所述匹配成功消息,创建针对所述报文的普通会话表。

可选地,每个所述逻辑cpu还用于当匹配失败时,丢弃所述报文。

可选地,所述转发cpu为多个,所述逻辑cpu为多个;以及;所述网卡用于在确定所述转发系统遭受到攻击的情况下,将接收到的syn类型的报文发送至所述转发系统中的第一转发cpu,其中,所述第一转发cpu为多个所述转发cpu中的任一转发cpu,并且在本次受攻击期间,所述第一转发cpu固定不变;以及,将接收到的非syn类型的报文发送至所述转发系统中除所述第一转发cpu之外的任一其他转发cpu。

根据本公开的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。

根据本公开的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第二方面所述方法的步骤。

根据本公开的第八方面,提供一种电子设备,包括:本公开第六方面所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。

根据本公开的第九方面,提供一种电子设备,包括:本公开第七方面所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。

在上述技术方案中,在确定转发系统遭受到攻击的情况下,将潜在的攻击报文发送至防攻击cpu进行处理。由此,当确定整个转发系统遭受到攻击时,可以保证由防攻击cpu对潜在的攻击报文进行转发,即可以保证syn攻击报文的转发,而不会像现有技术中当防火墙开启syn攻击防御模式时,syn攻击报文会被直接丢弃而影响其转发。同时,由于将潜在的攻击报文发送至防攻击cpu进行处理,所以syn攻击报文不会通过转发cpu进行处理,从而使得转发cpu可以处理正常报文而不受syn攻击报文的影响,以保证转发cpu的性能不受影响。通过上述技术方案,可以在实现正常报文和syn攻击报文的转发的同时,保证对syn攻击报文进行转发时,不会像现有技术中出现影响对正常报文的处理、导致转发系统性能下降甚至瘫痪的现象,从而有效提高转发系统的健壮性。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据本公开的一种实施方式提供的转发系统的示意图;

图2是根据本公开的一种实施方式提供的报文转发方法的流程图;

图3是确定接收到的报文是否为潜在的攻击报文的一种示例实现方式的流程图;

图4是根据本公开的另一种实施方式提供的报文转发方法的流程图;

图5是根据本公开的另一种实施方式提供的报文转发方法的流程图;

图6a是根据本公开的另一种实施方式提供的报文转发方法的流程图;

图6b是当查询到与报文相对应的简易会话表时,根据报文的类型,对报文进行相应的转发处理的一种示例实现方式的流程图;

图7a是根据本公开的另一种实施方式提供的报文转发方法的流程图;

图7b是根据本公开的一种实施方式提供的转发系统中网卡、转发cpu、逻辑cpu及防攻击cpu的对应关系示意图;

图8是根据本公开的另一种实施方式提供的报文转发方法的流程图;

图9是根据本公开的一种实施方式提供的报文转发装置的框图;

图10是根据本公开的一种实施方式提供的报文转发装置中第一确定模块的框图;

图11是根据本公开的另一种实施方式提供的报文转发装置的框图;

图12是根据本公开的另一种实施方式提供的报文转发装置的框图;

图13是根据本公开的另一种实施方式提供的报文转发装置的框图;

图14是根据本公开的另一种实施方式提供的报文转发装置的框图;

图15是根据本公开的另一种实施方式提供的报文转发装置的框图;

图16是根据一示例性实施例示出的一种电子设备的框图;

图17是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

在tcp/ip传输协议中,tcp协议提供可靠的连接服务,即采用三次握手建立一个会话表的连接:

第一次握手:建立连接时,客户端发送syn类型的报文(syn=j)到服务器,此时会话表的状态为syn_send状态,等待服务器确认;

第二次握手:服务器收到该syn类型的报文,必须确认客户端的syn(ack=j+1),同时服务器也发送一个syn类型的报文(syn=k),即syn-ack类型的报文,此时会话表的状态为syn_recv状态;

第三次握手:客户端收到服务器的syn-ack类型的报文,向服务器发送ack类型的确认报文(ack=k+1),此时,会话表状态为established(连接建立完成)状态,完成三次握手,客户端与服务器之间成功建立连接。其中,j,k为自然数。

synflood攻击便是针对上述三次握手建立连接的过程的攻击:客户端不断地发送syn类型的报文,而不响应来自服务器的syn-ack类型的报文,使得创建的会话表处于syn_recv状态,且处于syn_recv状态的会话表的数目迅速增长,最后服务器的会话表等待队列达到最大数目,之后就不能创建新的会话表以接受新的连接。

而防火墙作为中间转发设备,如果在未开启syn攻击防御模式时,在遭受到synflood攻击时,其影响主要有两方面:一方面是十分消耗资源,因为针对攻击报文建立的会话表占用了正常的会话表数量,当资源耗尽时,防火墙就相当于瘫痪而无法处理其他正常报文;另一方面是过量占用cpu,因为攻击报文非常多,处理过程中会导致正常报文无法得到正常处理。因此,在防火墙受到synflood攻击时,会由于需要维持太多处于半连接状态的会话表,而导致自身转发功能瘫痪。在防火墙在开启syn攻击防御模式时,会将需要转发的syn攻击报文丢弃,难以满足用户需求。

为了解决上述问题,在防火墙未开启syn攻击防御模式时,为了保证对syn攻击报文的转发不影响转发系统对正常报文的处理,本公开提供一种转发系统。图1所示,为根据本公开的一种实施方式提供的转发系统的示意图。如图1所示,所述系统包括:

网卡,例如图1中的网卡1~网卡2;

转发cpu,例如图1中的cpu0~cpu3,与所述网卡通信,用于从所述网卡接收报文,并对该报文进行转发,使用dpdk(dataplanedevelopmentkit,数据平面开发套件)开发平台快速处理报文,运行在用户态。

防攻击cpu,例如图1中的cpus,负责处理潜在的攻击报文,与所述网卡和所述转发cpu通信,用于从转发cpu接收报文,并通过网卡对该报文进行转发,运行在用户态。

逻辑cpu,例如图1中的cpu4~cpu7,与所述转发cpu一一对应,负责根据其匹配策略对接收到的报文进行匹配,运行在内核态。

示例地,本公开提供的转发系统可以是基于异构平台的转发系统。在该转发系统中,对cpu进行角色分配,不同的角色cpu具有专一职能,即一种类型的cpu只执行其相对应的功能,而不需要执行其他类型的cpu的功能。

图2所示,为根据本公开的一种实施方式提供的报文转发方法的流程图,该方法可以应用于图1所示的转发系统中的转发cpu,如图2所述,所述方法包括:

在s21中,在确定转发系统遭受到攻击的情况下,若接收到的报文为syn类型,确定接收到的报文是否为潜在的攻击报文。

图3所示,为确定接收到的报文是否为潜在的攻击报文的一种示例实现方式,如图3所示,包括:

在s31中,确定所述报文的源ip地址是否在ip地址白名单中,当报文的源ip地址不在ip地址白名单中,转入s32。

其中,ip地址白名单为共享资源,可以由任一转发cpu进行读写。在ip地址白名单中的ip地址为已经成功建立过连接的ip地址。

在s32中,确定报文为潜在的攻击报文。

当报文的源ip地址不在ip地址白名单中时,表示该报文的源ip地址之前尚未建立过连接,此时,不能确定该源ip地址是否安全,可以将来自于该ip地址的报文确定为潜在的攻击报文。通过上述技术方案,由于ip地址白名单处于不断更新过程中,将来自于尚未建立过连接的ip地址的报文作为潜在的攻击报文,可以快速确定出潜在的攻击报文,有效避免转发系统将攻击报文作为正常报文进行转发、而造成转发系统性能降低甚至瘫痪的风险。

在s22中,在确定报文为潜在的攻击报文时,将报文发送至转发系统中的防攻击cpu,以由所述防攻击cpu对所述报文进行转发。

其中,在本公开的转发系统中的逻辑cpu中,选择任一逻辑cpu作为防攻击cpu,以专门处理潜在的攻击报文。

在上述技术方案中,在确定转发系统遭受到攻击的情况下,将潜在的攻击报文发送至防攻击cpu进行处理。由此,当确定整个转发系统遭受到攻击时,可以保证由防攻击cpu对潜在的攻击报文进行转发,即可以保证syn攻击报文的正常转发,而不会像现有技术中当防火墙开启syn攻击防御模式时,syn攻击报文会被直接丢弃而影响其转发。同时,由于将潜在的攻击报文发送至防攻击cpu进行处理,所以syn攻击报文不会通过转发cpu进行处理,从而使得转发cpu可以处理正常报文而不受syn攻击报文的影响,以保证转发cpu的性能不受影响。通过上述技术方案,可以在实现正常报文和syn攻击报文的转发的同时,保证对syn攻击报文进行转发时,不会像现有技术中出现影响对正常报文的处理、导致转发系统性能下降甚至瘫痪的现象,从而有效提高转发系统的健壮性。

图4所示,为根据本公开的另一种实施方式提供的报文转发方法的流程图,该方法可以应用于图1所示的转发系统中的防攻击cpu,如图4所示,所述方法包括:

在s41中,在确定转发系统遭受到攻击的情况下,接收转发系统中的转发cpu发送的syn类型的报文。其中,接收到的syn类型的报文被所述转发cpu确定为潜在的攻击报文。

在s42中,在防攻击cpu内创建针对报文的简易会话表,其中,所述简易会话表内所包含的信息为由所述转发cpu创建的普通会话表内所包含的信息中的一部分。

本公开中,会话表包括两种类型,一种为普通会话表,其与现有技术中建立的会话表相同,包含报文转发所需的全部信息,例如,可以包括五元组、完整状态机、各种抓包策略、应用类型等等。一种为简易会话表,其所包含的信息为普通会话表内所包含的信息中的一部分,例如,其可以为仅包含五元组和简单状态机的会话表。其中,简易会话表的作用为判断五元组中的源ip地址和目的ip地址之间能否成功建立连接,即该潜在的攻击报文是否为真正的攻击报文。因此,简易会话表包含的简单状态机只需包含会话表建立连接过程中状态的转换,而普通会话表中的完整状态机除包含会话表建立连接过程中状态的转换之外,还包含会话表断开连接过程中状态的转换。因此,简易会话表的大小仅为普通会话表的十分之一左右,并不会占用每个转发cpu的普通会话表数量。防攻击cpu可创建的简易会话表的个数(即,简易会话表的数量上限)是基于license进行设置的。

在s43中,基于所创建的简易会话表对报文进行转发。

在上述技术方案中,在转发cpu确定出潜在的攻击报文时,将该潜在的攻击报文发送至防攻击cpu进行处理。在防攻击cpu对潜在的攻击报文进行处理时,转发cpu可以对正常报文进行处理,并且防攻击cpu中潜在的攻击报文不会对转发cpu的性能产生影响,从而在提高转发系统整体的并发性能的同时,有效提高系统的健壮性。同时,防攻击cpu中可创建的简易会话表的个数有限,可以有效避免synflood攻击可能造成的资源耗尽问题,进一步提高转发系统的稳定性。

可选地,如图3所示,该方法应用于图1所示的转发系统中的转发cpu时,该方法还可以包括:

在s31中,当报文的源ip地址在ip地址白名单中时,转入s33。

在s33中,确定报文为正常报文。

当报文的源ip地址在ip地址白名单中时,表示该源ip地址之前成功建立过连接,即可以排除其作为syn攻击报文的源ip地址的可能性,可以确定来自于该ip地址的报文为正常报文。

在s34中,将报文发送至转发系统中、与转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配。

在转发系统中,每个逻辑cpu用于接收相对应的转发cpu发送的报文,并按照匹配策略对该报文进行匹配,当匹配成功时,向该相对应的转发cpu发送匹配成功消息,以便该相对应的转发cpu响应于匹配成功消息,创建针对该报文的普通会话表。

图5所示,为根据本公开的一种实施方式提供的报文转发方法的流程图,该方法可以应用于图1所示的转发系统中的逻辑cpu。如图5所示,该方法包括:

在s51中,接收转发系统中、与逻辑cpu相对应的转发cpu发送的报文。

在s52中,按照匹配策略对所述报文进行匹配。

在s53中,判断匹配是否成功,在判断匹配成功时,转入s54。

在s54中,向转发cpu发送匹配成功消息,以便所述转发cpu响应于匹配成功消息,创建针对所述报文的普通会话表。

在本公开中,普通会话表是每核资源,即每个转发cpu都有固定数量的普通会话表资源,该固定数量是基于license进行设置的。由于普通会话表为每核资源,使得每个转发cpu在创建普通会话表时不会出现资源竞争问题,因此,转发cpu的处理流程可以无需加锁,可以保证多核下转发系统的性能是线性增长的。

逻辑cpu中包含匹配策略,该匹配策略可以初步判断从转发cpu中接收的报文是否合法,即是否可以根据该报文创建普通会话表。在逻辑cpu接收到来自转发cpu的报文时,根据其匹配策略判断是否可以根据该报文创建会话表,并在其匹配策略匹配成功时,向对应的转发cpu发送匹配成功消息,以便所述转发cpu响应于匹配成功消息,创建针对所述报文的普通会话表。

在上述技术方案中,转发cpu将确定为正常的报文发送至逻辑cpu进行匹配。逻辑cpu对其接收到的报文进行匹配,并在匹配成功时向转发cpu发送匹配成功消息。这样,可以在逻辑cpu进行报文的策略匹配时,不影响转发cpu对报文的转发,有效提高转发系统的并发性能。

可选地,每个逻辑cpu还用于当对报文匹配失败时,丢弃该报文。在逻辑cpu按照匹配策略对其接收到的报文进行匹配失败时,表示该报文不合法,此时,可以直接将该报文丢弃,而不需要转发cpu针对该报文创建普通会话表,有效避免普通会话表资源的浪费,提高转发系统的处理效率。

当转发cpu和逻辑cpu之间进行报文交互时,两者之间会建立核间队列。示例地,本公开中转发cpu和逻辑cpu的个数可以相等,且两者之间为一一对应的关系,这样既可以保证核间队列的数量最少,又可以在多核转发cpu和逻辑cpu进行报文交互时,不涉及资源竞争的问题(转发cpu和逻辑cpu进行消息交互时,无需加锁),由此避免出现多核竞争同一资源时对转发系统性能的影响。

转回图3,在s35中,响应于逻辑cpu对报文匹配成功,在转发cpu内创建针对报文的普通会话表,并基于所创建的普通会话表对报文进行转发。

逻辑cpu对其接收到的报文匹配成功时,会向转发cpu发送匹配成功的消息。转发cpu接收到该匹配成功的消息后,创建针对报文的普通会话表,并基于该普通会话表对报文进行转发。

在上述技术方案中,由于ip地址白名单中的ip地址为之前已经成功建立起连接的源ip地址,在确定转发系统遭受到攻击的情况下,对于源ip地址在ip地址白名单中的syn类型的报文,可以确定该报文为正常报文并将该报文发送至逻辑cpu进行策略匹配。在逻辑cpu匹配成功时,向转发cpu发送匹配成功消息,之后转发cpu创建针对报文的普通会话表,并基于该普通会话表对报文进行转发。通过上述技术方案,对于确定为正常的syn类型的报文可以直接由转发cpu进行处理、而不需要将其发送至防攻击cpu,可以在保证转发cpu不受syn攻击报文影响的前提下,有效降低防攻击cpu的工作负荷。同时,转发cpu将该正常报文发送至逻辑cpu进行匹配,可以在逻辑cpu进行报文的策略匹配时,不影响转发cpu对报文的转发,即可以在提高转发系统转发效率的同时,有效提高系统的并发处理效率,从而提高转发系统的整体性能。

可选地,如图6a所示,当该方法应用于图1所示的转发系统中的转发cpu时,该方法还可以包括:

在s61中,若接收到的报文为非syn类型,根据报文查询在转发cpu内建立的普通会话表。

在s62中,判断是否查询到与报文相对应的普通会话表,当查询到与报文相对应的普通会话表时,转入s63,否则,当没有查询到与报文相对应的普通会话表时,转入s64。

在s63中,基于查询到的普通会话表对报文进行转发。

在s64中,根据报文查询在防攻击cpu内建立的简易会话表,其中,所述简易会话表内所包含的信息为所述普通会话表内所包含的信息中的一部分。

在s65中,当查询到与报文相对应的简易会话表时,根据报文的类型,对报文进行相应的转发处理。

图6b所示,为在s65中,查询到与报文相对应的简易会话表时,根据报文的类型,对报文进行相应的转发处理的一种示例实现方式,如图6b所示,该步骤可以包括:

在s66中,当查询到与报文相对应的简易会话表时,判断接收到的报文的类型,当报文类型为syn-ack类型时,转入s67,当报文类型为ack类型时,转入s68;

在s67中,基于查询到的简易会话表对报文进行转发。

在s68中,将报文发送至转发系统中、与转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配。

在s69中,响应于逻辑cpu对报文匹配成功,在转发cpu内创建针对报文的普通会话表,并基于所创建的普通会话表对报文进行转发。

其中,如前文所述,在针对syn类型的报文创建会话表之后,对于正常报文而言,会有对应该报文的syn-ack类型的报文和ack类型的确认报文及基于该会话表通信过程中的其他报文;对于攻击报文而言,可能会有对应该报文的syn-ack类型的报文。当转发cpu接收到的报文为非syn类型的报文时,表示转发cpu已经创建了与该接收到的报文对应的会话表(普通会话表或者简易会话表)。

示例地,转发cpu接收到的报文为对应正常报文的后续报文,当接收到该报文时,首先查询普通会话表。由于针对正常报文创建的会话表为普通会话表,因此,可以根据该报文查询到普通会话表,之后基于查询到的普通会话表对该报文进行转发。

防攻击cpu具有简易会话表的写操作权限,但是任一转发cpu都具有简易会话表的读操作权限。示例地,转发cpu接收到的报文为对应潜在的攻击报文的后续报文。当接收到该报文时,首先查询普通会话表。由于针对潜在的攻击报文创建的会话表为简易会话表,因此,根据该报文查询普通会话表是查不到的。之后,根据该报文查询简易会话表,此时,可以根据该报文查询到。之后可以判断该报文的类型,若该报文的类型是syn-ack类型,基于查询到的简易会话表对该报文进行转发;若该报文的类型时ack类型,可以表示该报文对应的连接成功建立,之后将该报文发送至逻辑cpu进行策略匹配并执行后续的步骤。

可选地,当查询到与所述报文相对应的简易会话表时,若接收到的报文为ack类型,则所述方法还可以包括:向所述防攻击cpu发送删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;和/或将所述报文的源ip地址添加至ip地址白名单中。相应地,防攻击cpu接收所述转发cpu发送的删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;响应于所述删除指令,删除与所述报文相对应的简易会话表。

针对潜在的攻击报文所创建的简易会话表的生存周期有两种类型,一种是当接收到ack类型的报文时,确认可以成功建立连接(即非synflood攻击)后删除,表示该潜在的攻击报文不是真正的攻击报文;一种是简易会话表的连接等待时间超时(即synflood攻击)后删除,表示该潜在的攻击报文为真正的攻击报文。

其中,防攻击cpu有两个接收队列,一个是syn类型的报文接收队列,简称syn队列,用于从转发cpu接收syn类型的报文。一个用于接收转发cpu发送的删除指令的队列,简称ack队列。其中,ack队列的优先级高于syn队列,即防攻击cpu优先选择接收转发cpu发送的删除指令。

当查询到与所述报文相对应的简易会话表、且接收到的报文为ack类型时,表示与该ack类型的报文对应的连接可以成功建立,此时转发cpu向防攻击cpu发送删除指令。防攻击cpu接收到该删除指令,删除与该报文对应的简易会话表。可替换地或者附加地,由于与该ack类型的报文对应的连接可以成功建立,表示来自于该ack类型报文的源ip地址的报文不是syn攻击报文,此时,可以将该ip地址添加到ip地址白名单中,以实现ip地址白名单的更新。

通过上述技术方案,只有潜在的攻击报文需要发送至防攻击cpu进行处理,而对于潜在的攻击报文对应的后续报文在转发cpu中进行处理,可以有效减少防攻击cpu的负载,有效提高转发系统整体的并发性能。同时,通过将已经成功建立过连接的ip地址添加到ip地址白名单中,可以快速简便地判断出潜在的攻击报文,进一步提高转发系统的效率。

综上,在确定转发系统遭受到攻击的情况下,转发cpu接收到syn类型的报文,判断该报文是否是潜在的攻击报文、并在判断该报文为潜在的攻击报文时,将该报文发送至防攻击cpu进行处理。当防攻击cpu接收到该报文时,可以根据该报文创建简易会话表、并基于该简易会话表对该报文进行转发。当转发cpu之后接收到与该报文对应的ack类型的报文时,表示该简易会话表可以成功建立连接,即该syn类型的报文不是攻击报文。转发cpu将ack类型的报文发送至逻辑cpu,以由其按照匹配策略对该ack类型的报文进行匹配、并在匹配成功时,将该匹配成功消息发送至转发cpu,此时,转发cpu可以创建针对于该报文的普通会话表,并基于该普通会话表进行后续报文的转发。

图7a所示,为根据本公开的另一种实施方式提供的报文转发方法的流程图,该方法可以应用于该转发系统中的网卡。如图7a所示,该方法包括:

在s71中,在确定转发系统遭受到攻击的情况下,判断接收到的报文的类型,当接收到的报文的类型为syn类型时,转入s72,当接收到的报文类型为非syn类型时,转入s73;

在s72中,将报文发送至所述转发系统中的第一转发cpu,其中,所述第一转发cpu为所述转发系统中的任一转发cpu,并且在本次受攻击期间,所述第一转发cpu固定不变;

在s73中,将报文发送至所述转发系统中除所述第一转发cpu之外的任一其他转发cpu。

其中,在确定转发系统遭受到攻击的情况下,可以同时启动硬件过滤模式,即通过将所有syn类型的报文的过滤信息加入网卡的硬件过滤器中,使得网卡可以将syn类型的报文都收到同一队列中。由于网卡与转发cpu之间的交互队列与转发cpu的对应关系为一对一,相当于所有syn类型的报文都被同一转发cpu接收。如图7b所示,在确定转发系统遭受到攻击的情况下,可以配置每个网卡收到syn类型的报文均过滤到队列0中,即此时所有潜在的攻击报文都被cpu0接收到。对于非syn类型的报文,可以随机配置接收队列(队列1、队列2、队列3随机),即可以将非syn类型报文发送至所述转发系统中除所述第一转发cpu之外的任一其他转发cpu,如cpu1~cpu3。

示例地,当cpu0接收到syn类型的报文时,cpu0需要和防攻击cpu进行交互:将源ip地址没有在ip地址白名单的报文发送至防攻击cpu。由于syn类型的报文仅被1个cpu(即,cpu0)接收,因而防攻击cpu的syn队列接收到的报文也是仅仅来源于cpu0的报文,即cpu0和防攻击cpu之间为一对一的对应关系,此队列为一对一队列无任何锁冲突和资源竞争。防攻击cpu的syn队列仅有cpu0会向其发送报文,由此可以保证多核下转发系统的性能可以线性增长,对正常报文处理无任何影响,对攻击报文还能做到攻击防御,提高转发系统的稳定性。

其中,防攻击cpu中与网卡之间有发送队列,这样,防攻击cpu就可以基于简易会话表将报文直接转发出去。但防攻击cpu与网卡之间没有直接的接收队列。转发cpu负责从网卡接收报文,在确定转发系统遭受到攻击时,转发cpu判断出潜在的攻击报文,并将其发送至防攻击cpu处理;在没有synflood攻击时,防攻击cpu基本上不需要工作,对于转发系统的整体性能无任何影响。这样可以使得防攻击cpu在无攻击时对转发系统无任何影响,有攻击时能做到攻击防御。

可选地,如图8所示,当该方法应用于图1所示的转发系统中的转发cpu时,该方法还可以包括:

在s81中,在未确定转发系统遭受到攻击的情况下,根据接收到的报文查询在转发cpu内建立的普通会话表。

在s82中,判断是否查询到与报文相对应的普通会话表,在查询到与报文相对应普通会话表时,转入s83,在未查询到与报文相对应普通会话表时,转入s84。

在s83中,基于查询到的普通会话表对报文进行转发。

在s84中,将报文发送至转发系统中、与转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配。

示例地,转发cpu和逻辑cpu可以是一一对应的。

在s85中,响应于逻辑cpu对报文匹配成功,在转发cpu内创建针对报文的普通会话表,并基于所创建的普通会话表对报文进行转发。

在上述技术方案中,在未确定转发系统遭受到攻击的情况下,转发cpu接收到报文时,根据该报文查询普通会话表,在查询到与报文相对应普通会话表时,基于该查询到的普通会话表对该报文进行转发。在未查询到与报文相对应普通会话表时,将该报文发送至逻辑cpu进行匹配,并在匹配成功时,转发cpu创建针对报文的普通会话表,并基于所创建的普通会话表对报文进行转发。通过上述技术方案,只有在确定转发系统遭受到攻击时,防攻击cpu才需要工作,在未确定转发系统遭受到攻击时,防攻击cpu不进行工作,从而使得在未确定转发系统遭受到攻击时,转发系统整体性能不受影响,同时,在未查询到与报文相对应的普通会话表时,将该报文发送至逻辑cpu进行匹配,可以使得转发系统的并发性能线性增长。

可选地,当出现以下情况之一时,确定所述转发系统遭受到攻击:

(一)、由所述转发cpu已建立的普通会话表的个数占所述转发cpu中的可创建普通会话表总数(即,普通会话表的数量上限)的占比达到第一预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中的已建立普通会话表的个数的占比达到第二预设比例。

其中,异常状态的普通会话表是指syn_recv状态的普通会话表,表示普通会话表此时处于半连接状态,等待ack类型的确认报文。转发cpu中的可创建普通会话表总数是基于license设置的。示例地,第一预设比例可以为80%,第二预设比例可以为1/3。当转发cpu创建了普通会话表之后,统计该转发cpu当前已建立的普通会话表的个数。如果该转发cpu当前已建立的普通会话表的个数达到其可创建普通会话表总数的80%时,此时判断该转发cpu当前已建立的普通会话表中异常状态的普通会话表的个数占比。如果异常状态的普通会话表的个数达到当前已建立的普通会话表的个数的1/3时,确定转发系统遭受到攻击。

(二)、由所述转发cpu在当前时段内已建立的普通会话表的个数占历史同时段内的全部转发cpu中的普通会话表的总数平均值的占比到达第三预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中已建立的普通会话表的个数的占比达到第四预设比例。

示例地,第三预设比例可以为5,第四预设比例可以是1/3。

每天该时段内全部转发cpu中的普通会话表的总数平均值计算方式如下:

n表示要统计的历史同时段的总天数;

e表示n天该时段(即,全部历史同时段)内全部转发cpu中的普通会话表的总数平均值;

cpui,j表示第i天该时段内第j个转发cpu创建的普通会话表的个数;

n表示转发cpu的总个数;

e(i)表示第i天该时段内全部转发cpu创建的普通会话表的个数的平均值。

当转发cpu创建了普通会话表之后,统计当前时段内该转发cpu已建立的普通会话表的个数。如果当前时段内该转发cpu已建立的普通会话表的个数达到每天该时段内全部转发cpu中的普通会话表的总数平均值的5倍时,此时判断该转发cpu当前已建立的普通会话表中异常状态的普通会话表的个数占比。如果异常状态的普通会话表的个数达到当前已建立的普通会话表的个数的1/3时,确定转发系统遭受到攻击。

在上述技术方案中,在转发系统已遭受攻击而系统尚未察觉、即未确定转发系统遭受到攻击的情况下,转发cpu会将攻击报文作为正常报文进行处理,这样在短时间内会创建多个针对攻击报文的普通会话表,且由于针对攻击报文的普通会话表无法成功建立连接,这些普通会话表会处于异常状态。因此,当转发cpu每创建一个普通会话表之后,对其当前已建立的普通会话表的个数进行统计,并在其超过阈值时,统计转发cpu当前已建立的普通会话表中异常状态的普通会话表的个数占比,从而可以在出现上述可以确定转发系统遭受到攻击的情况时,确定整个转发系统遭受到攻击。通过上述技术方案,根据转发cpu当前已建立的普通会话表的个数和转发cpu当前已建立的普通会话表中处于异常状态的普通会话表的个数综合判断,可以准确、快速地确定出转发系统当前是否遭受到synflood攻击,以使得转发系统可以及时对该攻击进行防御,避免了根据单一参数判断时,当转发系统能够确定其遭受到synflood攻击时转发系统已瘫痪的风险,有利于维护转发系统稳定。

可选地,在确定所述转发系统遭受到攻击的情况下,缩短所述异常状态的普通会话表的连接等待时间。

在确定所述转发系统遭受到攻击的情况下,转发cpu中异常状态的普通会话表中有一部分是针对攻击报文创建的,因此,缩短所述异常状态的普通会话表的连接等待时间,可以将处于异常状态的普通会话表的资源尽快释放,提高转发系统的处理效率。

可选地,当在防攻击cpu内建立的简易会话表满足预设条件时,可以确定转发系统已不再遭受攻击。其中,该预设条件可以是确定所述转发系统遭受到攻击的时长超过第一阈值、且防攻击cpu内已建立的简易会话表的个数占其可创建简易会话表总数(即,简易会话表的数量上限值)的占比小于或等于第五预设比例。

其中,防攻击cpu可创建简易会话表总数是基于license设置的。示例地,第一阈值可以是10分钟,第五预设比例可以为1/50。当确定转发系统遭受到攻击时,开始计时。当确定转发系统遭受到攻击的时长超过10分钟时,可以对防攻击cpu当前已建立的简易会话表的个数进行统计。针对攻击报文创建的简易会话表不会成功建立连接,因此,当防攻击cpu中当前已建立的简易会话表的个数占其可创建简易会话表总数的占比小于或等于第五预设比例时,可以判断此时转发系统已不再遭受攻击,即当防攻击cpu中当前已建立的简易会话表的个数占其可创建的简易会话表总数的占比小于或等于1/50时,可以确定转发系统已不再遭受攻击。

在确定转发系统已不再遭受攻击之后,统计防攻击cpu中简易会话表的个数,如果此时简易会话表的个数为0,对于之后接收到的报文通过普通会话表进行处理,直至确定转发系统再次遭受到攻击。如果此时简易会话表的个数不为0,即此时防攻击cpu中仍有处于半连接状态的简易会话表,因此,对于之后接收到的syn-ack类型和ack类型的报文的处理逻辑与确定转发系统再次遭受到攻击时对应的处理逻辑相同,直至简易会话表的个数为0(可能成功建立连接后删除,可能超时删除);对于之后接收到syn类型的报文,将其按照未确定转发系统遭受到攻击时的处理逻辑进行处理。

在上述技术方案中,由于针对攻击报文建立的为简易会话表,因此通过判断简易会话表的个数可以快速、准确确定出转发系统当前是否遭受攻击。在确定转发系统不再遭受攻击之后,通过统计当前简易会话表的个数,从而根据该个数进行后续报文的处理,有效提高转发系统的稳定性和转发效率。

本公开还提供一种报文转发装置,应用于转发系统中的转发cpu,如图9所示,所述装置100可以包括:

第一确定模块101,用于在确定所述转发系统遭受到攻击的情况下,若接收到的报文为syn类型,确定接收到的报文是否为潜在的攻击报文;

第一发送模块102,用于在确定所述报文为潜在的攻击报文时,将所述报文发送至所述转发系统中的防攻击cpu,以由所述防攻击cpu对所述报文进行转发。

可选地,图10所示,为根据本公开的一种实施方式提供的报文转发装置中第一确定模块的框图。如图10所示,所述第一确定模块101可以包括:

第一确定子模块1011,用于确定所述报文的源ip地址是否在ip地址白名单中;

第二确定子模块1012,用于在所述报文的源ip地址不在所述ip地址白名单中时,确定所述报文为潜在的攻击报文;在所述报文的源ip地址在所述ip地址白名单中时,确定所述报文为正常报文。

可选地,图11所示,为根据本公开的另一种实施方式提供的报文转发装置的框图。如图11所示,所述装置100还可以包括:

第二发送模块103,用于在确定所述报文为正常报文时,将所述报文发送至所述转发系统中、与所述转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配;

第一转发模块104,用于响应于所述逻辑cpu对所述报文匹配成功,在所述转发cpu内创建针对所述报文的普通会话表,并基于所创建的普通会话表对所述报文进行转发。

可选地,图12所示,为根据本公开的另一种实施方式提供的报文转发装置的框图。如图12所示,所述装置100还可以包括:

第一查询模块105,用于若接收到的报文为非syn类型,根据所述报文查询在所述转发cpu内建立的普通会话表;

第二转发模块106,用于当查询到与所述报文相对应的普通会话表时,基于查询到的所述普通会话表对所述报文进行转发;

第二查询模块107,用于当未查询到与所述报文相对应的普通会话表时,根据所述报文查询在所述防攻击cpu内建立的简易会话表,其中,所述简易会话表内所包含的信息为所述普通会话表内所包含的信息中的一部分;

第三转发模块108,用于当查询到与所述报文相对应的简易会话表时,根据所述报文的类型,对所述报文进行相应的转发处理。

可选地,所述第三转发模块108,包括:

第一转发子模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为syn-ack类型,则基于查询到的所述简易会话表对所述报文进行转发;

发送子模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为ack类型,则将所述报文发送至所述转发系统中、与所述转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配;

第二转发子模块,用于响应于所述逻辑cpu对所述报文匹配成功,在所述转发cpu内创建针对所述报文的普通会话表,并基于所创建的普通会话表对所述报文进行转发。

可选地,所述装置100还可以包括以下至少一者:

指令发送模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为ack类型,向所述防攻击cpu发送删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;

更新模块,用于当查询到与所述报文相对应的简易会话表时,若接收到的报文为ack类型,将所述报文的源ip地址添加至ip地址白名单中。

可选地,所述装置还可以包括:

第三查询模块,用于在未确定所述转发系统遭受到攻击的情况下,根据接收到的报文查询在所述转发cpu内建立的普通会话表;

第三发送模块,用于当未查询到与所述报文相对应的普通会话表时,将所述报文发送至所述转发系统中、与所述转发cpu相对应的逻辑cpu,以由所述逻辑cpu按照匹配策略对所述报文进行匹配;

响应模块,用于响应于所述逻辑cpu对所述报文匹配成功,在所述转发cpu内创建针对所述报文的普通会话表,并基于所创建的普通会话表对所述报文进行转发。

可选地,当出现以下情况之一时,确定所述转发系统遭受到攻击:

(一)、由所述转发cpu已建立的普通会话表的个数占所述转发cpu中的可创建普通会话表总数的占比达到第一预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中的已建立普通会话表的个数的占比达到第二预设比例;

(二)、由所述转发cpu在当前时段内已建立的普通会话表的个数占历史同时段内的全部转发cpu中的普通会话表的总数平均值的占比到达第三预设比例、且所述转发cpu中异常状态的普通会话表的个数占所述转发cpu中已建立的普通会话表的个数的占比达到第四预设比例。

可选地,所述装置还可以包括:

处理模块,用于在确定所述转发系统遭受到攻击的情况下,缩短所述异常状态的普通会话表的连接等待时间。

本公开还提供一种报文转发装置,应用于转发系统中的防攻击cpu。如图13所示,所述装置200可以包括:

第一接收模块201,用于在确定所述转发系统遭受到攻击的情况下,接收所述转发系统中的转发cpu发送的syn类型的报文;

简易会话表创建模块202,用于在所述防攻击cpu内创建针对所述报文的简易会话表,其中,所述简易会话表内所包含的信息为由所述转发cpu创建的普通会话表内所包含的信息中的一部分;

第四转发模块203,用于基于所创建的简易会话表对所述报文进行转发。

可选地,所述装置200还可以包括:

第二接收模块,用于接收所述转发cpu发送的删除指令,所述删除指令用于删除所述防攻击cpu中的与所述报文相对应的简易会话表;

删除模块,用于响应于所述删除指令,删除与所述报文相对应的简易会话表。

本公开还提供一种报文转发装置,应用于转发系统中的逻辑cpu。如图14所示,所述装置300可以包括:

第三接收模块301,用于接收所述转发系统中、与所述逻辑cpu相对应的转发cpu发送的报文;

匹配模块302,用于按照匹配策略对所述报文进行匹配;

第四发送模块303,用于当匹配成功时,向所述转发cpu发送匹配成功消息,以便所述转发cpu响应于匹配成功消息,创建针对所述报文的普通会话表。

可选地,所述装置300还可以包括:

报文丢弃模块,用于当匹配失败时,丢弃所述报文。

本公开还提供一种报文转发装置,应用于转发系统中的网卡。如图15所示,所述装置400可以包括:

第五发送模块401,用于在确定所述转发系统遭受到攻击的情况下,将接收到的syn类型的报文发送至所述转发系统中的第一转发cpu,其中,所述第一转发cpu为所述转发系统中的任一转发cpu,并且在本次受攻击期间,所述第一转发cpu固定不变;

第六发送模块402,用于将接收到的非syn类型的报文发送至所述转发系统中除所述第一转发cpu之外的任一其他转发cpu。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图16是根据一示例性实施例示出的一种电子设备1600的框图。如图16所示,该电子设备1600可以包括:处理器1601,存储器1602,多媒体组件1603,输入/输出(i/o)接口1604,以及通信组件1605。

其中,处理器1601用于控制该电子设备1600的整体操作,以完成上述应用于转发系统中的转发cpu、或防攻击cpu、或逻辑cpu、或网卡的报文转发方法中的全部或部分步骤。存储器1602用于存储各种类型的数据以支持在该电子设备1600的操作,这些数据例如可以包括用于在该电子设备1600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器1602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件1603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1602或通过通信组件1605发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口1604为处理器1601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件1605用于该电子设备1600与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件1605可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备1600可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的应用于转发系统中的转发cpu、或防攻击cpu、或逻辑cpu、或网卡的报文转发方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器1602,上述程序指令可由电子设备1600的处理器1601执行以完成上述应用于转发系统中的转发cpu、或防攻击cpu、或逻辑cpu、或网卡的报文转发方法。

图17是根据一示例性实施例示出的一种电子设备1700的框图。例如,电子设备1700可以被提供为一服务器。参照图17,电子设备1700包括处理器1722,其数量可以为一个或多个,以及存储器1732,用于存储可由处理器1722执行的计算机程序。存储器1732中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1722可以被配置为执行该计算机程序,以执行上述应用于转发系统中的转发cpu、或防攻击cpu、或逻辑cpu、或网卡的报文转发方法。

另外,电子设备1700还可以包括电源组件1726和通信组件1750,该电源组件1726可以被配置为执行电子设备1700的电源管理,该通信组件1750可以被配置为实现电子设备1700的通信,例如,有线或无线通信。此外,该电子设备1700还可以包括输入/输出(i/o)接口1758。电子设备1700可以操作基于存储在存储器1732的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器1732,上述程序指令可由电子设备1700的处理器1722执行以完成上述应用于转发系统中的转发cpu、或防攻击cpu、或逻辑cpu、或网卡的报文转发方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1