一种虚拟化网络环境中镜像网络流量控制协议的制作方法

文档序号:14847726发布日期:2018-06-30 16:56阅读:233来源:国知局

本发明涉及信息安全技术领域,尤其涉及虚拟化网络环境中对镜像网络流量的控制方案和控制协议。



背景技术:

在虚拟化网络环境中,虚拟网络边界是由虚拟机和隔离边界的隔离方案如VLAN或VXLAN构成,而物理网络边界仍然是传统的基于物理网络交换机和网络链路组成。这就使得一个由虚拟机组成的网络的虚拟网络边界和物理网络边界不一致。传统物理安全设备从物理网络边界(物理交换机的上行端口)镜像网络流量时,就无法获得一个完整的虚拟网络边界所对应的网络流量。虚拟机间可以通过虚拟交换机直接通信,而不把流量转发到物理网络链路上,这部分流量也无法被物理安全设备直接监控到。

为了解决在虚拟网络环境中的网络流量监控的盲区问题,现在常用的技术手段是通过配置虚拟交换机或利用安装在虚拟化环境中的虚拟机把需要监控的网络流量从虚拟化环境中导出到物理链路上来。其中通过配置虚拟机交换机的流量导出方案可以解决虚拟间通信流量不出到物理链路上而无法被捕获的问题,但是仍然存在由于虚拟网络边界和物理网络边界不一致而导致的无法捕获一个完整的虚拟网络边界的流量的问题。通过虚拟机将虚拟交换机上的流量捕获再导出来将是一种更加合理且被越来越多安全厂商所接受的方案。

软件定义网络(SoftwareDefinedNetworks,SDN)是近年来提出的一种利用解耦网络硬件的控制层、转发层和数据层来实现对网络流量高灵活性转发控制的新的网络控制架构。为了支持软件定义的灵活性,无法由单一的物理交换机来完成对某个网络流的转发控制,因为单一物理交换机缺少足够的网络全局拓扑信息的支持,因此在软件定义网络的环境中,需要将控制权限进行集中化的管理,以转发节点向控制节点询问转发策略,控制节点下发转发策略的方式来进行执行。软件定义网络是一种技术思想,Openflow是其中最具有代表性的SDN的具体实现技术之一。

通过安全虚拟机抓取虚拟交换机上的数据包,并导出到指定的网络设备上的镜像导流方案,存在有以下几个问题:1)计算资源问题:安全虚拟机需要部署在用户的业务环境里,才能从虚拟交换机上捕获镜像数据包。从数据包的捕获到导出已经占用了一定的计算资源(IO和中断),若在需要对每个数据包进行复杂的深度包检测,那将极大的占用用户业务环境的计算资源,使得方案难以被接受。2)网络资源问题:在真实的业务环境中,通常虚拟机是部署在刀片服务器上的,这就使得安全虚拟机出的流量通常必须占用业务网络的物理链路,那么若不对需要导出的流量进行任何优化就导出,则会使得网络带宽占用翻倍,而优化又意味着需要分析数据包占用更多的计算资源。3)镜像流量去重问题:两台不同物理设备上的虚拟机间的通信的流量会被不同的安全虚拟机所捕获,即一份流量被捕获两次,而安全虚拟机间在不通信的情况下,很难判断是否出现重复流量,这时都导出将额外对网络资源和安全设备带来负载压力,且是一种资源的浪费。4)多目的导流问题:安全检测和审计并不仅仅是入侵检测系统一个设备的工作,往往需要多种专用的检测和审计设备进行配合工作,如网络审计、数据库审计、入侵检测、应用性能管理系统以越来越多的基于大数据的态势感知、数据分析等设备。而把虚拟机的镜像流量从一台物理机中同时导给多个物理设备,所产生的复制数据包和导出网络流的工作,必将严重占用业务物理机的计算资源和网络资源,这几乎成为一个在现阶段的虚拟化网络环境中无法实现的任务。并且,不同种的检测和审计设备对网络流量的需求不同,如数据库审计只需要数据库的访问流量、入侵检测系统关注的是深度的数据包信息而态势感知更多需要的是网络流的基本信息等5)扩展性问题:敏捷、联动等概念的提出使得网络安全需要能够支持更加复杂的策略,按需执行安全监控策略,通过软件定义实时修改安全策略等。这些需求在安全虚拟机的方案中都无法被实现。

