报文的规则匹配方法和装置的制造方法

文档序号:9914373阅读:297来源:国知局
报文的规则匹配方法和装置的制造方法
【技术领域】
[0001] 本发明涉及网络报文领域,具体来说,涉及一种报文的规则匹配方法和装置。
【背景技术】
[0002] 在网络安全领域,需要检测报文是否是异常流量或者需要对某些IP段的报文进行 后续的异常检测。在异常检测中,报文各个层报文的长度、TCP确认字符(ACK)号和SEQ (Linux中一个预设的外部命令)号是判断报文是否异常的重要标识。现有的技术一般是先 对报文进行五元组(包括源IP、目的IP、源端口、目的端口、传输层协议)匹配,然后对命中的 报文进行异常检测,具体的异常检测方式是利用软件分析报文的长度、TCP ACK、SEQ值进行 范围匹配,检测是否有异常,从而判断报文是否是属于异常包。
[0003] 由此可见,现有技术中,五元组匹配和范围匹配分开进行,而范围匹配一般采用软 件的方法实现,大大影响了体统处理流量的性能。
[0004] 针对相关技术中的上述问题,目前尚未提出有效的解决方案。

【发明内容】

[0005] 针对相关技术中的上述问题,本发明提出一种报文的规则匹配方法和装置,能够 提尚系统的性能。
[0006] 本发明的技术方案是这样实现的:
[0007] 根据本发明的一个方面,提供了 一种报文的规则匹配方法。
[0008] 该规则匹配方法包括:
[0009] 对接收的报文进行解析,以获取报文的五元组、L2层长度、L3层长度、L4层长度、L5 层长度、ACK值和SEQ值;
[0010] 根据预定的规则对报文进行精确匹配和范围匹配。
[0011]其中,预定的规则包括对应报文的五元组、L2层长度、L3层长度、L4层长度、L5层长 度、ACK值和SEQ值的多个数据域,多个数据域包括:规则的下限值、规则的上限值、规则的掩 码、比较的类型。
[0012] 其中,在根据预定的规则对报文进行精确匹配时,可根据预定的规则对报文的五 元组中的源IP、目的IP和传输层协议作精确匹配。
[0013] 此外,在根据预定的规则对报文进行范围匹配时,可根据预定的规则对报文的五 元组中的源端口、目的端口和L2层长度、L3层长度、L4层长度、L5层长度、ACK值和SEQ值作范 围匹配。
[0014] 根据本发明的另一方面,提供了一种报文的规则匹配装置。
[0015] 该规则匹配装置包括:
[0016] 解析模块,用于对接收的报文进行解析,以获取报文的五元组、L2层长度、L3层长 度、L4层长度、L5层长度、ACK值和SEQ值;
[0017] 匹配模块,用于根据预定的规则对报文进行精确匹配和范围匹配。
[0018] 其中,预定的规则包括对应报文的五元组、L2层长度、L3层长度、L4层长度、L5层长 度、ACK值和SEQ值的多个数据域,多个数据域包括:规则的下限值、规则的上限值、规则的掩 码、比较的类型。
[0019] 此外,匹配模块包括第一匹配子模块,用于根据预定的规则对报文的五元组中的 源IP、目的IP和传输层协议作精确匹配。
[0020] 另外,匹配模块进一步包括第二匹配子模块,用于根据预定的规则对报文的五元 组中的源端口、目的端口和L2层长度、L3层长度、L4层长度、L5层长度、ACK值和SEQ值作范围 匹配。
[0021] 本发明通过在进行五元组规则匹配时添加了范围匹配的字段,大大提高了系统的 性能。
【附图说明】
[0022] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获 得其他的附图。
[0023] 图1是根据本发明实施例的报文的规则匹配方法的流程图;
[0024] 图2是根据本发明实施例的报文的规则匹配方法的系统流程图;
[0025] 图3是根据本发明实施例的IPV4规则格式;
[0026] 图4是根据本发明实施例的报文的规则匹配装置的框图。
【具体实施方式】
[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的 范围。
[0028] 根据本发明的实施例,提供了 一种报文的规则匹配方法。
[0029] 如图1所示,根据本发明实施例的规则匹配方法包括:
[0030] 步骤S101,对接收的报文进行解析,以获取报文的五元组、L2层长度、L3层长度、L4 层长度、L5层长度、ACK值和SEQ值;
[0031]步骤S103,根据预定的规则对报文进行精确匹配和范围匹配。
[0032] 为了更好的理解本发明的上述技术方案,下面结合一具体实施例来对本发明的上 述技术方案进行详细阐述。
[0033] 如图2所示,网络报文首先经过现场可编程门阵列(FPGA)进行报文解析,提取报文 的五元组(源IP、目的IP、源端口、目的端口、传输层协议)、L2层长度(报文数据链路层头的 长度)、L3层长度(报文网络层头的长度)、L4层长度(报文传输层头的长度)、L5层长度(报文 应用层的长度)、TCP ACK值、SEQ值,将各个字段按照一定规则进行排序组合,然后送入TCAM (一种硬件搜索芯片)进行规则匹配,TCAM中预先存放要匹配的规则,如果命中,则返回规则 的命中ig息。
[0034] 其中,在TCAM中添加规则时,需要按照一定格式进行,本发明中将TCAM分为两个 区,分别存放IPV4规则、IPV6规则。其中,IPV4规则分区的位宽为288bit,IPV6规则分区位宽 为576bit。
[0035] 下面主要介绍IPV4规则的实现,IPV6只是五元组不同,其他都类似,因此不再赘 述。
[0036] 在TCAM中添加规则时,涉及到如图3所示的对应报文的五元组、L2层长度、L3层长 度、L4层长度、L5层长度、ACK值和SEQ值的4个数据域:Data:规则的下限值;Data_higher:规 则的上限值;Mask:规则的掩码;stripejype(比较的类型):标识每个字段要比较,包含'〉 = '、'〈'和'='操作。
[0037]其中,对于Mask来说,赋值为ff表示作出掩码操作,不需要进行比较匹配,赋值为0 表示需要进行比较匹配,而源IP的值设置为参数msip,参数msip的赋值可以为0,也可以为 ??;目的IP的值设置为参数mdip,参数mdip的赋值可以为0,也可以为ff、传输层协议的值设 置为参数mproto,参数mproto的赋值可以为0,也可以为ff,即源IP、目的IP、传输层协议、和 usr_id为精确匹配,可以支持掩码操作,五元组中的源端口sport、目的端口dport和L2层长 度12_len、L3层长度13_len、L4层长度14_len、L5层长度15_len、ACK值和SEQ值的字段为范 围匹配,不支持掩码。
[0038] 此外,规则中还增加一个USr_id字段,占用一个字节,用于标识规则类型。
[0039] 因此,在一个实施例中,在根据预定的规则对报文进行精确匹配时,可根据预定的 规则对报文的五元组中的源IP、目的IP和传输层协议作精确匹配。
[0040] 此外,在一个实施例中,在根据预定的规则对报文进行范围匹配时,可根据预定的 规则对报文的五元组中的源端口、目的端口和L2层长度、L3层长度、L4层长度、L5层长度、 ACK值和SEQ值作范围匹配。
[0041 ]另外,在上述实施例中,由于所用TCAM只支持16位的范围比较。但TCPAck/Sep号值 都为32bit,所以要对添加的规则进行处理。
[0042] 假设有如下TCPAck/Sep号X [ 31:0 ]的3 2b i t的范围比较:
[0043] 且下限值 a[31:0]〈x[31:0]〈上限值 b[31:0]
[0044] 那么对此规则进行拆分,分为低16位和高16位,先比较高16位,这样容易进行比 较:
[0045] &[31:0]〈叉[31:0]描述为:(叉[31:16]>&[31:16]||叉[31:16] = =&[31:16]&&叉[15: 0]>a[15:0])
[0046] 叉[31:0]化[31:0]描述为:(叉[31:16]化[31:16]||叉[31:16] = =13[31:16]&&叉[15: 0]〈b[15:0])
[0047] 令,xl = x[31:16],x0 = x[15:0],al=a[31:16],a0 = a[15:0],bl = b[31:16],b0 =b[ 15:0]
[0048] 则,&[31:0]〈叉[31:0]〈13[31:0]可以写为:
[0049] (xl>al)| |(xl = =al&&x0>a0)&&((xl<bl) | | (xl = =bl&&x0<b0))
[0050] =(xl>al&&((xl〈bl) I I(xl = =bl&&x0〈b0)) I
[0051] (xl = =al&&x0>a0)&&( (xl〈bl) | | (xl = =bl&&x0〈b0))
[0052] =(xl>al&&xl〈bl)||(xl>al&&(xl= =bl&&x0〈b0))|
[0053] (xl = =al&&x0>a0)&&(xl〈bl) I I (xl = =al&&x0>a0)&&(xl = =bl
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1