数据包转发和安全防护检测系统、负载均衡方法及装置制造方法

文档序号:7783358阅读:132来源:国知局
数据包转发和安全防护检测系统、负载均衡方法及装置制造方法
【专利摘要】本发明公开了数据包转发和安全防护检测系统,包括:数据包转发模块,多个安全引擎和与多个安全引擎一一对应的环形队列,其中:数据包转发模块包括包收取模块,包处理模块和包发送模块;安全引擎,用于从与自身对应的所述环形队列中获取待转发数据包;对待转发数据包进行安全防护检测;将携带有安全检测结果标识的待转发数据包放入与自身对应的环形队列中;环形队列,用于存储包处理模块发送的待转发数据包和与自身对应的安全引擎发送的携带有表示安全的安全检测结果标识的待转发数据包。采用本发明实施例提供的方案,提高了对数据包进行转发和安全防护检测的处理效率。
【专利说明】数据包转发和安全防护检测系统、负载均衡方法及装置
【技术领域】
[0001]本发明涉及通信领域,尤其涉及数据包转发和安全防护检测系统、负载均衡方法及装置。
【背景技术】
[0002]在网络通信中进行数据包转发时,数据包经过网络通信中的工作层,可以经过物理层、数据链路层、网络层、传输层和应用层等,在数据转发的过程中,数据包可能会受到安全威胁,例如,数据包可能会受到DTP攻击,ARP Flood攻击,SYN Flood攻击以及应用层的病毒注入等,因此,对于在网络通信中转发的数据包,需要进行安全防护检测,以保证转发数据包的安全性。
[0003]目前,现有的进行数据包转发和安全防护主要为串行式的数据包处理方式,具体为:获取一个待转发数据包,对当前待转发数据包进行安全防护检测,当检测到该当前待转发数据包存在安全威胁时,对该当前待转发数据包进行阻断或丢弃处理,当检测该当前待转发数据包安全时,将该当前待转发数据包发送给接收端,当该当前待转发数据包转发结束后,对下一个待转发数据包进行上述转发和安全防护处理。
[0004]上述现有的数据包转发和安全防护的处理方式中,由于采用串行的数据包转发和安全防护处理方式,每次只能针对一个数据包进行转发和安全防护检测,数据包转发和安全防护检测的效率低。

【发明内容】

