一种基于云化环境的网络流量采集方法及系统
文献发布时间:2024-04-18 20:00:50
技术领域
本发明涉及数据采集技术领域,尤其是涉及一种基于云化环境的网络流量采集方法及系统。
背景技术
随着互联网的发展,网络安全问题与日俱增,在运维和护网工作中对网络流量进行安全监控和预警事件上报成为了企业不可忽视的课题。由于旁路监控模式具有部署灵活方便,且不会影响现有网络的优点,网络监控主要采用旁路监控模式。而旁路监控模式主要通过交换机等网络设备的“端口镜像”功能来实现监控,在此模式下,数据安全监控平台只需要连接到交换机指定的镜像端口,就可以进行网络流量的采集、解析、分析。在物理环境中,一般将镜像流量从核心交换机等上层设备的端口镜像出来的,有物理拓扑和硬件配置的具体要求。但随着云计算技术的普及和发展,在云化环境(虚拟机、容器等)中,直接对交换机进行流量镜像的方案已不再适用,主要原因有:
(1)虚拟机之间的流量只在计算节点(虚拟化实例所运行的物理机)内部流动,交换机捕获不到。或者只在计算节点之间流动,在接入层终结,汇聚层捕获不到,原始方案无法捕获这部分流量,导致漏掉很多安全事件信息。
(2)云化环境的流量出虚拟机后经过了虚拟机网络(交换机、路由器、网关、防火墙)处理,可能有NAT、流表转换、隧道报文封装等操作,导致报文字段被替换,分析节点无法还原出原始报文,不能准确地分析出风险节点和事件,导致安全事件误报、漏报、错报等问题。
(3)通过交换机等网络设备来获取镜像流量,由于该方法具有一定的局限性,如要求网络设备支持镜像,导致其应用场景受限。
目前为解决流量采集问题,也提出相关解决方法,如申请号为CN202210043683.3,专利名称为一种网络流量采集方法的中国发明申请,提出一种基于在被监测节点(可适用于虚拟节点和物理节点)上抓取网络流量,以文件的形式保存,将流量文件发送数据安全监控平台的方法实现流量监控,以解决特殊化场景中网络流量的采集问题。但这种方案有如下缺点:
1.要求被监控节点都需要部署监控软件生成流量文件,对被监控系统有侵入性,且对被监控节点有系统、软件依赖等要求,适配性不是特别强。
2.随着被监控节点数目增多,部署规模和工作量增加。在云计算环境中,虚拟机的新建和销毁操作比较频繁的,每新增一个被监控节点都需要人工完成监控程序安装,不利于自动化实施。
3.每个被监控节点都要将文件传送给数据安全监控平台,占用额外网络带宽资源,如果监控规模巨大,网络开销可能是不可接受的。
发明内容
本发明主要是解决现有技术中流量采集存在无法捕获流量,漏掉安全事件信息,采集流量无法还原,导致安全事件误报、漏报、错误,以及对设备具有一定要求,导致应用场景受限的问题,提供了一种基于云化环境的网络流量采集方法及系统。
本发明还解决了现有技术中流量采集对被监控系统有侵入性,有系统、软件依赖要求,适配性不强,不利于自动化实施,占用计算资源和网络传输资源大的问题,提供了一种基于云化环境的网络流量采集方法及系统。
本发明方案通过虚拟交换机patch口镜像流量的方式,将监控节点数据引流到镜像虚拟交换机,再通过镜像虚拟交换机转发到虚拟化实例agent节点,将网络流量数据转存为文件格式,转发给数据安全监控平台用于安全分析。
本发明解决云化环境虚拟化实例流量采集问题,将被监控节点流量数据自动发送至数据安全监控平台,可以适配被监控虚拟节点个数动态变化的环境。可针对指定虚拟化实例或者计算节点全部虚拟化实例进行统一流量采集,也支持多网卡系统的流量采集。同时支持云计算虚拟实例弹缩事件自动监测,能够自适应云计算环境虚拟实例变化场景,自动下发、清除流表,按照预配置策略实现流量采集。
本发明的上述技术问题主要是通过下述技术方案得以解决的:一种基于云化环境的网络流量采集方法,在计算节点创建镜像虚拟交换机和虚拟化实例agent节点,镜像虚拟交换机与虚拟交换机互联,通过虚拟交换机将被监控虚拟实例的流量镜像给镜像虚拟交换机,虚拟化实例agent节点与镜像虚拟交换机互联,通过镜像虚拟交换机将接收的流量引流到虚拟化实例agent节点,虚拟化实例agent节点将收到流量转换为报文文件发送给监控平台。
本发明在计算节点部署镜像虚拟交换机和虚拟化实例agent节点,通过软件方式实现流量监控,可以在接入层就截获原始流量,在云化环境NAT、隧道等报文改装环节前就采集到虚拟化实例流量,有利于安全事件判断的准确性。本发明对监控实例没有浸入式修改,无需在监控虚拟化实例上部署软件,对监控节点没有系统、软件依赖等要求,针对x86、arm、linux、windows、mac等环境均可实现流量采集,在虚拟节点个数较多、形态复杂的环境具备推广性,可扩展性强。本发明通过部署虚拟化实例agent节点完成物理节点所有虚拟化实例的流量采集,占用计算资源和网络传输资源均达到最优。本发明支持多网卡环境的流量收集。
作为一种优选方案,在存在被监控虚拟化实例的虚拟交换机上创建patch口,和在镜像虚拟交换机上创建对应的patch口,将被检测的虚拟交换机与镜像虚拟交换机互联。
作为一种优选方案,通过解析监控策略配置,在虚拟交换机下发流表,将虚拟交换机指定端口流量或整个虚拟交换机流量镜像给镜像虚拟交换机。
作为一种优选方案,通过在镜像虚拟交换机下发流表,将patch口接收的流量转发给虚拟化实例agent节点相连的虚拟端口,引流到虚拟化实例agent节点。
作为一种优选方案,在虚拟化实例agent节点部署程序,对虚拟端口进行抓包,获得的流量转换成报文文件,通过定时任务周期性发送给监控平台。虚拟化实例agent节点只要求能部署软件程序,可设置只占用最低计算资源,甚至没有操作系统要求,存在软件程序所需依赖即可运行,如软件用java实现,只安装java基础包支持相关功能即可。使得虚拟化实例agent节点占用计算资源少。虚拟化实例agent节点生成流量文件的大小,抓包时长、发送文件周期等参数可以根据需求配置。虚拟化实例agent节点将文件发送给数据安全监控平台,平台收到流量文件后进行解析,上报安全告警事件。
作为一种优选方案,还包括虚拟化实例agent节点实时监控虚拟化实例事件,在事件发生变化时,根据监控策略对虚拟交换机流表进行调整,动态采集所需虚拟化实例流量。本发明支持云计算虚拟化实例弹缩事件自动监测,能够自适应云计算环境虚拟化实例变化场景,自动调整流表,按照预配置策略实现流量采集。
作为一种优选方案,监控虚拟化实例事件为虚拟化实例生命周期变化事件,包括新建虚拟机、开机、新增网卡事件,以及删除虚拟机、关机、删除网卡事件,对于新建虚拟机、开机、新增网卡事件根据监控策略下发流表,对于删除虚拟机、关机、删除网卡事件根据监控策略删除流表。
自动监控虚拟化实例事件,在云计算环境发生虚拟化实例增删、开关机、网卡增减事件时,自动下发或删除流表,根据策略动态采集所需实例的网络流量。
作为一种优选方案,对于新建虚拟机、开机、新增网卡事件,分析虚拟化实例关联配置的流量监控粒度策略,若按虚拟交换机粒度进行流量监控,对虚拟化实例关联虚拟交换机下发虚拟交换机粒度镜像流表,若按端口粒度进行流量监控,在虚拟化实例端口所在虚拟交换机上基于指定端口下发端口镜像流表。
本方案中在检测到新建虚拟机、开机、新增网卡事件时,判断该虚拟化实例关联的配置是否为按虚拟交换机粒度进行监控,若是再判断虚拟化实例所在虚拟交换机是否按照按虚拟交换机粒度进行流量监控的策略下发过流表,对于已下发过流表,继续监控对应虚拟化实例流量,对于未下发过流表,虚拟化实例agent节点调用计算节点接口对该虚拟化实例关联的虚拟交换机下发虚拟交换机粒度镜像流表,然后本次监控事件处理结束。若否,说明发生事件的虚拟化实例关联的配置为按端口粒度进行流量监控,则在虚拟化实例端口所在虚拟交换机上基于指定端口下发端口镜像流表,然后本次监控事件处理结束。
作为一种优选方案,对于删除虚拟机、关机、删除网卡事件,分析虚拟化实例关联配置的流量监控粒度策略,若按虚拟交换机粒度进行流量监控,在虚拟化实例为关联虚拟交换机最后一个虚拟化实例情况下删除关联虚拟交换机镜像流表,结束监听该虚拟交换机的流量,若按端口粒度进行流量监控,在虚拟化实例端口所在虚拟交换机上删除指定端口镜像流表。
本方案中在检测到删除虚拟机、关机、删除网卡事件时,判断该虚拟化实例关联的配置是否为按虚拟交换机粒度进行监控,若是再判断该虚拟化实例所在虚拟交换机是否还存在其他虚拟化实例,否说明发生事件的虚拟化实例为此虚拟交换机上最后一个虚拟化实例,直接删除虚拟交换机的所有镜像流表,不再监控此虚拟交换机上的流量,本次监控事件处理结束;是说明还有其他虚拟化实例存在,本次检测到事件不做处理,并且本次监控事件处理结束;若否,说明发生事件的虚拟化实例关联的配置为按端口粒度进行流量监控,则在虚拟化实例端口所在虚拟交换机上删除指定端口镜像流表,本次监控事件处理结束。
一种基于云化环境的网络流量采集系统,包括在计算节点设置的若干虚拟交换机、镜像虚拟交换机和虚拟化实例agent节点,
虚拟交换机,通过虚拟端口连接多个虚拟化实例,通过patch口与镜像虚拟交换机连接,监控虚拟交换机所有流量或指定端口流量,将虚拟交换机所有流量或指定端口流量镜像到镜像虚拟交换机;
镜像虚拟交换机,通过虚拟端口连接虚拟化实例agent节点,将接收的流量引流到虚拟化实例agent节点;
虚拟化实例agent节点,解析监控策略配置,在虚拟交换机和镜像虚拟交换机上下发流表,实时监控虚拟化实例事件,在事件发生变化时,根据监控策略对虚拟交换机流表进行调整,动态采集所需虚拟化实例流量。监控策略配置为用户根据需求提前配置的监控策略,如是否开启流量监控、监控范围(计算节点指定虚拟化实例、端口或指定虚拟交换机所有流量等)、流量监控周期、生成流量文件包大小、流量文件传输目的端信息(如数据安全监控平台IP、端口)等信息,虚拟化实例agent节点解析配置文件。
因此,本发明的优点是:
1.通过软件方式实现流量监控,可以在接入层就截获原始流量,在云化环境NAT、隧道等报文改装环节前就采集到虚拟化实例流量,有利于安全事件判断的准确性。
2.对监控实例没有浸入式修改,无需在监控虚拟化实例上部署软件,对监控节点没有系统、软件依赖等要求,针对x86、arm、linux、windows、mac等环境均可实现流量采集,在虚拟节点个数较多、形态复杂的环境具备推广性,可扩展性强。
3.通过部署虚拟化实例agent节点完成物理节点所有虚拟化实例的流量采集,占用计算资源和网络传输资源均达到最优。
4.自动监控虚拟化实例事件,支持多网卡环境的流量收集,云计算环境发生事件变化时,可实现自动更新配置,根据策略动态采集到所需实例的网络流量。
附图说明
图1是本发明系统的一种结构示意图;
图2是本发明方法的一种流程示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
本实施例一种基于云化环境的网络流量采集方法,通过在计算节点创建镜像虚拟交换机和虚拟化实例agent节点,如图1所示,在存在被监控虚拟化实例的虚拟交换机上创建patch口,和在镜像虚拟交换机上创建对应的patch口,将镜像虚拟交换机与虚拟交换机互联,虚拟化实例agent节点与镜像虚拟交换机互联。
虚拟化实例agent节点解析监控策略配置,在虚拟交换机下发流表,将虚拟交换机指定端口流量或整个虚拟交换机流量镜像给镜像虚拟交换机,在镜像虚拟交换机下发流表,将patch口接收的流量转发给虚拟化实例agent节点相连的虚拟端口,引流到虚拟化实例agent节点,虚拟化实例agent节点部署软件程序,对虚拟端口进行抓包,获得的流量转换成报文文件,通过定时任务周期性发送给数据安全监控平台。虚拟化实例agent节点实时监控虚拟化实例事件,在事件发生变化时,根据监控策略对虚拟交换机流表进行调整,动态采集所需虚拟化实例流量。通过软件方式实现流量监控,可以在接入层就截获原始流量,在云化环境NAT、隧道等报文改装环节前就采集到虚拟化实例流量,有利于安全事件判断的准确性。无需在监控虚拟化实例上部署软件,对监控虚拟化实例没有浸入式修改,并且对监控节点没有系统、软件依赖等要求,针对x86、arm、linux、windows、mac等环境均可实现流量采集,在虚拟节点个数较多、形态复杂的环境具备推广性,可扩展性强。通过部署虚拟化实例agent节点完成物理节点所有虚拟化实例的流量采集,虚拟化实例agent节点占用计算资源和网络传输资源少,减小开销。
本方法包括对虚拟实例流量弹缩事件自动监测,具体的监控虚拟化实例生命周期变化事件,包括虚拟机新建、开机、新增网卡事件,以及虚拟机删除、关机、删除网卡事件。对于虚拟机新建、开机、新增网卡事件根据监控策略下发流表,下发流表具体包括分析虚拟化实例关联配置的流量监控粒度策略,若按虚拟交换机粒度进行流量监控,对虚拟化实例关联虚拟交换机下发虚拟交换机粒度镜像流表,若按端口粒度进行流量监控,在虚拟化实例端口所在虚拟交换机上基于指定端口下发端口镜像流表。对于虚拟机删除、关机、删除网卡事件根据监控策略删除流表,删除流表具体包括分析虚拟化实例关联配置的流量监控粒度策略,若按虚拟交换机粒度进行流量监控,在虚拟化实例为关联虚拟交换机最后一个虚拟化实例情况下删除关联虚拟交换机镜像流表,结束监听该虚拟交换机的流量,若按端口粒度进行流量监控,在虚拟化实例端口所在虚拟交换机上删除指定端口镜像流表。
下面以实例对本方法进行详细说明,如图1中所示,假设如下虚拟化实例的流量需被采集:虚拟化实例1,虚拟交换机2上的所有虚拟化实例,即虚拟化实例3和虚拟化实例4,其中虚拟化实例3具有多张网卡,不同的网络连接到不同的虚拟交换机。假设虚拟交换机1为管理网,要求只监控指定虚拟化实例管理网流量,对应图1中为vport1和vport3。虚拟交换机2为存储网,要监控所有虚拟化实例存储网流量。方法具体实施为:
创建镜像虚拟交换机和虚拟化实例agent节点,创建patch口对,将虚拟交换机1、虚拟交换机2分别与镜像虚拟交换机相连,创建vport端口对,将镜像虚拟交换机与虚拟化实例agent节点相连。
在虚拟交换机1下发流表,将vport1、vport3的流量镜像到patch1口,在虚拟交换机2下发流表,将所有vport的流量镜像到patch2口。
在镜像虚拟交换机下发流表,将patch1’和patch2’口的流量直接转发到vportx端口,引流到虚拟化实例agent节点。
虚拟化实例agent节点部署软件程序,将收到流量转换成报文文件,按照管理策略发送给数据安全监控平台。
如图2所示,结合对虚拟实例流量弹缩事件自动监测,对本实施例方法执行过程进行具体说明。首先创建虚拟化实例agent节点,由虚拟化实例agent节点与计算节点进行交互,方法流程在虚拟化实例agent节点上运行。方法包括以下步骤:
S1.虚拟化实例agent节点正常启动运行。
S2.解析监控策略配置。用户根据需求提前配置的监控策略,如是否开启流量监控、监控范围(计算节点指定虚拟化实例、端口或指定虚拟交换机所有流量等)、流量监控周期、生成流量文件包大小、流量文件传输目的端信息(如数据安全监控平台IP、端口)等信息。
S3.判断当前配置是否使能流量监控功能,若否结束,若是进入下一步骤。
S4.虚拟化实例agent节点调用计算节点接口,通知计算节点进行创建镜像虚拟交换机;
创建vportx端口对,将虚拟化实例agent节点与镜像虚拟交换机互联,创建patch口对,将被监测的虚拟交换机与镜像虚拟交换机互联;
根据解析得到的配置,在相关虚拟交换机和镜像虚拟交换机上下发缺省流表,仍然以图1中的结构为例进行说明,具体包括:
(1)监控虚拟交换机2所有流量,在虚拟交换机2下发流表,将虚拟交换机2所有vport的进出流量镜像到patch2口,通过patch2’口传递到镜像虚拟交换机上。
(2)监控虚拟交换机1上指定端口流量,在虚拟交换机1上下发端口镜像流表,将vport1、vport3端口的流量镜像到patch1口,通过patch1’口传递到镜像虚拟交换机上。
(3)在镜像虚拟交换机上下发流表,所有端口的流量都转发至vportx端口,引流到虚拟化实例agent节点上。
S5.监控虚拟化实例生命周期事件;
虚拟化实例agent节点调用计算节点接口或注册接口,实时监控计算节点虚拟化实例生命周期变化事件,包括虚拟化实例新增、重启、暂停、删除,以及其端口的新增、删除等事件。
S6.如果监控到虚拟化实例事件发生,根据配置文件判断发生变化的虚拟化实例是否为被监控的虚拟化实例,若否返回步骤S5,若是进入下一步骤。
S7.判断该事件是否为新增虚拟机、虚拟机开机、虚拟机新增网卡事件,若是进入步骤S8,若否进入步骤S11。
S8.判断该虚拟化实例关联的配置是否为“按虚拟交换机粒度进行流量监控”,若是进入步骤S9,若否,说明发生事件的虚拟化实例关联的配置为“按端口粒度进行流量监控”,则在虚拟化实例端口所在虚拟交换机上下发端口镜像流表,进入步骤S16。
S9.判断该虚拟化实例所在的虚拟交换机是否已经按照“按虚拟交换机粒度进行流量监控”策略下发过流表,若否进入步骤S10,若是,说明虚拟交换机粒度镜像流表已存在,可监控对应虚拟化实例的流量,进入步骤S16。
S10.对应虚拟交换机还未下发过虚拟交换机粒度镜像流表,则虚拟化实例agent节点调用计算节点接口对该虚拟化实例关联的虚拟交换机下发虚拟交换机粒度镜像流表,进入步骤S16。
S11.判断该事件是否为删除虚拟机、虚拟机关机、虚拟机删除网卡事件,若是进入S12,若否进入步骤S15。
S12.判断该虚拟化实例关联的配置是否为“按虚拟交换机粒度进行流量监控”,若是进入步骤S13,若否,说明发生事件的虚拟实例关联的配置为“按端口粒度进行流量监控”,则在虚拟化实例端口所在虚拟交换机上删除指定端口镜像流表,进入步骤S16。
S13.判断该虚拟化实例所在的虚拟交换机是否还存在其他虚拟化实例,若否进入步骤S14,若是,说明虚拟交换机还有其他虚拟化实例存在,本次事件不做处理,进入步骤S16。
S14.发生事件的虚拟化实例为此虚拟交换机上最后一个虚拟化实例,可直接删除虚拟交换机的所有镜像流表,不再监控此虚拟交换机上的流量,进入步骤S16。
S15.虚拟化实例发生的事件与网卡无关,不做处理,返回步骤S5,等待下一次事件发生。
S16.本次监控事件处理结束,返回步骤S5,等待下一次事件发生。
本实施例还提供一种基于云化环境的网络流量采集系统,如图1所示,包括在计算节点设置的若干虚拟交换机、镜像虚拟交换机和虚拟化实例agent节点。
虚拟交换机,通过虚拟端口连接多个虚拟化实例,通过patch口与镜像虚拟交换机连接,监控虚拟交换机所有流量或指定端口流量,将虚拟交换机所有流量或指定端口流量镜像到镜像虚拟交换机;
镜像虚拟交换机,通过虚拟端口连接虚拟化实例agent节点,将接收的流量引流到虚拟化实例agent节点;
虚拟化实例agent节点,解析监控策略配置,在虚拟交换机和镜像虚拟交换机上下发流表,实时监控虚拟化实例事件,在事件发生变化时,根据监控策略对虚拟交换机流表进行调整,动态采集所需虚拟化实例流量。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
- 用于在无线通信系统中支持补充上行链路频率的方法和装置
- 用于基于信道状态指示符-基准信号的波束管理的装置和方法
- 用于在无线通信系统中发射和接收下行链路控制信息的方法和设备
- 传输信道状态信息的方法和装置
- 用于报告侧链路通信的信道状态信息的方法和装置
- 用于报告侧链路通信的信道状态信息的方法和装置