可见根本问题是控制和转发集成在了一起,因此无法同时满足复杂业务逻辑、扩展性灵活性和高性能的需求。因此使用软件定义的概念,将控制层和转发层的业务解耦合,采用一个集中的控制中心来完成全局控制策略的决策,由安全虚拟机只负责对流量的捕获和按照从控制中心获得的策略的转发动作。这种架构将是更加符合现在虚拟化和云计算环境中对镜像网络流量的管理需求。但是,仅有此架构并无法构成完成的可实施的解决方案,还需要有可以支持此架构的镜像流量控制协议,通过该协议将软件定义与解耦合的控制和转发分离结构串联起来,才能够构成一个完整可用的镜像流量监控管理的解决方案。



技术实现要素:

本发明的目的是为了实现一种利用软件定义的概念实现镜像网络流量控制方案和镜像流量控制协议,用于解决:1)通过镜像流量控制协议,细粒度定义镜像流量的转发策略;2)通过镜像流量控制协议,降低镜像转发虚拟机的计算负载;3)通过镜像流量控制协议,优化镜像流量的传统路径;4)通过镜像流量控制协议,提供具有可扩展性的、灵活的网络流量安全监控需求。

一种虚拟化网络环境中基于软件定义的镜像网络流量控制协议,该协议能够适应功能上解耦合且分布式部署的镜像流量采集、镜像流量分发和镜像流量控制的系统结构,镜像流量采集器节点/虚拟机被部署在用户的业务网络环境中,其主要功能是捕获虚拟化环境中的镜像流量,在根据协议所指定的目的进行转发;镜像流量分发器部署在非业务网络环境中,即不需要考虑网络负载对用户业务网络环境正常网络通信的影响,其功能是根据协议所指定的多目的的流量分析设备进行流量复制和分发;镜像流量中心控制器对整个镜像网络流量的转发逻辑进行统一的控制,提供软件定义的接口。

所述的镜像网络流量控制协议,其整体工作流程为:

1)在镜像流量采集器节点捕获到数据包后,会在本地的导流流表中查找数据包所代表的流所对应的流表项,若找不到对应匹配项,则表明该流所对应的导流规则还未从镜像流量中心控制器下发,则需要向控制中心请求该规则;

2)镜像流量采集器节点向镜像流量中心控制器节点发送导流流表项请求协议,请求对应的导流流表项;

3)在镜像流量采集器节点发出导流流表项请求后,尚未接收到镜像流量中心控制器节点下发的流表项之前,先按照默认导流规则进行导流,默认规则为将该流的前n个数据包导出给镜像流量控制中心;

4)镜像流量中心控制器节点接收到导流流表项请求报文后,基于报文内容对本地数据库进行检索,查找预先配置和定义的该流对对应的导流规则,并基于查找结果生成对应的流表项规则;

5)若无法找到对应的导流规则,则由镜像流量中心控制器向发送请求的镜像流量采集器发送协议分析请求;

6)收到协议分析请求的镜像流量采集器将该流的完整数据包上报至镜像流量中心控制器;

7)镜像流量中心控制器分析获得的上报数据包的内容,分析应用层协议,并基于系统的配置生成对应的导流的规则;

8)若该流所对应的流分析设备是单一设备时,镜像流量中心控制器节点直接向请求该规则的镜像流量采集器节点下发导流规则;

9)镜像流量采集器节点在接收到下发来的导流规则后,更新本地的流表,并按照新的导流规则将流量导出到对应的流分析设备;