[0005]本发明实施例提供数据包转发和安全防护检测系统、负载均衡方法及装置,用以解决现有技术中存在的对数据包进行转发和安全防护检测的处理效率低的问题。
[0006]本发明实施例提供一种数据包转发和安全防护检测系统,其特征在于,包括:数据包转发模块,多个安全引擎和与多个安全引擎一一对应的环形队列,其中:
[0007]所述数据包转发模块包括包收取模块,包处理模块和包发送模块;
[0008]所述包收取模块,用于接收多个待转发数据包;将多个所述待转发数据包发送给所述包处理模块;
[0009]所述包处理模块,用于接收所述包收取模块发送的多个所述待转发数据包;根据预设负载均衡算法,将所述待转发数据包发送给多个安全引擎中负载能力最强的安全引擎对应的环形队列;接收多个所述环形队列中携带有安全检测结果标识的所述待转发数据包;向所述包发送模块发送携带有表示安全的安全检测结果标识的待转发数据包;对携带有表示数据包有安全威胁的安全检测结果标识的待转发数据包进行丢弃或者阻断转发处理;
[0010]所述包发送模块,用于接收所述包处理模块发送的所述携带有表示安全的安全检测结果标识的待转发数据包;将所述携带有表示安全的安全检测结果标识的待转发数据包发送给接收端;[0011]所述安全引擎,用于从与自身对应的所述环形队列中获取待转发数据包;对所述待转发数据包进行安全防护检测;将携带有安全检测结果标识的待转发数据包放入与自身对应的环形队列中;
[0012]所述环形队列,用于存储所述包处理模块发送的所述待转发数据包和与自身对应的所述安全引擎发送的携带有表示安全的安全检测结果标识的待转发数据包。
[0013]采用本发明提供的上述系统,由于采用多个安全引擎同时对待转发数据包并行地进行安全检测,提高了对数据包进行转发和安全防护检测的处理效率。
[0014]进一步的,所述包处理模块,具体用于对从所述包收取模块接收的多个所述待转发数据包进行底层安全防护检测;针对每个所述待转发数据包,当对该待转发数据包的检测结果为该待转发数据包安全时,根据预设负载均衡算法,将该待转发数据包发送给多个安全引擎中负载能力最强的安全引擎对应的环形队列;当对该待转发数据包的检测结果为该待转发数据包有安全威胁时,将该待转发数据包丢弃或者阻断转发处理。
[0015]进一步的,上述系统,还包括:配置解析模块,用于根据性能需求和处理器硬件制约条件设置所述数据包转发模块的线程个数和安全引擎的个数,对所述数据包转发模块和安全引擎进行初始化设置。
[0016]进一步的,所述配置解析模块,还用于根据已配置的所述安全引擎的个数,分别为每个安全引擎分配与自身对应的环形队列。
[0017]本发明实施例提供一种负载均衡方法,应用于数据包转发和安全防护检测系统,所述数据包转发和安全防护检测系统包括:多个用于对数据包进行安全检测的安全引擎和与多个安全引擎一一对应的环形队列,所述环形队列用于存储与该环形队列对应的安全引擎将要进行检测的数据包,该方法包括:
[0018]根据待转发数据包的源IP、目的IP和所述安全引擎的个数进行哈希运算,得到哈希运算结果;
[0019]确定是否存在与所述哈希运算结果对应的环形队列索引;
[0020]当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎;
[0021]当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定对所述待转发数据包进行安全检测的安全引擎,并建立所述哈希运算结果与确定的该安全弓I擎对应的环形队列索引之间的对应关系。
[0022]采用本发明实施例提供的上述方法,由于通过判断待转发数据包进行哈希运算的结果是否存在对应的环形队列索引,确定对待转发数据包进行安全检测的安全引擎,对待转发数据包进行合理的分配,提高了安全引擎对数据包进行安全检测的性能。
[0023]进一步的,当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎,具体包括:
[0024]当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎的负载权值是否不小于预设权值阈值,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量;[0025]当所述环形队列索引对应的安全引擎的负载权值不小于预设权值阈值时,确定该环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
[0026]进一步的,上述方法,还包括:
[0027]当所述环形队列索引对应的安全引擎的负载权值小于预设权值阈值时,确定所述环形队列索引对应的安全引擎的负载权值是否为零;
[0028]当所述环形队列索引对应的安全引擎的负载权值不为零时,确定除该环形队列索引对应的安全引擎以外的负载权值最大的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
[0029]进一步的,上述方法,还包括: [0030]当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包标记为安全状态;或者
[0031]当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包分发给除该安全引擎以外的负载权值最大的安全引擎;或者
[0032]当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包平均分发给除该安全引擎以外的安全引擎。
[0033]进一步的,确定所述安全引擎的负载权值,具体包括:
[0034]每隔预设周期,基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定所述安全引擎的负载权值。
[0035]进一步的,当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定对所述待转发数据包进行安全检测的安全引擎,具体包括:
[0036]当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定负载权值最大的安全引擎为对所述待转发数据包进行安全检测的安全引擎,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量。
[0037]进一步的,针对每个安全引擎,基于该安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定该安全引擎的负载权值,具体包括:
[0038]采用如下公式确定该安全引擎的负载权值:
[0039]F(iH<xQx[ax(l-C//Jc:)+bx(l-S//^;S/)];
/=1 i=l
[0040]其中,F(i)为第i个安全引擎的负载权值,K为常数,Q表示第i个安全引擎的工作状态,Q=O表示该安全引擎的工作状态为异常,Q=I表示该安全引擎的工作状态为正常,Ci



n
为第i个安全引擎的CPU占用率,Xc'/为各安全引擎的CPU占用率的和,Si为第i个安全



Z-1



n
引擎的当前数据处理流量,!>/为各安全引擎的当前数据处理流量的和,n为所有安全引



/=1
擎的个数,a, b为常数,a>b。
[0041]本发明实施例还提供了一种负载均衡装置,应用于安全检测系统,所述安全检测系统包括:多个用于对数据包进行安全检测的安全引擎和与多个安全引擎一一对应的环形队列,所述环形队列用于存储与该环形队列对应的安全引擎将要进行检测的数据包;所述装置,包括:
[0042]运算单元,用于根据待转发数据包的源IP、目的IP和所述安全引擎的个数进行哈希运算,得到哈希运算结果;
[0043]索引确定单元,用于确定是否存在与所述哈希运算结果对应的环形队列索引;
[0044]第一确定单元,用于当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎;
[0045]第二确定单元,用于当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定对所述待转发数据包进行安全检测的安全引擎,并建立所述哈希运算结果与确定的该安全引擎对应的环形队列索引之间的对应关系。
[0046]进一步的,所述第一确定单元,具体用于当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎的负载权值是否不小于预设权值阈值,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量;当所述环形队列索引对应的安全引擎的负载权值不小于预设权值阈值时,确定该环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
[0047]进一步的,上述装置,还包括:
[0048]第三确定单元,用于当所述环形队列索引对应的安全引擎的负载权值小于预设权值阈值时,确定所述环形队列索引对应的安全引擎的负载权值是否为零;
[0049]第四确定单元,用于当所述环形队列索引对应的安全引擎的负载权值不为零时,确定除该环形队列索引对应的安全引擎以外的负载权值最大的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
[0050]进一步的,上述装置,还包括:
[0051]分发单元,用于当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包标记为安全状态;或者
[0052]当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包分发给除该安全引擎以外的负载权值最大的安全引擎;或者
[0053]当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包平均分发给除该安全引擎以外的安全引擎。
[0054]进一步的,所述第一确定单元,具体用于每隔预设周期,基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定所述安全引擎的负载权值。
[0055]进一步的,所述第二确定单元,具体用于当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定负载权值最大的安全引擎为对所述待转发数据包进行安全检测的安全引擎,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量。
[0056]进一步的,所述第一确定单元,具体用于采用如下公式确定所述安全引擎的负载权值:
【权利要求】
1.一种数据包转发和安全防护检测系统,其特征在于,包括:数据包转发模块,多个安全引擎和与多个安全引擎一一对应的环形队列,其中: 所述数据包转发模块包括包收取模块,包处理模块和包发送模块; 所述包收取模块,用于接收多个待转发数据包;将多个所述待转发数据包发送给所述包处理模块; 所述包处理模块,用于接收所述包收取模块发送的多个所述待转发数据包;根据预设负载均衡算法,将所述待转发数据包发送给多个安全引擎中负载能力最强的安全引擎对应的环形队列;接收多个所述环形队列中携带有安全检测结果标识的所述待转发数据包;向所述包发送模块发送携带有表示安全的安全检测结果标识的待转发数据包;对携带有表示数据包有安全威胁的安全检测结果标识的待转发数据包进行丢弃或者阻断转发处理; 所述包发送模块,用于接收所述包处理模块发送的所述携带有表示安全的安全检测结果标识的待转发数据包;将所述携带有表示安全的安全检测结果标识的待转发数据包发送给接收端; 所述安全引擎,用于从与自身对应的所述环形队列中获取待转发数据包;对所述待转发数据包进行安全防护检测;将携带有安全检测结果标识的待转发数据包放入与自身对应的环形队列中; 所述环形队列,用于存储所述包处理模块发送的所述待转发数据包和与自身对应的所述安全引擎发送的携带有表示安全的安全检测结果标识的待转发数据包。
2.如权利要求1所述的系统,其特征在于,所述包处理模块,具体用于对从所述包收取模块接收的多个所述待转发数据包进行底层协议安全防护检测;针对每个所述待转发数据包,当对该待转发数据包的检测结果为该待转发数据包安全时,根据预设负载均衡算法,将该待转发数据包发送给多个安全引擎中负载能力最强的安全引擎对应的环形队列;当对该待转发数据包的检测结果为该待转发数据包有安全威胁时,将该待转发数据包丢弃或者阻断转发处理。
3.如权利要求1所述的系统,其特征在于,还包括:配置解析模块,用于根据性能需求和处理器硬件制约条件设置所述数据包转发模块的线程个数和安全引擎的个数,对所述数据包转发模块和安全引擎进行初始化设置。
4.如权利要求1所述的系统,其特征在于,所述配置解析模块,还用于根据已配置的所述安全引擎的个数,分别为每个安全引擎分配与自身对应的环形队列。
5.一种负载均衡方法,其特征在于,应用于数据包转发和安全防护检测系统,所述数据包转发和安全防护检测系统包括:多个用于对数据包进行安全检测的安全引擎和与多个安全引擎一一对应的环形队列,所述环形队列用于存储与该环形队列对应的安全引擎将要进行检测的数据包;所述方法包括: 根据待转发数据包的源IP、目的IP和所述安全引擎的个数进行哈希运算,得到哈希运算结果; 确定是否存在与所述哈希运算结果对应的环形队列索引; 当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎; 当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定对所述待转发数据包进行安全检测的安全引擎,并建立所述哈希运算结果与确定的该安全引擎对应的环形队列索引之间的对应关系。
6.如权利要求5所述的方法,其特征在于,当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎,具体包括: 当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎的负载权值是否不小于预设权值阈值,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量; 当所述环形队列索引对应的安全引擎的负载权值不小于预设权值阈值时,确定该环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
7.如权利要求6所述的方法,其特征在于,还包括: 当所述环形队列索引对应的安全引擎的负载权值小于预设权值阈值时,确定所述环形队列索引对应的安全引擎的负载权值是否为零; 当所述环形队列索引对应的安全引擎的负载权值不为零时,确定除该环形队列索引对应的安全引擎以外的负载权值最大的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
8.如权利要求7所述的方法,其特征在于,还包括: 当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包标记为安全状态;或者 当所述环形队列索引对应的安全引`擎的负载权值为零时,将已分发给该安全引擎的数据包分发给除该安全引擎以外的负载权值最大的安全引擎;或者 当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包平均分发给除该安全引擎以外的安全引擎。
9.如权利要求6所述的方法,其特征在于,确定所述安全引擎的负载权值,具体包括: 每隔预设周期,基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定所述安全引擎的负载权值。
10.如权利要求5所述的方法,其特征在于,当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定对所述待转发数据包进行安全检测的安全引擎,具体包括: 当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定负载权值最大的安全引擎为对所述待转发数据包进行安全检测的安全引擎,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量。
11.如权利要求6-10任一所述的方法,其特征在于,针对每个安全引擎,基于该安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定该安全引擎的负载权值,具体包括:采用如下公式确定该安全引擎的负载权值:

12.—种负载均衡装置,其特征在于,应用于安全检测系统,所述安全检测系统包括:多个用于对数据包进行安全检测的安全引擎和与多个安全引擎一一对应的环形队列,所述环形队列用于存储与该环形队列对应的安全引擎将要进行检测的数据包;所述装置,包括: 运算单元,用于根据待转发数据包的源IP、目的IP和所述安全引擎的个数进行哈希运算,得到哈希运算结果; 索引确定单元,用于确定是否存在与所述哈希运算结果对应的环形队列索引; 第一确定单元,用于当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎; 第二确定单元,用于当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定对所述待转发数据包进行安全检测的安全引擎,并建立所述哈希运算结果与确定的该安全引擎对应的环形队列索引之间的对应关系。
13.如权利要求12所述的装置,其特征在于,所述第一确定单元,具体用于当存在与所述哈希运算结果对应的环形队列索引时,确定所述环形队列索引对应的安全引擎的负载权值是否不小于预设权值阈值,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量;当所述环形队列索引对应的安全引擎的负载权值不小于预设权值阈值时,确定该环形队列索引对应的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
14.如权利要求13所述的装置,其特征在于,还包括: 第三确定单元,用于当所述环形队列索引对应的安全引擎的负载权值小于预设权值阈值时,确定所述环形队列索引对应的安全引擎的负载权值是否为零; 第四确定单元,用于当所述环形队列索引对应的安全引擎的负载权值不为零时,确定除该环形队列索引对应的安全引擎以外的负载权值最大的安全引擎为将要对所述待转发数据包进行安全检测的安全引擎。
15.如权利要求14所述的装置,其特征在于,还包括: 分发单元,用于当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包标记为安全状态;或者 当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包分发给除该安全引擎以外的负载权值最大的安全引擎;或者 当所述环形队列索引对应的安全引擎的负载权值为零时,将已分发给该安全引擎的数据包平均分发给除该安全引擎以外的安全引擎。
16.如权利要求13所述的装置,其特征在于,所述第一确定单元,具体用于每隔预设周期,基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定所述安全引擎的负载权值。
17.如权利要求12所述的装置,其特征在于,所述第二确定单元,具体用于当不存在与所述哈希运算结果对应的环形队列索引时,从所述多个安全引擎中确定负载权值最大的安全引擎为对所述待转发数据包进行安全检测的安全引擎,所述负载权值为基于所述安全引擎的工作状态、CPU占用率和获取的该安全引擎的当前数据处理流量确定的,所述负载权值表示该安全引擎的当前数据包处理能力,所述当前数据处理流量表示该安全引擎当前单位时间内处理的数据包的流量。
18.如权利要求13-17任一所述的装置,其特征在于,所述第一确定单元,具体用于采用如下公式确定所述安全引擎的负载权值:
【文档编号】H04L29/06GK103685321SQ201310753226
【公开日】2014年3月26日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】彭权 申请人:北京神州绿盟信息安全科技股份有限公司, 北京神州绿盟科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1