用于实现深度包检测优化的方法、装置和系统技术领域
本发明涉及云计算领域,尤其涉及一种用于实现深度包检测优化
的方法、装置和系统。
背景技术
DPI(Deep Packet Inspection,深度包检测)技术是一种基于网
络协议栈应用层信息的流量检测和控制技术。其中,其对数据包的检
测“深度”是相对于普通的报文分析层次相比较而言的。“普通报文
检测”通常仅分析网络协议栈4层以下的内容,主要包括源地址、目
的地址、源端口、目的端口以及协议类型,而DPI除了对上述这些
层次的信息进行分析外,还增加了对应用层信息的分析,进而识别各
种应用及其具体内容。
随着混合云(Hybrid Cloud)、虚拟私有云(Virtual Private
Cloud,VPC)等创新云服务对于数据中心网络功能按需部署需求的
日益增加,DPI也正在成为公有云服务中需要为客户灵活交付的服务
能力。然而,现有的DPI设备一般部署在数据中心网络的出口,通
过镜像方式将所有的网络流量导入到DPI设备。DPI过程对于性能
有极高的要求,软件设备很难承担相应工作,如果为租户引入专属硬
件又需要付出高昂的代价。同时,当网络流量过大时,DPI设备可能
会无法承担全部流量的数据解析工作,只好将一部分流量做随机的丢
弃处理,这就导致了DPI解析结果不精确。这是目前需要亟待解决
的问题之一。
发明内容
本发明的发明人发现了上述现有技术中存在问题,并因此针对上
述问题中的至少一个问题提出了一种新的技术方案。
根据本发明的一个方面,提供了一种用于实现深度包检测优化的
方法,包括:
深度包检测前端设备在通过网络接收到数据报文后,在规则表中
查询是否存在与数据报文相对应的策略规则,其中规则表中包括的策
略规则由规则控制器下发;
若未查询到与数据报文相对应的策略规则,则深度包检测前端设
备向规则控制器发送策略请求,以便规则控制器下发与数据报文相对
应的策略规则;
深度包检测前端设备在接收到规则控制器下发的与数据报文相
对应的策略规则后,将接收到的与数据报文相对应的策略规则写入规
则表中;
深度包检测前端设备利用与数据报文相对应的策略规则对数据
报文进行处理。
在一个实施例中,若查询到与数据报文相对应的策略规则,则深
度包检测前端设备利用与数据报文相对应的策略规则对数据报文进
行处理。
在一个实施例中,还包括:深度包检测前端设备根据转发报文数
计算当前的处理能力;
深度包检测前端设备根据规则控制器下发的最大转发能力信息,
判断当前处理能力是否超过预设的最大转发能力;
若当前处理能力超过预设的最大转发能力,则深度包检测前端设
备向规则控制器发送超过最大处理能力上报信息,以便规则控制器增
加丢弃报文策略规则;
深度包检测前端设备在接收到规则控制器下发的丢弃报文策略
规则后,将接收到的丢弃报文策略规则写入规则表中。
在一个实施例中,深度包检测前端设备利用与数据报文相对应的
策略规则对数据报文进行处理的步骤包括:
深度包检测前端设备利用与数据报文相对应的策略规则,将数据
报文转发到深度包检测设备进行处理,或将数据报文丢弃。
在一个实施例中,还包括:深度包检测前端设备在进行初始化操
作时,与规则控制器建立管理通路;
深度包检测前端设备在接收到规则控制器下发的信息后,判断下
发信息是否为最大处理能力信息;
若下发信息为最大处理能力信息,则深度包检测前端设备记录最
大处理能力信息;
若下发信息不是最大处理能力信息,则深度包检测前端设备进一
步判断下发信息是否为具有策略规则的流表信息;
若下发信息为流表信息,则深度包检测前端设备记录流表信息。
根据本发明的另一方面,提供了一个用于实现深度包检测优化的
方法。包括:
规则控制器在接收到深度包检测前端设备发送的信息后,判断接
收到的信息是否为策略请求;
若接收到的信息为策略请求,则规则控制器从策略请求中提取出
数据报文信息,其中深度包检测前端设备在未查询到与所接收的数据
报文相对应的策略规则时发送策略请求;
规则控制器生成与数据报文信息相对应的策略规则;
规则控制器将生成的策略规则下发给深度包检测前端设备,以便
深度包检测前端设备利用与数据报文相对应的策略规则对数据报文
进行处理。
在一个实施例中,若接收到的信息不是策略请求,则规则控制器
进一步判断接收到的信息是否为超过最大处理能力上报信息;
若接收到的信息为超过最大处理能力上报信息,则规则控制器增
加丢弃报文策略规则;
规则控制器将增加的丢弃报文策略规则下发给深度包检测前端
设备。
在一个实施例中,还包括:规则控制器在进行初始化操作时,与
深度包检测前端设备建立管理通路;
规则控制器根据深度包检测设备的处理能力,确定深度包检测前
端设备在单位时间内的最大处理能力;
规则控制器将最大处理能力信息下发给深度包检测前端设备;
规则控制器生成相应的具有策略规则的流表信息,并将生成的流
表信息下发给深度包检测前端设备。
根据本发明的一个方面,提供了一种用于实现深度包检测优化的
深度包检测前端设备,包括:
查询单元,用于在通过网络接收到数据报文后,在规则表中查询
是否存在与数据报文相对应的策略规则,其中规则表中包括的策略规
则由规则控制器下发;
策略单元,用于若未查询到与数据报文相对应的策略规则,则向
规则控制器发送策略请求,以便规则控制器下发与数据报文相对应的
策略规则;在接收到规则控制器下发的与数据报文相对应的策略规则
后,将接收到的与数据报文相对应的策略规则写入规则表中;
报文处理单元,用于利用与数据报文相对应的策略规则对数据报
文进行处理。
在一个实施例中,报文处理单元,还用于若查询到与数据报文相
对应的策略规则,则利用与数据报文相对应的策略规则对数据报文进
行处理。
在一个实施例中,策略单元,还用于根据转发报文数计算当前的
处理能力;根据规则控制器下发的最大转发能力信息,判断当前处理
能力是否超过预设的最大转发能力;若当前处理能力超过预设的最大
转发能力,则向规则控制器发送超过最大处理能力上报信息,以便规
则控制器增加丢弃报文策略规则;在接收到规则控制器下发的丢弃报
文策略规则后,将接收到的丢弃报文策略规则写入规则表中。
在一个实施例中,报文处理单元,具体用于利用与数据报文相对
应的策略规则,将数据报文转发到深度包检测设备进行处理,或将数
据报文丢弃。
在一个实施例中,策略单元,还用于在进行初始化操作时,与规
则控制器建立管理通路;在接收到规则控制器下发的信息后,判断下
发信息是否为最大处理能力信息;若下发信息为最大处理能力信息,
则记录最大处理能力信息;若下发信息不是最大处理能力信息,则进
一步判断下发信息是否为具有策略规则的流表信息;若下发信息为流
表信息,则记录流表信息。
根据本发明的一个方面,提供了一种用于实现深度包检测优化的
规则控制器,包括:
信息处理单元,用于在接收到深度包检测前端设备发送的信息
后,判断接收到的信息是否为策略请求;
策略生成单元,用于若接收到的信息为策略请求,则从策略请求
中提取出数据报文信息,其中深度包检测前端设备在未查询到与所接
收的数据报文相对应的策略规则时发送策略请求;生成与数据报文信
息相对应的策略规则;将生成的策略规则下发给深度包检测前端设
备,以便深度包检测前端设备利用与数据报文相对应的策略规则对数
据报文进行处理。
在一个实施例中,信息处理单元,还用于若接收到的信息不是策
略请求,则进一步判断接收到的信息是否为超过最大处理能力上报信
息;
策略生成单元,还用于若接收到的信息为超过最大处理能力上报
信息,则增加丢弃报文策略规则;将增加的丢弃报文策略规则下发给
深度包检测前端设备。
在一个实施例中,信息处理单元,还用于在进行初始化操作时,
与深度包检测前端设备建立管理通路;
策略生成单元,还用于根据深度包检测设备的处理能力,确定深
度包检测前端设备在单位时间内的最大处理能力;将最大处理能力信
息下发给深度包检测前端设备;生成相应的具有策略规则的流表信
息,并将生成的流表信息下发给深度包检测前端设备。
根据本发明的又一方面,提供了一种用于实现深度包检测优化的
系统,包括:
深度包检测前端设备,为上述任一实施例涉及的深度包检测前端
设备;
规则控制器,为上述任一实施例涉及的规则控制器。
深度包检测设备,用于接收深度包检测前端设备转发的数据报文
并进行处理。
本发明的用于实现深度包检测优化的方法和系统,通过引入
SDN(Software Defined Network,软件定义网络)技术,以数据流
为单位对需要进入DPI检测的流量流向进行控制,减少需要检测的
数据包数量,实现了DPI功能的按需部署,避免了现有技术中DPI
设备随机丢弃数据包造成的解析不精确的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或
描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附
图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付
出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明深度包检测前端设备检测优化方法一个实施例的流程
图。
图2为本发明深度包检测前端设备检测优化方法另一个实施例的流
程图。
图3为本发明深度包检测前端设备初始化流程图。
图4为本发明规则控制器检测优化方法一个实施例的流程图。
图5为本发明规则控制器检测优化方法另一个实施例的流程图。
图6为本发明规则控制器检测初始化流程图。
图7为本发明中深度包检测前端设备的一个实施例的示意图。
图8为本发明中规则控制器的一个实施例的示意图。
图9为本发明实现深度包检测优化的系统的一个实施例的示意图。
图10为本发明实现深度包检测优化的系统的网络架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案
进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实
施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术
人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本
发明保护的范围。
图1为本发明深度包检测前端设备检测优化方法一个实施例的流
程图。如图1所示,本实施例的方法步骤如下:
步骤101,在通过网络接收到数据报文后,在规则表中查询是否
存在与数据报文相对应的策略规则,其中规则表中包括的策略规则由
规则控制器下发。其中,具有策略规则的流表信息可以包括转发报文
流表、丢弃报文流表和缺省项报文流表。
在一个实施例中,规则控制器为SDN控制器,用来引导哪些流
量用于转发检测,哪些流量丢弃。SDN技术的核心思想是将网络设
备的控制平面与数据平面分离,并由控制平面开放软件可编程的接口
供网络用户对网络设备的控制能力进行灵活调用。对于深度包检测场
景而言,引入SDN的最大优势是能够以数据流(Flow)为单位进行
网络中数据流量流向的控制,从而可以有选择地(例如以租户为单位)
将特定网络流量灵活地导入到深度包检测设备中,降低深度包检测设
备压力,避免现有深度包检测设备难以有效满足混合云、虚拟私有云
等云服务场景中深度包检测设备需求的问题。
步骤102,若未查询到与数据报文相对应的策略规则,则向规则
控制器发送策略请求,以便规则控制器下发与数据报文相对应的策略
规则。
步骤103,在接收到规则控制器下发的与数据报文相对应的策略
规则后,将接收到的与数据报文相对应的策略规则写入规则表中。
步骤104,利用与数据报文相对应的策略规则对数据报文进行处
理。例如,将数据报文转发至深度包检测设备进行处理,或将数据报
文丢弃。
如图1所示的实施例中,通过引入SDN技术,以数据流为单位
对需要进入DPI检测的流量流向进行控制,减少需要检测的数据包
数量,实现了深度包检测功能的按需部署,避免了现有技术中深度包
检测设备随机丢弃数据包造成的解析不精确的问题。
图2为本发明的深度包检测前端设备检测优化方法另一个实施
例的流程图。如图2所示,本实施例的方法步骤如下:
步骤201,通过网络接收数据报文。
步骤202,在规则表中查询是否存在与数据报文对应的策略规
则。若不存在,则进入步骤203;若存在,则进入步骤205。
步骤203,向规则控制器发送策略请求,以便规则控制器下发与
数据报文相对应的策略规则。
步骤204,在接收到规则控制器下发的与数据报文相对应的策略
规则后,将接收到的与数据报文相对应的策略规则写入规则表中。
步骤205,利用与数据报文相对应的策略规则对数据报文进行处
理。例如,将数据报文转发至深度包检测设备进行处理,或将数据报
文丢弃。
在另一个实施例中,还包括:
步骤206,根据转发报文数计算当前的处理能力。
步骤207,根据规则控制器下发的最大转发能力信息,判断当前
处理能力是否超过预设的最大转发能力。
步骤208,若当前处理能力超过预设的最大转发能力,则向规则
控制器发送超过最大处理能力上报信息,以便规则控制器增加丢弃报
文策略规则。然后返回步骤201。
若当前能力没有到达预设的最大转发能力,则继续按照现有的策
略规则对数据进行转发或丢弃。若当前处理能力超过预设的最大转发
能力时,则向规则控制器发送超过最大处理能力上报信息,以便规则
控制器增加丢弃报文策略规则。在接收到规则控制器下发的丢弃报文
策略规则后,将接收到的丢弃报文策略规则写入规则表中。并按照更
新后的规则表进行数据转发或丢弃。避免了现有技术中深度检测设备
对待测数据的随机丢弃,得到的测试结果更准确。其中,规则控制器
生成的不限于现有技术中的根据五元组进行数据包解析的粗放方式,
而是可以根据更丰富的数据流特征,例如来自云管理平台等外部组件
的租户网络相关的VxLAN ID(虚拟可扩展局域网标识)等相关信息,
更灵活的选择转发或丢弃的数据报文。
图3为本发明深度包检测前端设备初始化流程的一个实施例的
流程图。如图3所示,本实施例的方法步骤如下:
步骤301,在进行初始化操作时,与规则控制器建立管理通路。
步骤302,在接收到规则控制器下发的信息后,判断下发信息是
否为最大处理能力信息。
步骤303,若下发信息为最大处理能力信息,则记录最大处理能
力信息。
步骤304,若下发信息不是最大处理能力信息,则进一步判断下
发信息是否为具有策略规则的流表信息。
步骤305,若下发信息为流表信息,则记录流表信息。
本实施例中,策略规则可以是主动规则,也可以是被动规则,当
为主动规则时,规则控制器下发的为已制定的静态规则。当为被动规
则时,规则控制器根据上报的数据流信息进行分析,针对性的下发策
略规则并定期动态调整,以适应多变的网络环境。
图4为本发明规则控制器检测优化方法一个实施例的流程图。如
图4所示,本实施例的方法步骤如下:
步骤401,在接收到深度包检测前端设备发送的信息后,判断接
收到的信息是否为策略请求。
步骤402,若接收到信息为策略请求,则从策略请求中提取出数
据报文信息,其中深度包检测前端设备在未查询到与所接收的数据报
文相对应的策略规则时发送策略请求。
步骤403,生成与数据报文信息相对应的策略规则。
步骤404,将生成的策略规则下发给深度包检测前端设备,以便
深度包检测前端设备利用与数据报文相对应的策略规则对数据报文
进行处理。例如,策略规则可以包括转发报文流表、丢弃报文流表、
缺省项报文流表。
本实施例中,策略规则可以是主动规则,也可以是被动规则,当
为主动规则时,规则控制器下发的为已制定的静态规则。当为被动规
则时,规则控制器根据上报的数据流信息进行分析,针对性的下发策
略规则并定期动态调整,以适应多变的网络环境。
图5为本发明规则控制器检测优化方法另一个实施例的流程图。
如图5所示,本实施例的方法步骤如下:
步骤501,接收深度包检测前端设备发送的信息。
步骤502,判断接收到的信息是否为策略请求。若是,则进入步
骤503;否则,进入步骤506。
步骤503,若接收到的信息为策略请求,则从策略请求中提取出
数据报文信息,其中深度包检测前端设备在未查询到与所接收的数据
报文相对应的策略规则时发送策略请求。
步骤504,生成与数据报文信息相对应的策略规则。其中生成规
则不限于现有SDN技术中的根据五元组进行数据包解析的方式,而
是可以根据更丰富的数据流特征,例如来自云管理平台等外部组件的
租户网络相关的VxLAN ID等相关信息,更灵活的选择转发或丢弃
的数据报文。
步骤505,将生成的策略规则下发给深度包检测前端设备,以便
深度包检测前端设备利用与数据报文相对应的策略规则对数据报文
进行处理。
步骤506,若接收到的信息不是策略请求,则进一步判断接收到
的信息是否为超过最大处理能力上报信息。
步骤507,若接收到的信息为超过最大处理能力上报信息,则增
加丢弃报文策略规则。
步骤508,将增加的丢弃报文策略规则下发给深度包检测前端设
备。
为了避免现有技术中深度包检测设备在数据报文超过其最大处
理能力时随机丢弃数据的问题。本实施例中,当接收到的信息为超过
最大处理能力上报信息,则增加丢弃报文策略规则并发送给深度包检
测前端设备,以便深度包检测前端设备根据策略规则丢弃相应的数
据,转发检测所必须的数据,使得深度包检测设备的检测结果更加准
确。
图6为本发明规则控制器初始化流程图。如图6所示,本实施例
的方法步骤如下:
步骤601,在进行初始化操作时,与深度包检测前端设备建立管
理通路。
步骤602,根据深度包检测设备的处理能力,确定深度包检测前
端设备在单位时间内的最大处理能力。
步骤603,将最大处理能力信息下发给深度包检测前端设备。
步骤604,生成相应的具有策略规则的流表信息,并将生成的流
表信息下发给深度包检测前端设备。其中具有策略规则的流表信息可
以包括转发报文流表、丢弃报文流表、缺省项报文流表。
图7为本发明的深度包检测前端设备的一个实施例的示意图,如
图7所示,包括查询单元701、策略单元702和报文处理单元703,
其中:
查询单元701用于在通过网络接收到数据报文后,在规则表中查
询是否存在与数据报文相对应的策略规则,其中规则表中包括的策略
规则由规则控制器下发。
策略单元702用于若未查询到与数据报文相对应的策略规则,则
向规则控制器发送策略请求,以便规则控制器下发与数据报文相对应
的策略规则;在接收到规则控制器下发的与数据报文相对应的策略规
则后,将接收到的与数据报文相对应的策略规则写入规则表中。
在一个实施例中,策略单元702还用于根据转发报文数计算当前
的处理能力;根据规则控制器下发的最大转发能力信息,判断当前处
理能力是否超过预设的最大转发能力;若当前处理能力超过预设的最
大转发能力,则向规则控制器发送超过最大处理能力上报信息,以便
规则控制器增加丢弃报文策略规则;在接收到规则控制器下发的丢弃
报文策略规则后,将接收到的丢弃报文策略规则写入规则表中。
在一个实施例中,策略单元702还用于在进行初始化操作时,与
规则控制器建立管理通路;在接收到规则控制器下发的信息后,判断
下发信息是否为最大处理能力信息;若下发信息为最大处理能力信
息,则记录最大处理能力信息;若下发信息不是最大处理能力信息,
则进一步判断下发信息是否为策略规则;若下发信息为策略规则,则
记录策略规则。
报文处理单元703用于利用与数据报文相对应的策略规则对数
据报文进行处理。例如具体用于利用与数据报文相对应的策略规则,
将数据报文转发到深度包检测设备进行处理,或将数据报文丢弃。
在一个实施例中,报文处理单元703还用于若查询到与数据报文
相对应的策略规则,则利用与数据报文相对应的策略规则对数据报文
进行处理。
图7所示实施例中,深度包检测前端设备,根据规则控制器下发
的策略规则,对待检测的数据报文进行管理,根据客户需求丢弃不需
要检测的数据包,减少深度包检测设备检测的数据包数量,从而减轻
了深度包检测设备的处理压力。深度包检测前端设备可以是一个独立
的物理设备,可以是深度包检测设备中的一个模块,将控制面和数据
面分离。当为独立物理设备时,深度包检测前端设备可以不影响现有
的深度包检测设备的结构和状态,但是会增加组网复杂度;当为深度
包检测设备中的一个模块时,虽然会改变现有的深度包检测设备的结
构,但是可以利用深度包检测设备自身的高性能包解析能力,更高效
的开展数据包信息的匹配和转发控制。本领域技术人员可以根据实际
需求,进行灵活配置。
图8为本发明的规则控制器的一个实施例的示意图,包括信息处
理单元801和策略生成单元802,其中,
信息处理单元801用于在接收到深度包检测前端设备发送的信
息后,判断接收到的信息是否为策略请求。
策略生成单元802用于若接收到的信息为策略请求,则从策略请
求中提取出数据报文信息,其中深度包检测前端设备在未查询到与所
接收的数据报文相对应的策略规则时发送策略请求;生成与数据报文
信息相对应的策略规则;将生成的策略规则下发给深度包检测前端设
备,以便深度包检测前端设备利用与数据报文相对应的策略规则对数
据报文进行处理。
在一个实施例中,信息处理单元801还用于若接收到的信息不是
策略请求,则进一步判断接收到的信息是否为超过最大处理能力上报
信息。策略生成单元802还用于若接收到的信息为超过最大处理能力
上报信息,则增加丢弃报文策略规则;将增加的丢弃报文策略规则下
发给深度包检测前端设备。
在一个实施例中,信息处理单元801还用于在进行初始化操作
时,与深度包检测前端设备建立管理通路。策略生成单元802还用于
根据深度包检测设备的处理能力,确定深度包检测前端设备在单位时
间内的最大处理能力;将最大处理能力信息下发给深度包检测前端设
备;生成相应的具有策略规则的流表信息,并将生成的流表信息下发
给深度包检测前端设备。其中具有策略规则的流表信息可以包括转发
报文流表、丢弃报文流表、缺省项报文流表。
如图8所示的实施例中,规则控制器可以为SDN控制器,基于
OpenFlow(开放数据流)协议。OpenFlow协议通过对OpenFlow流
表的下发和网络中未匹配数据包的上报,实现了SDN控制器对网络
的集中化控制。其中,OpenFlow流表能够体现出丰富的数据流的特
征(例如租户网络相关的VxLAN ID等相关信息),并且支持灵活
的结构定义,能够有效地避免传统的根据五元组进行数据包解析的粗
放方式。
图9为本发明的用于实现深度包检测优化的系统的一个实施例
的示意图。包括:
深度包检测前端设备901,为上述任一实施例涉及的深度包检测
前端设备。
规则控制器902,为上述任一实施例涉及的规则控制器。
深度包检测设备903用于接收深度包检测前端设备901转发的数
据报文并进行处理。
图10为本发明的系统具有应用于数据中心网络深度包检测的网
络架构图。本发明在现有的深度包检测系统中,增加了深度包检测前
端设备1001和规则控制器1002,深度包检测前端设备1001接收待
检测的数据报文,通过规则控制器1002下发的策略规则对数据进行
转发或丢弃,以数据流为单位对需要进入深度包检测设备1003的流
量流向进行控制,减少需要检测的数据包数量,实现了深度包检测功
能的按需部署,避免了现有技术中深度包检测设备随机丢弃数据包造
成的解析不精确的问题。
本领域普通技术人员可以理解实现上述实施例的全部或部分步
骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所
述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介
质可以是只读存储器,磁盘或光盘等。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的
或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技
术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理
和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适
于特定用途的带有各种修改的各种实施例。