本发明涉及软件技术,具体为一种虚拟网络流量镜像方法及系统。
背景技术:
1、网络流量镜像可以为网络运维排障,安全分析,溯源取证等提供最详实的数据,几乎是每一个iaas平台或者网络转发设备所必须具备的能力。伴随着虚拟化技术的应用,如kvm技术、容器技术等,云计算环境下网络流量越来越多地被限制在主机(服务器)内。这导致传统的基于物理设备/链路的流量镜像技术不再能采集到的这些流量,造成“信息黑洞”的产生。
2、针对现有技术的不足,本发明提供了一种虚拟网络流量镜像方法及系统,以解决上述问题。
技术实现思路
1、(一)解决的技术问题
2、针对现有技术的不足,本发明提供了一种虚拟网络流量镜像方法及系统,采集工具对原有转发路径的性能几乎没有影响,支持内核态ovs和ovs-dpdk下流量采集工具的原型系统框架,agent灵活,具有丰富的参数配置,可扩展性好,通过分类,筛选,压缩和预处理操作,包括数据包头的截断、压缩、封包等节省传送带宽,防止“信息黑洞”的产生。
3、(二)技术方案
4、为实现以上目的,本发明通过以下技术方案予以实现:一种虚拟网络流量镜像系统,包括远端控制器,所述远端控制器下发策略至专门的代理线程agent,通过专门的代理线程agent更新策略,采用三个步骤来实现远程的流量采集;
5、第一步:agent通过共享内存技术获取到存储在ovs数据包缓冲区中的数据包;
6、第二步:对获取到的数据包进行分类筛选,让符合监控策略的流量被留下,而其他无关流量数据包被丢弃;
7、第三步:对筛选后的数据包进行压缩和预处理操作,最后通过网络转发到远端的远程分析器。
8、一种虚拟网络流量镜像方法,包括所述的虚拟网络流量镜像系统,其中:
9、采用共享内存的方式来减少数据包从内核空间到用户空间的拷贝;
10、通过mmap共享内存的方式将内核态的数据包被用户态的agent访问;
11、通过上述方法,实现在第一步数据包的捕获中,用户态的agent拥有访问内核空间数据包缓冲区的能力,且agent实现高效地访问处于内核空间的数据包,保证性能。
12、优选的,在nic将数据包存入内核空间的缓冲区后,采用通用接口,通过mmap使用零拷贝的环形缓冲区将数据包从内核空间拉到用户空间,bpf根据网络接口索引进行轻量级预过滤从而减少本地环路冗余报文。
13、优选的,在第二步中,对获取到的数据包进行分类筛选,分类筛选过程中采用高性能的分类算法,根据具体的业务和用例来优化分类算法。
14、优选的,在第三步中,根据agent配置的规则采取截取数据包头的操作,以及时间戳信息,在完成这些预处理以后,采用高效的压缩算法,对采集到的数据包信息进行压缩和封包,降低对网络带宽的影响。
15、优选的,在ovs-dpdk中,数据包存放在dpdk管理的用户态大页面内存中,利用dpdk的多进程的编程模型来高效实现数据采集,即ovs-dpdk为第一进程,分配并管理网络buffer所在的大页面,agent以第二进程启动并直接映射大页面到自己进程地址空间。
16、优选的,ovs-dpdk和agent两个进程之间还需要通过无锁队列进行高效同步,后续的agent的流量筛选、压缩和传输与第一步中内核态ovs采集方案一致。
17、优选的,采集工具以独立的进程形式存在,同时能够满足性能和能耗需要。
18、优选的,所述高性能的分类算法是tss。
19、优选的,所述高效的压缩算法是huffman编码。
20、本发明公开了一种虚拟网络流量镜像方法及系统,其具备的有益效果如下:
21、1、该虚拟网络流量镜像方法及系统,采集工具对原有转发路径的性能几乎没有影响,支持内核态ovs和ovs-dpdk下流量采集工具的原型系统框架,agent灵活,具有丰富的参数配置,可扩展性好,通过分类,筛选,压缩和预处理操作,包括数据包头的截断、压缩、封包等节省传送带宽,防止“信息黑洞”的产生。
22、2、该虚拟网络流量镜像方法及系统,采用共享内存的方式来减少数据包从内核空间到用户空间的拷贝,通过mmap共享内存的方式将内核态的数据包被用户态的agent访问,通过上述方法,实现在数据包的捕获中,用户态的agent拥有访问内核空间数据包缓冲区的能力,且agent实现高效地访问处于内核空间的数据包,保证性能。
23、3、该虚拟网络流量镜像方法及系统,在nic将数据包存入内核空间的缓冲区后,采用通用接口,通过mmap使用零拷贝的环形缓冲区将数据包从内核空间拉到用户空间,bpf根据网络接口索引进行轻量级预过滤从而减少本地环路冗余报文。
1.一种虚拟网络流量镜像系统,包括远端控制器,其特征在于:所述远端控制器下发策略至专门的代理线程agent,通过专门的代理线程agent更新策略,采用三个步骤来实现远程的流量采集;
2.一种虚拟网络流量镜像方法,其特征在于:包括如权利要求1所述的虚拟网络流量镜像系统,其中:
3.根据权利要求2所述的一种虚拟网络流量镜像方法,其特征在于:在nic将数据包存入内核空间的缓冲区后,采用通用接口,通过mmap使用零拷贝的环形缓冲区将数据包从内核空间拉到用户空间,bpf根据网络接口索引进行轻量级预过滤从而减少本地环路冗余报文。
4.根据权利要求2所述的一种虚拟网络流量镜像方法,其特征在于:在第二步中,对获取到的数据包进行分类筛选,分类筛选过程中采用高性能的分类算法,根据业务和用例来优化分类算法。
5.根据权利要求2所述的一种虚拟网络流量镜像方法,其特征在于:在第三步中,根据agent配置的规则采取截取数据包头的操作,以及时间戳信息,在完成这些预处理以后,采用高效的压缩算法,对采集到的数据包信息进行压缩和封包,降低对网络带宽的影响。
6.根据权利要求2所述的一种虚拟网络流量镜像方法,其特征在于:在ovs-dpdk中,数据包存放在dpdk管理的用户态大页面内存中,利用dpdk的多进程的编程模型来高效实现数据采集,即ovs-dpdk为第一进程,分配并管理网络buffer所在的大页面,agent以第二进程启动并直接映射大页面到自己进程地址空间。
7.根据权利要求6所述的一种虚拟网络流量镜像方法,其特征在于:ovs-dpdk和agent两个进程之间通过无锁队列进行高效同步,后续的agent的流量筛选、压缩和传输与第一步中内核态ovs采集方案一致。
8.根据权利要求7所述的一种虚拟网络流量镜像方法,其特征在于:采集工具以独立的进程形式存在,同时能够满足性能和能耗需要。
9.根据权利要求4所述的一种虚拟网络流量镜像方法,其特征在于:所述高性能的分类算法是tss。
10.根据权利要求5所述的一种虚拟网络流量镜像方法,其特征在于:所述高效的压缩算法是huffman编码。