网络团队经常要处理铺天盖地的配置请求,这些配置请求可能需要数天或数周来处理,所幸的是,现在有几种方法可以帮助企业提高网络灵活性,主要包括网络虚拟化[注](NV)、网络功能虚拟化[注](NFV[注])和软件定义网络[注](SDN[注])。
这三种方法可能听起来有些混淆,但其实每种方法都是在试图解决网络移动性这个宏观问题的不同子集问题。在这篇文章中,我们将探讨NV、NFV和SDN的区别以及每种方法如何帮助我们实现可编程网络。
网络虚拟化
企业网络管理员很难满足不断变化的网络需求。企业需要一种方法来自动化网络,以提高IT对变化的响应率。在这个用例中,我们通常试图解决一个问题:如何跨不同逻辑域移动虚拟机?网络虚拟化其实是通过在流量层面逻辑地划分网络,以在现有网络中创建逻辑网段,这类似于硬盘驱动器的分区。
网络虚拟化是一种覆盖;也是一个隧道。NV并不是物理地连接网络中的两个域,NV是通过现有网络创建一个隧道来连接两个域。NV很有价值,因为管理员不再需要物理地连接每个新的域连接,特别是对于创建的虚拟机。这一点很有用,因为管理员不需要改变他们已经实现的工作。他们得到了一种新方式来虚拟化其基础设施,以及对现有基础设施进行更改。
NV在高性能x86平台上运行。这里的目标是让企业能够独立于现有基础设施来移动虚拟机,而不需要重新配置网络。Nicira(现在属于VMware)是销售NV设备的供应商。NV适合于所有使用虚拟机技术的企业。
网络功能虚拟化
NV提供了创建网络隧道的功能,并采用每个流服务的思维,下一个步骤是将服务放在隧道中。NFV主要虚拟化4-7层网络功能,例如防火墙或IDPS,甚至还包括负载均衡(应用交付控制器)。
如果管理员可以通过简单的点击来设置虚拟机,为什么他们不能以相同的方式打开防火墙或IDS/IPS呢?这正是NFV可以实现的功能。NFV使用针对不同网络组件的最佳做法作为基础措施和配置。如果你有一个特定的隧道,你可以添加防火墙或IDS/IPS到这个隧道。这方面很受欢迎的是来自PLUMgrid或Embrane等公司的防火墙或IDS/IPS。
NFV在高性能x86平台上运行,它允许用户在网络中选定的隧道上开启功能。这里的目标是,让人们为虚拟机或流量创建服务配置文件,并利用x86来在网络上构建抽象层,然后在这个特定逻辑环境中构建虚拟服务。在部署后,NFV能够在配置和培训方面节省大量数据。
NFV还减少了过度配置的需要:客户不需要购买大型防火墙或IDSIPS产品来处理整个网络,客户可以为有需要的特定隧道购买功能。这样可以减少初始资本支出,但其实运营收益才是真正的优势。NFV可以被看作是相当于Vmware,几台服务器运行很多虚拟服务器,通过点击配置系统。
客户了解NV和NFV之间的区别,但他们可能不希望从两家不同的供应商来获得它们。这也是为什么Vmware现在在VmwareNSX提供NV和NFV安全功能的原因。
软件定义网络
SDN利用“罐装”流程来配置网络。例如,当用户想要创建tap时,他们能够对网络进行编程,而不是使用设备来构建网络tap。
SDN通过从数据平面(发送数据包到特定目的地)分离控制平面(告诉网络什么去到哪里)使网络具有可编程性。它依赖于交换机来完成这一工作,该交换机可以利用行业标准控制协议(例如OpenFlow)通过SDN控制器来编程。
NV和NFV添加虚拟通道和功能到物理网络,而SDN则改变物理网络,这确实是配置和管理网络的新的外部驱动手段。SDN的用例可能涉及将大流量从1G端口转移到10G端口,或者聚合大量小流量到一个1G端口。SDN被部署在网络交换机上,而不是x86服务器。BigSwitch和Pica8都有SDN相关的产品。
所有这三种类型的技术都旨在解决移动性和灵活性。我们需要找到一种方式来编程网络,而现在有不同的方法可以实现:NV、NFV和SDN。
NV和NFV可以在现有的网络中运作,因为它们在服务器运行,并与发送到它们的流量进行交互;而SDN则需要一种新的网络架构,从而分离数据平面和控制平面。