10)若该流所对应的流分析设备超过一个设备时,镜像流量中心控制器节点选择一个合适的镜像流量分发器节点,作为导流目的,并向请求该规则的镜像流量采集器节点下发以该

镜像流量分发器节点为目的的导流规则;

11)镜像流量采集器节点在接收到下发来的导流规则后,更新本地的流表,并按照新的导流规则将流量导出到对应的镜像流量分发器节点;

12)镜像流量中心控制器节点基于流分析设备的目的和对所需要的镜像流量的要求,向被选作导流目的的镜像流量分发器节点下发流分发规则;

13)镜像流量分发器节点在接收到流分发规则后,更新本地流表,并在接收到从镜像流量采集器节点导出来的流量后,基于流分发规则表进行流量的分发。

所述导流规则表被存储在镜像流量采集器节点的内存中,每个数据包在处理时都需要基于数据包的源MAC、目的MAC、源IP、目的IP、端口号和VLANID来检索该数据包所对应的网络流在该表中的对应的表项,以基于表项对数据包进行处理,其中:动作ID指定需要执行的动作,目前支持丢弃和导流两种动作;封装IP、封装VLAN是在导流时根据用户网络环境提供的将数据包导出时需要构造的数据封装格式;目的MAC地址的指定是可选项,在没有SDN网络支持的环境下,且需要直接将流量转发到安全设备而不是流量分发节点时需要指定,统计标志指定该流的流量和数据包个数是否需要进行统计和上报给管理中心,失效时间是该流表项的失效时间,系统中将启用一个对应的计时器,每次该流表项被匹配后,对应的计时器将被重置为该流表项中的失效时间,若超过失效时间的周期内都没有属于该流表项的数据包得到匹配,则将删除该流表项。

所述导流流表项请求报属于应用层协议,其中:协议标志给出该协议的识别信息;设备ID给出镜像流量采集器节点的识别信息;任务ID给出该报文所要执行的任务,在当前流程中为流表项请求任务;流信息包括:源MAC、目的MAC、源IP、目的IP、端口号和VLANID,用于定义一个需要申请的流表项的流的识别信息,所述协议分析请求报文当镜像流量中心控制器无法通过流的基本信息匹配到对应的流表项时,需要启动协议分析功能,来实时分析当前的流中所使用的协议,并根据系统配置中所指定的应用层协议的导流或不导流的配置项来下发导流的流表规则,其中:协议标志给出该协议的识别信息;设备ID给出镜像流量中心控制器的识别信息;任务ID给出该报文所要执行的任务,在当前流程中为协议请求任务;流信息包括:流ID作为该流的唯一识别ID会被镜像流量采集器节点存储,源MAC、目的MAC、源IP、目的IP、端口号和VLANID,用于定义一个需要进行协议识别的流的识别信息;包数指定需要镜像流量采集器向镜像流量中心控制器发送多少个数据包,来进行协议分析。

所述协议分析数据上报为当镜像流量采集器节点收到协议分析请求报文后,将对应流的数据包完整的封装在数据包负载字段中,并加上用于指定镜像流量控制协议的协议标志、识别自身信息的设备ID、识别当前是协议分析数据上报报文任务的任务ID、识别需要进行分析的流的流ID以及当前上报的数据包所对应序号;所述导流流表项下发报文为当镜像流量中心控制器节点生成了镜像流量采集器节点所需要的流控制策略后,以该报文的形式将该流表项下发到镜像流量采集器节点,其中,协议标志给出该协议的识别信息;设备ID给出镜像流量中心控制器的识别信息;任务ID给出该报文所要执行的任务,在当前流程中导流表项下发任务;流信息包括:流ID作为该流的唯一识别ID会被镜像流量采集器节点存储,源MAC、目的MAC、源IP、目的IP、端口号和VLANID;包数指定需要镜像流量采集器向镜像流量中心控制器发送多少个数据包,来进行协议分析;动作ID指定需要执行的动作,目前支持丢弃和导流两种动作;封装IP、封装VLAN是在导流时根据用户网络环境提供的将数据包导出时需要构造的数据封装格式;目的MAC地址的指定是可选项,在没有SDN网络支持的环境下,且需要直接将流量转发到安全设备而不是流量分发节点时需要指定;统计标志指定该流的流量和数据包个数是否需要进行统计和上报给管理中心;失效时间是该流表项的失效时间。

