查看原文
其他

争议 | 虚拟化环境的网络流量镜像,这三种实现方式哪个最佳?

twt社区 twt企业IT社区 2022-07-03

以下内容来自社区探讨,欢迎点击阅读原文到社区与同行交流本话题


如何规划建设虚拟化环境的网络流量镜像?

目前,公司正在建设基于网络流量镜像的相关系统,如npm、bpc、数据库sql语句审计等。并已初步搭建了type交换机网络。
但虚拟化平台中,部分虚拟机的网络流量可能在物理机内部的虚拟交换机中完成交互,无法从物理交换机上获取流量镜像。
我们了解到了虚拟化环境的网络流量镜像的以下三种方式:
1、使用VMware VDS分布式交换机的端口镜像功能
2、在每台宿主机上安装第三方的虚拟机,用于收集这台宿主机内部的虚拟机网络流量
3、在需要镜像流量镜像的虚拟机上安装第三方agent,收集自身的网络流量
三种方式都将通过区别业务网卡的单独网卡将镜像流量传送至type网络。
本人目前倾向于选择第一种方案,但是对于VMware的端口镜像功能是否会影响宿主机的整体性能存在担忧。
想向各位金融行业的前辈们请教下三种方案的优劣,大家都是使用哪种方式来实现的?实施过程中有没有踩过什么坑?

(@linjh 某证券 系统工程师)


@赵海 技术经理:

首先,如果是物理交换机的话,一般都会采用专门的端口镜像设备把交换机上的流量进行镜像,然后用专门的软件基于镜像流量进行分析。这个是比较通用和成熟的做法,具体产品有很多。

那么,在虚拟化环境当中,第一种方案与物理环境的方案基本思路完全一致,从这个角度来看,其成熟度和稳定性是不需要担心的,至于说性能,只要将网卡的配置和流量的分析做好,不会出现大的性能问题。因为它并非实时扫描业务数据包的原理,而是对镜像流量包做处理的思路,唯一的区别是硬件资源并没有完全独立。镜像本身靠虚拟交换机本身的机制完成,物理交换机能把这个事情做好,虚拟交换机也不会有太大问题。


@李荣杰 招商银行 网络工程师:

我个人觉得三种方案需要的考虑点如下:

1、依赖于VDS本身提供的接口和功能,由于没实际用过,可能不全。

2、宿主机上安装会对宿主机本身增加一些开销,另外需要能适配到用的虚拟化技术,获取到虚机流量。另一方面,宿主机宕机后,上面的虚机是否还能采集到,需要提前考虑方案。

3、虚机本身安装会对虚机造成较大的工作量, 建议集成到镜像里,减少系统同事的工作量。本身agent的资源消耗需要评估。


@黄江 某银行 技术支持:

我行采用的是第二种方案

虚拟化流量采集方案部署由三部分组成,包括FM集中管理平台、VM虚拟化采集探针和流量处理引擎。

链路通讯部署上有两个组成部分,包括管理层面的链路通讯, Tunneling 链路通讯。

管理层面的链路通讯:用于 FM 对 VM 的安装、配置下发。

Tunneling 链路通讯:用于 VM 采集虚拟机流量通过 Tunneling 封装转发到 HC上。

安装简单,控制方便,需要使用IP地址。

目前来说,对服务器性能影响很小。


@张鹏 中国金融电子化公司 数备中心技术总监

没有具体实践过,所以只能单纯谈谈想法。

通过问题的描述,如果三种方式都能达到用户的需求,三者比较起来我更倾向于第三种方案。原因在于只针对需要收集流量的虚机进行流量收集,这样针对性更强,减少无关信息的干扰并且减少无关流量收集时带来的整体压力。

第一种方案我觉得要谨慎使用,VDS虽然模拟了大部分交换机的工作,但是和传统交换机还是有区别。流量镜像这种事情最要用专用的设备,例如TAP 分流设备。SDN解决方案中也有类似的vTAP解决方案。


@yjy031 数据中心 网络工程师:

这个问题对于我们也是问题。谈谈自己一些看法哈。首先VMware目前也不是虚拟化唯一选择,感觉只用这个未来有一定的局限性。第二和第三也都有厂商解决方案,他们反馈都有相应的流控机制,理论上不会对业务有影响,资源不是那么紧张的情况下开销应该还好。

目前这个问题我们也没有解决,所以我们尽量让访问流量跨交换机,通过交换机镜像流量,对于单台宿主机内的流量网络交换机确实没法镜像,此类只能用第三方专门的解决方案,个人比较倾向后两种,建议购买市场成熟产品,经过其他单位检验过的应该相对靠谱。

@chinesezzqiang 信息技术经理 :

建议采用第一个方案,原因:

1.虚拟化的流量镜像对物理主机性能的消耗非常少;
2.建议虚拟化环境具备独立的镜像网络;
3.需要实际测试,此方案使用的不多;
4.可以参考一下第三方的流量性能监控设备。

@潘延晟  系统工程师 :

工作中并没有实际接触到需要全部镜像虚拟机网络流量用来监控的情况。不过有过虚拟机因为中毒发包,导致整个物理机端口堵塞,无法管理,整个物理机上所有的虚机全部瘫痪的情况。结合这个需求和以前跟VMware做过的一些技术交流,说说一些自己的看法吧。

在每台宿主上安装第三方的虚拟机用来收集宿主内部的虚机网络流量,在资源上浪费的有些多。每个宿主都要安装调试一套收集系统,不仅要分配出一定的资源来运行第三方的虚机,如果宿主多了。整个系统的管理也会有些麻烦。
在每个虚拟机上安装第三方Agent的方式,相比第二种方式,应该要好一些。因为没有使用过,只能根据其他类似部署方式的软件来参考。第三方Agent,一般来说对系统的资源消耗都比较少,相对稳定。一次部署后就可以统一收集信息,在成本和管理上都算是不错的选择。只是第三方Agent有时候会因为个别虚机系统本身的问题产生一些服务无法启动,或者部分系统没有响应的Agent,或者被部分安全软件限制等问题。
第一种方式,我记得VMware有个网络虚拟化的功能NSX。是收费的,可以实现很详细的虚机网络的管理与安全防护,能够避免我们当时遇到的那种因为一台虚机网络发包,塞死了物理端口导致所有虚机全都无法工作。只能重启整个物理机去处理的情况。应该也可以实现更详细的端口镜像的功能。优点我觉得应该是VMware的原生产品,从兼容性、成熟度上都会比较好,缺点就是部署复杂,而且费用相对比较高。不过我还是倾向采用这种方式。如果资金和技术资源都比较紧张,那采用第三方Agent的方式我觉得也不错。可以根据不同重要程度的虚机进行镜像,对于重要业务安装Agent。一些辅助业务、测试业务则只通过物理交换机镜像一个物理接口,抓取数据就行了。
欢迎点击文末阅读原文到社区讨论交流
觉得本文有用,请转发或点击“在看”,让更多同行看到


 相关推荐:


欢迎关注社区 “网络”技术主题 ,将会不断更新优质资料、文章。地址:

http://www.talkwithtrend.com/Topic/785


下载 twt 社区客户端 APP

与更多同行在一起

高手随时解答你的疑难问题

轻松订阅各领域技术主题

浏览下载最新文章资料


长按识别二维码即可下载

或到应用商店搜索“twt”


长按二维码关注公众号

*本公众号所发布内容仅代表作者观点,不代表社区立场

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存