【IT168 评论】网络团队的日常工作往往面临着无数关于配置请求的狂轰滥炸,这些任务经常需要几天甚至几周才能搞定;不过幸运的是,目前已经有多种方案逐步崛起、承诺为我们带来更为出色的网络敏捷特性。纵观各类方案,其中的佼佼者共有三位,分别是网络虚拟化(简称NV)、网络功能虚拟化(简称NFV)以及软件定义网络(简称SDN)。
单单凭简称,大家肯定看得一头雾水、颇有“安能辨雄雌”之感,但实际上这几类方案尝试解决的是网络移动性领域中的不同问题子集。在今天的文章中,我们将探讨网络虚拟化、网络功能虚拟化以及软件定义网络三者的区别,并了解它们如何帮助大家在可编程网络的道路上走得更远。
网络虚拟化
企业网络管理员没办法跟上与网络变更相关的无数请求。为了应对难题,他们需要通过自动化方式打理网络事务,从而改善IT部门对于各类变更的响应效果。在这种情况下,我们需要解决的主要任务是:我该如何在不同的逻辑域之间进行虚拟机迁移?网络虚拟化的主旨正是在流层面对网络进行逻辑划分(类似于对硬盘进行分区),从而为现有网络创建逻辑区划。
网络虚拟化是一种覆盖结构,运作机制如同通道。比起网络中两个域之间的物理连接通路,网络虚拟化会利用现有网络在两个域之间架设新的连通方式。网络虚拟化在价值在于帮助管理员免于为每一个新接入的域连接布设物理连线,特别是那些刚刚创建完成的虚拟机系统。这样处理的优势在于,管理员不必对已经完成的工作成果进行频繁变更。在网络虚拟化方案的帮助下,他们能够以全新方式实现基础设施虚拟化并对现有基础设施进行调整。
网络虚拟化方案运行在高性能x86平台之上。其目标在于允许使用者将虚拟机以独立于现有基础设施之外的方式进行迁移,同时不必对网络进行重新配置。Nicera公司(已经被Vmware收购)就是一家专门销售网络虚拟化设备的企业。网络虚拟化适用于任何一位已经选择了虚拟机技术的用户。
网络功能虚拟化
如果说网络虚拟化为我们带来了通过网络创建通道、同时利用每一条传输流进行服务的思路,那么下一步就是在让这条新通道承载相应服务。网络功能虚拟化旨在对四到七层功能进行虚拟化处理,其中包括防火墙、IDPS甚至负载平衡机制(应用程序交付控制器)。
既然管理员能够轻松通过指向与点击完成虚拟机配置,为什么不能以同样的方式启动防火墙或者IDS/IPS方案呢?而这正是网络功能虚拟化机制的意义所在。网络功能虚拟化利用非常好的实践方式作为基础策略,针对不同网络元素加以配置。如果大家已经依靠网络虚拟化建立起一条贯通整套基础设施的特殊通道,则完全可以将防火墙或者IDS/IPS添加进去。目前人气较高的此类防火墙及IDS/IPS系统供应商包括PLUMgrid以及Embrane等公司。
网络功能虚拟化运行在高性能x86平台上,它使用户得以在网络上选定的通道中启用功能。此举的目的在于帮助人们为虚拟机或者传输流创建一套服务配置方案,并利用x86设备的强大性能在网络(也就是逻辑通道)上建立起抽象结构,最终在特定逻辑环境下构建起虚拟服务。只要这一切部署到位,网络功能虚拟化能够为我们节省下大量的手动配置与技术培训时耗。
网络功能虚拟化也能有效减少配置浪费情况:比起直接购买足以应对整套网络环境的大型防火墙或者IDS/IPS设备,现在客户完全可以只为需要这部分功能的网络通道进行有针对性的采购。这一方面能够节约下大量前期成本投入,同时也能带来切实可见的运作收益。我们可以把网络功能虚拟化看作是一种平行于Vmware产品的方案,其中包含数台运行着大量虚拟服务器的设备,整套系统可以通过简单的指向与点击进行配置。
说到这里,很多朋友应该已经明确了网络虚拟化与网络功能虚拟化之间的区别;不过大多数用户都不希望分别从两家供应商手中分别购买这两种产品。有鉴于此,Vmware目前在其Vmware NSX当中提供网络虚拟化与网络功能虚拟化安全功能。
软件定义网络
软件定义网络利用封闭式流程实现网络配置。举例来说,与原先利用设备建立网络连接不同,现在用户可以借助这项技术对网络进行编程、从而构建新的连接方式。
软件定义网络将控制平台(旨在指挥网络传输走向)与数据平台(旨在将数据包发送至特定目的地)区分开来,从而达到网络可编程化转变的目的。要实现这样的效果,交换机本身必须具备可编程特性,软件定义网络控制器也需要采用业界标准控制协议——例如OpenFlow。
总体而言,网络虚拟化与网络功能虚拟化负责在物理网络基础上建立虚拟通道并添加虚拟功能,而软件定义网络则用于调整物理网络——因此后者对于网络体系的配置及管理来说属于真正的全新外部手段。举例来说,我们可以将颇具规模的“大型传输流”由1G端口迁移至10G端口,或者将大量“小型传输流”汇聚在同一个1G端口处。软件定义网络依靠网络交换机作为实现载体,而不像前两者那样借助x86服务器的参与。BigSwitch与Pica8是软件定义网络产品领域的代表性供应商。
这三类技术方案的设计目的都是为了实现网络环境的移动性与敏捷性。我们需要对网络体系进行编程的途径,而实现该目的的手段共有三种,也就是网络虚拟化、网络功能虚拟化以及软件定义网络。
网络虚拟化与网络功能虚拟化能够直接作用于现有网络,因为它们的运行基础是服务器以及与之相交互的“经过处理”的流量;软件定义网络则要求采用全新的网络结构,其中数据与控制平台必须加以划分。