所述分发规则流表被存储在镜像流量分发器节点的内存中,每个数据包在处理时都需要基于数据包的源MAC、目的MAC、源IP、目的IP、端口号和VLANID来检索该数据包所对应的网络流在该表中的对应的表项,以基于表项对数据包进行处理,其中:动作ID指定需要执行的动作,在分发表中动作只有导流;VXLAN转换标志的作用是指定以当前动作处理的流是否需要将VXLAN封装去掉,以适应不支持VXLAN的检测和审计设备;分发节点处于非业务网络中,不需要特定的封装以实现与业务网络的正常业务流量进行隔离,因此只需要通过指定目的MAC地址来为个动作指定流的转发目的,每个动作将导致一次数据包的复制和导流,失效时间是该流表项的失效时间,分发流表的规则是在镜像流量采集器的规则被下发的同时,由镜像流量中心控制器节点向镜像流量分发器节点下发的,即镜像流量分发器内的网络流都是在镜像流量采集器中的流量被识别且下发了向匹配的流表项后,才会被从采集器导出至分发器,因此不存在未知需要询问如何处理的网络流,在该报文中,协议标志给出该协议的识别信息;设备ID给出镜像流量中心控制器的识别信息;任务ID给出该报文所要执行的任务,在当前流程中导流表项下发任务;流信息包括:源MAC、目的MAC、源IP、目的IP、端口号和VLANID;动作个数指定报文中存在的动作的个数;动作ID指定需要执行的动作,这里只有导流动作;VXLAN转换标志的作用是指定以当前动作处理的流是否需要将VXLAN封装去掉,以适应不支持VXLAN的检测和审计设备;目的MAC地址为当前动作指定流的转发目的,失效时间是该流表项的失效时间。

这种协议和实现方法具有以下的先进性:1)最大化的优化了工作在用户业务环境中负责流量捕获和导出的镜像流量采集器节点的计算资源使用,将传输层以上的深度包解析的任务转移给了具有独立计算资源的镜像流量中心控制器节点;2)通过中心控制,软件定义的方式,灵活的优化了对镜像流量的获取,通过基于流的策略细粒度的指定抓取的镜像流量中需要导出的和不需要导出的部分;3)有效解决了网络内东西向流量中存在的同一流量在不同物理主机上被捕获而造成的流量的重复问题,通过中心控制在下发流表项时选择网络负载小的一端执行导流,而网络负载大的一端丢弃该重复流量,以此解决流量去重问题并且平衡使用网络负载;4)通过镜像流量分发解决多目的导流中流量复制对用户业务环境的计算资源和网络资源的占用以及无法细粒度实现流量分发的问题;6)通过将控制权集中,在以流量控制协议的方式下发到各个终端节点的方式,有效解决没有全局视角各自为战的安全虚拟机面对业务网络拓扑和安全业务需求发生变化时缺乏应对方案的扩展性和灵活性的问题。

具体实施方式

下面对本发明作进一步详细说明。

