一种高效的基于通用服务器的报文自动镜像的方法与流程

文档序号:13882699阅读:155来源:国知局
一种高效的基于通用服务器的报文自动镜像的方法与流程

本发明涉及信息技术领域,尤其是数据通信领域中的通信处理技术领域。



背景技术:

报文镜像技术在数据通信领域是一项基本而且重要的技术,它是把设备一个或者多个端口的数据镜像到一个或者多个端口的方法。设备镜像的数据可以是通过这个端口的所有数据,也可以是按照某种规则定义的被需要的数据。用户可以通过数据镜像,进行网络监管和故障排除。比如,公安部门可以通过分析镜像报文,分析嫌疑人平时的上网偏好,进而加强对嫌疑人的了解;国家互联网管控部门可以通过分析镜像报文的异常,从而对黄赌毒的网站进行封堵;运营商可以通过镜像报文分析网络故障,从而更好地进行定位,将故障排除。这些均离不开报文镜像技术。

目前,报文镜像技术的都是通过命令或者下发策略文件来进行控制,并由专用硬件设备实现,申请号200810146643.1的“一种报文自动镜像系统及方法”,提供了一种接收包括镜像策略及镜像规则的镜像信息,根据所述镜像信息生成底层硬件能够识别的表项信息,再根据所述表项信息对所述报文进行镜像操作的方法。

但此技术的问题在于过于依赖硬件功能特性,需要某些支持对应硬件表项的设备才可以实现报文镜像功能,这限制了报文镜像功能的使用场景,无法集成在数量众多的通用服务器架构或者虚拟化云平台的设备之上使用。

随着技术的发展,sdn(软件定义网络)技术,虚拟化技术的进步以及通用处理器性能的提升,使得使用通用服务器越来越多的用到数据通信领域。那么如何在保证通用服务器性能不降低的情况下,实现复杂正则规则的支持,并且支持规则间逻辑运算显得尤为重要。

背景技术包括有限状态机,有限状态机出现之初主要是在游戏编码中得到了大量的应用。有限状态机(fsm)是表示有限个状态及在这些状态之间的转移和动作等行为的数学模型。在计算机领域有着广泛的应用。通常fsm包含几个要素:状态的管理、状态的监控、状态的触发、状态触发后引发的动作。

本次发明将有限状态机应用于报文镜像,使得通用服务器可以拥有更复杂的镜像功能,且不影响到服务器的性能。



技术实现要素:

基于现有技术的不足本发明提供了一种高效的基于通用服务器的报文自动镜像的方法,由报文预处理模块,镜像引擎模块,镜像引擎的规则转译模块配合实现;由报文预处理模块和镜像引擎模块及镜像引擎的规则转译模块实现镜像步骤;镜像步骤包括:镜像引擎的工作步骤和镜像引擎的规则转译步骤;

实现本发明的一种高效的基于通用服务器的报文自动镜像的方法的具体步骤如下:

(1)镜像步骤;

步骤一:

由报文预处理模块对接收到的报文进行预处理,预处理的过程包括:

a).提取源ip地址,目的ip地址,源端口,目的端口,报文负载,域名作为报文属性信息;

b).关联数据以提取报文归属信息,包括:报文的源ip地址归属行政区,目的ip地址归属行政区,源ip地址归属的用户,目的ip归属的机房;

步骤二:

镜像引擎模块对步骤一提取到的报文属性信息和报文归属信息进行匹配,匹配成功则设置报文镜像标记;

步骤三:

检查报文通过步骤二是否已经设置了报文镜像标记,当已设置报文镜像标记则复制报文得到镜像报文,当未设置报文镜像标记直接终止未设置报文镜像标记的报文的镜像流程;

步骤四:

将步骤三得到的镜像报文,发送到镜像端口并完成转发操作以输出镜像报文;

(2)镜像引擎的工作步骤,由镜像引擎模块完成;

步骤一:

对ip类元属性规则进行匹配,获取到本报文源/目的ip地址命中的所有规则,将对应的元属性序列号,记录在匹配结果集合中;ip类元属性匹配基于区间树算法进行匹配;ip地址,端口,报文负载等单一且不可分割的属性视为元属性,规则表达式中仅含一个元属性的表达式称为元属性表达式,对镜像规则逻辑表达式中每一个由元属性表述的规则进行统一编号,称为元属性序列号;

步骤二:

对端口类元属性规则进行匹配,获取到本报文源/目的端口命中的所有规则,将对应的元属性序列号,记录在匹配结果集合中;端口类元属性匹配基于区间树算法进行匹配;

步骤三:

对报文负载类元属性规则进行匹配,获取到本报文负载部分命中的所有规则,将对应的元属性序列号,记录在匹配结果集合中;负载类元属性匹配基于ac多模匹配算法进行匹配;负载部分指tcp协议的负载部分和udp协议的负载部分;

步骤四:

对步骤一,步骤二,步骤三获得的匹配结果集合进行序列化操作,具体操作为:

a).对匹配结果集中记录的所有元属性序列号进行升序排序,获得有序的元属性结果序列号集合;

b).将有序的元属性结果序列号集合格式化,生成已格式化的有序的元属性结果序列号集合,格式化的具体方案为将序列号用特殊符号进行分隔,以便于后续进行正则匹配;例如序列号集合{1,2,3}可格式化为序列号格式化字符串“<1><2><3>”;

步骤五:

对已格式化的有序的元属性结果序列号集合进行正则匹配,匹配的具体步骤为:

a).根据序列号查找所有包含元属性序列号正则表达式;

b).使用元序列号表达式对步骤四格式化之后的序列号格式化字符串进行匹配;

