当前位置:首页 > 问答 > 正文

网络虚拟化到底带来了啥好处,又有哪些让人头疼的问题呢?

网络虚拟化,就是把原来那些看得见摸得着的硬件网络设备,比如交换机、路由器,用软件的方式给“变”出来,它带来的好处是实实在在的,但伴随的问题也确实让人头疼。

先说好处,这确实是革命性的。

也是最核心的一点,就是网络变得极其灵活和快速,在过去,如果你想给一个新上线的应用搭建一套独立的网络环境,可能需要好几天甚至几周的时间,为啥?因为你得去机房,拉网线,配置一台台实体的交换机路由器,整个过程又慢又容易出错,现在呢?网络虚拟化之后,这一切都可以通过软件界面点点鼠标来完成,可能几分钟就能创建出一个逻辑上完全隔离的专用网络,这对于现在频繁更新、快速上线业务的互联网公司来说,简直是救命稻草,就像云计算让你随时能变出一台虚拟服务器一样,网络虚拟化让你随时能变出一张虚拟网络。

网络虚拟化到底带来了啥好处,又有哪些让人头疼的问题呢?

它大大降低了成本和提高了资源利用率,以前每个应用或者每个部门可能都需要自己独立的物理网络设备,这些设备可能大部分时间都处于空闲状态,利用率很低,但你又不得不买,因为要保证隔离性和性能,网络虚拟化允许你在同一套物理的网络硬件上,同时跑很多张相互隔离的虚拟网络,就像在一台物理服务器上运行很多台虚拟机一样,这样一来,硬件设备的数量可以减少,电费、机房空间、维护人力都能省下一大笔钱。

第三,它让网络管理和运维自动化成为可能,传统网络配置主要靠工程师手动敲命令行,不仅慢,而且一旦网络规模大了,很容易出现配置不一致或者错误,导致网络故障,虚拟化网络的管理通常有一个集中的控制中心,很多复杂的网络策略(比如安全策略、流量引导策略)可以通过图形化界面或者API来统一定义和下发,这意味着,你可以编写程序脚本来自动完成网络的部署、变更和修复,让网络运维变得更智能、更可靠。

第四,它增强了安全性,虚拟化网络可以轻松实现非常精细的微隔离,举个例子,在一个数据中心里,你可以通过策略设置,让Web服务器只能跟特定的应用服务器通话,而应用服务器只能跟数据库服务器通话,其他任何不相关的访问都会被直接拒绝,这种细粒度的控制,在传统物理网络中很难低成本地实现,它能有效限制攻击者在入侵一台服务器后的横向移动,把损失控制在最小范围。

网络虚拟化到底带来了啥好处,又有哪些让人头疼的问题呢?

别高兴得太早,问题也同样明显。

第一个大问题就是排查故障变得异常困难,传统网络出了问题,你至少还能去机房看看设备指示灯是不是在闪,端口是不是松了,但在虚拟化网络里,所有的网络路径、交换转发都是在软件层面完成的,是“看不见摸不着”的,当出现网络延迟大或者丢包的问题时,你很难快速定位问题到底出在哪里:是底层的物理网络?是某台服务器的虚拟交换机配置?还是上层某个安全策略给拦截了?这种复杂性对运维人员的技术水平提出了极高的要求。

第二个问题是性能损耗,虽然现在的硬件技术已经很大程度上通过智能网卡等技术减少了这种损耗,但虚拟化软件本身毕竟需要消耗服务器的CPU和内存资源来处理网络数据包,对于绝大多数普通应用来说,这点损耗可以忽略不计,但对于那些对网络延迟极其敏感的应用,比如高频交易、实时大数据处理等,这多出来的一点点延迟可能就是不可接受的,这就需要在性能和灵活性之间做一个权衡。

网络虚拟化到底带来了啥好处,又有哪些让人头疼的问题呢?

第三个挑战是新的安全风险,虚拟化网络引入了一个全新的攻击面——那个集中管理的控制中心,这个控制中心一旦被黑客攻破,就意味着攻击者可以掌控整个数据中心的虚拟网络,他可以随意修改网络策略,窃听流量,或者让整个网络瘫痪,这比攻击一台单独的物理设备要致命得多,保护这个控制中心的安全,就成了重中之重。

技术和人才的挑战,网络虚拟化技术融合了传统的网络知识和服务器虚拟化、软件编程等知识,它要求运维人员既要懂网络,又要懂系统,还要会一点自动化脚本,市场上这类复合型人才非常稀缺,培养成本也很高,很多企业可能部署了先进的网络虚拟化平台,但却没有合适的人才能把它用好、管好,反而造成了新的混乱。

网络虚拟化就像一把锋利的双刃剑,它用软件的灵活性彻底改变了我们构建和管理网络的方式,带来了前所未有的敏捷性、效率和成本优势,特别适合云时代的需求,但与此同时,它也带来了运维复杂性、性能顾虑和新的安全挑战。 adopting 这项技术,不仅仅是买一套软件那么简单,更需要企业在组织架构、人员技能和运维流程上做好充分的准备。

(参考资料:综合自CSDN专栏文章《网络虚拟化技术浅析》、知乎专栏《云原生网络漫谈》以及TechTarget中国站相关技术解析文章的核心观点)