假设物理主机A的网络负载较高,虚拟机A与虚拟机B进行通信的流量不在镜像流量采集器1和镜像流量采集器2的导流流表中。虚拟机A与虚拟机B之间通信的流量包括视频业务流和一般的业务系统的内部调用,其中该业务系统的内部调用流量需要被入侵检测系统和应用性能管理系统进行监测和审计,但该流表项也未存在于镜像流量中心控制器中。原因是镜像流量中心控制器中只存有用户通过软件定义下发的策略而不是具体的流表项。策略如虚拟机A的协议X需要被安全设备Y进行监控。镜像网络流量控制协议在本实施例中工作时,将能够实现:去除镜像流量采集器1抓取的虚拟机A与虚拟机B进行通信的重复流量;选择由网络负载降低的镜像流量采集器2处进行镜像流量的导出;通过镜像流量分发器在非业务网络环境中复制流量,并分发给入侵检测系统和应用性能管理系统。下面结合实施例的具体步骤介绍整个协议的工作过程。

步骤1,在虚拟机A向虚拟机B发送数据包时,镜像流量采集器1在物理主机A上和镜像流量采集器2在物理主机B上都会抓到该数据包。镜像流量采集器1和2查询本地的导流规则表,发现从该数据包的源MAC、目的MAC、源IP、目的IP、端口号和VLANID无法在导流规则表里找到对应的表项,因此镜像流量采集器1和2都会构造一个导流流表项请求报文,并发送给镜像流量中心控制节点。

步骤2,镜像流量中心控制节点收到镜像流量采集器1和2发来的导流流表项请求报文后,检查本地流表项缓存,无法找到对应的流表项。镜像流量中心控制节点基于报文中的源MAC、目的MAC、源IP、目的IP和VLANID从网络拓扑信息中查得通信双方为虚拟机A和虚拟机B,并从导流策略中查找到虚拟机A和虚拟机B之间通信所对应的安全策略为需要对一般的系统业务流量的镜像流量进行入侵检测和应用性能管理,但不需要监测视频文件的流量。

步骤3,镜像流量中心控制节点基于流量负载情况,选择流量负载小的镜像流量采集器2所在物理主机作为镜像流量导出点,向镜像流量采集器2发送协议分析请求报文,请求进一步的报文分析。

步骤4,镜像流量采集器2收到协议分析请求报文后,将捕获的镜像流量按照协议中指定的数量封装数据包到协议分析数据上报报文,并发送给镜像流量中心控制节点。

步骤5,镜像流量中心控制节点通过分析协议分析数据上报报文中的数据包判断出该流量属于一般的业务流量而不是视频流,需要被监测。再基于查找到的安全策略分别生成一条对应镜像流量采集器1的导流流表项、一条对应镜像流量采集器2的导流流表项和一条对应镜像流量分发器节点的分发流表项。

步骤6,对应镜像流量采集器1的导流流表项的任务是不导流该流量,此表项被通过导流流表项下发报文下发到镜像流量采集器1。对应镜像流量采集器2的导流流表项为以镜像流量分发器为目的的导流任务。镜像流量中心控制节点把该流表项通过导流流表项下发报文发送给镜像流量采集器2。对应镜像流量分发器节点的分发流表项是包括有以入侵检测系统和应用性能管理系统为目的的导流任务,该流表项被以分发流表项更新报文下发到镜像流量分发器节点。

步骤7,镜像流量采集器1、镜像流量采集器2和镜像流量分发器在接收到各自的流表项的报文后,更新本地对应的流表。

步骤8,镜像流量采集器1在再次抓到属于该流的报文后,基于源MAC、目的MAC、源IP、目的IP和VLANID匹配到流表项后,丢弃该报文。镜像流量采集器2在再次抓到属于该流的报文后,基于源MAC、目的MAC、源IP、目的IP和VLANID匹配到流表项后,将该报文转发给镜像流量分发器节点。镜像流量分发器在接收到由镜像流量采集器2转发来的数据包后,基于源MAC、目的MAC、源IP、目的IP和VLANID匹配到对应的流表项后,将流量复制一份后,分别转发给入侵检测系统和应用性能管理系统。

上述实施例仅例示性说明本发明的原理及其功效,以及部分运用的实施例,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

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