步骤六:

检查步骤五是否匹配成功,若匹配成功则检查当前时间是否在镜像的时间段内,当前时间处于镜像时间段内则设置镜像标记;

(3)镜像引擎的规则转译步骤,由镜像引擎的规则转译模块完成;

步骤一:

解析规则,将组合规则拆分成若干个元属性表达式,对元属性表达式进行编号;

步骤二:

a).将规则表达式中的逻辑与符号‘&&’用正则表达式‘.*’替换,将元属性表达式替换为‘<序列号>’格式,得到‘<x>.*<y>’格式的元属性序列号,正则表达式与原规则表达式等价;

如:sip==192.168.1.1&&port==8080,解析过程中对规则进行元属性表达式编号其中‘sip==192.168.1.1’编号为1,’port==8080’编号为2,其等价的元属性序列号正则表达式为<1>.*<2>;

b).将元属性序列号与元属性序列号正则表达式的映射关系记录备用。

有益效果

与传统的报文策略匹配、镜像方法相比,本发明实现镜像规则引擎,通过把规则转换成设备无关的状态机,然后由匹配引擎对通过引擎的数据报文进行匹配,将匹配成功的报文通过端口进行发送,这样做使得众多的x86通用服务器设备可以很容易的支持复杂镜像功能,且在保障设备性能的基础上支持使用正则语法描述镜像相关规则以提升镜像的功能处理速度和准确性,复杂性,并且镜像装置可使用各种不同场景。

附图说明

图1是本发明的镜像步骤流程图;

图2是本发明的镜像引擎的工作步骤的流程图;

图3是本发明的镜像引擎的规则转译步骤的流程图;

图4是本发明的系统结构图。

具体实施方式

参看图1至图4,实现本发明的一种高效的基于通用服务器的报文自动镜像的方法包含镜像步骤、镜像引擎的工作步骤、镜像引擎的规则转译步骤;

(1)镜像步骤;

步骤一:

由报文预处理模块a对接收到的报文进行预处理,预处理的过程包括:

a).提取源ip地址,目的ip地址,源端口,目的端口,报文负载,域名作为报文属性信息;

b).关联数据以提取报文归属信息,包括:报文的源ip地址归属行政区,目的ip地址归属行政区,源ip地址归属的用户,目的ip归属的机房;

步骤二:

镜像引擎模块c对步骤一提取到的报文属性信息和报文归属信息进行匹配,匹配成功则设置报文镜像标记;

步骤三:

检查报文通过步骤二是否已经设置了报文镜像标记,当已设置报文镜像标记则复制报文得到镜像报文,当未设置报文镜像标记直接终止未设置报文镜像标记的报文的镜像流程;

步骤四:

将步骤三得到的镜像报文,发送到镜像端口并完成转发操作以输出镜像报文;

(2)镜像引擎的工作步骤,由镜像引擎模块c完成;

步骤一:

对ip类元属性规则进行匹配,获取到本报文源/目的ip地址命中的所有规则,将对应的元属性序列号,记录在匹配结果集合中;ip类元属性匹配基于区间树算法进行匹配;ip地址,端口,报文负载等单一且不可分割的属性视为元属性,规则表达式中仅含一个元属性的表达式称为元属性表达式,对镜像规则逻辑表达式中每一个由元属性表述的规则进行统一编号,称为元属性序列号;

步骤二:

对端口类元属性规则进行匹配,获取到本报文源/目的端口命中的所有规则,将对应的元属性序列号,记录在匹配结果集合中;端口类元属性匹配基于区间树算法进行匹配;

步骤三:

对报文负载类元属性规则进行匹配,获取到本报文负载部分命中的所有规则,将对应的元属性序列号,记录在匹配结果集合中;负载类元属性匹配基于ac多模匹配算法进行匹配;负载部分指tcp协议的负载部分和udp协议的负载部分;

步骤四:

对步骤一,步骤二,步骤三获得的匹配结果集合进行序列化操作,具体操作为:

a).对匹配结果集中记录的所有元属性序列号进行升序排序,获得有序的元属性结果序列号集合;

b).将有序的元属性结果序列号集合格式化,生成已格式化的有序的元属性结果序列号集合,格式化的具体方案为将序列号用特殊符号进行分隔,以便于后续进行正则匹配;例如序列号集合{1,2,3}可格式化为序列号格式化字符串“<1><2><3>”;

步骤五:

对已格式化的有序的元属性结果序列号集合进行正则匹配,匹配的具体步骤为:

a).根据序列号查找所有包含元属性序列号正则表达式;

b).使用元序列号表达式对步骤四格式化之后的序列号格式化字符串进行匹配;

步骤六:

检查步骤五是否匹配成功,若匹配成功则检查当前时间是否在镜像的时间段内,当前时间处于镜像时间段内则设置镜像标记;

(3)镜像引擎的规则转译步骤,由镜像引擎的规则转译模块b完成;

步骤一:

解析规则,将组合规则拆分成若干个元属性表达式,对元属性表达式进行编号;

步骤二:

a).将规则表达式中的逻辑与符号‘&&’用正则表达式‘.*’替换,将元属性表达式替换为‘<序列号>’格式,得到‘<x>.*<y>’格式的元属性序列号,正则表达式与原规则表达式等价;

如:sip==192.168.1.1&&port==8080,解析过程中对规则进行元属性表达式编号其中‘sip==192.168.1.1’编号为1,’port==8080’编号为2,其等价的元属性序列号正则表达式为<1>.*<2>;

b).将元属性序列号与元属性序列号正则表达式的映射关系记录备用。

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