解读:OpenFlow的宣传攻势和软件定义网络
虽然OpenFlow网络在最近几个月一直是宣传的热点,甚至还在Las Vegas的Interop 2011上享受到明星般追捧,但它是一个协议概念——软件定义网络——有可能使虚拟化和云网络实现真正的变革。
在一个由软件定义的网络中,交换机和路由器采用了一些集中软件管理元素方式的某种形式。在OpenFlow的环境中,控制平台是从数据转发平台分离出来的。一个集中的控制器维护着网络的实时,整体的情况,将网络路径定义为“流”,并将这个数据流分发到各个交换机和路由器上。通过这些流,控制器可以协调所有网络设备间的数据传输,从而在虚拟环境和云网络中实现所需要的自动化和细致动态分配管理。
“OpenFlow是软件定义网络的一个示例,”Gartner Inc.的副总裁和著名分析师Mark Fabbi说道。“这个概念已经提出10多年了。如果您了解Juniper的QFabric,它也是软件定义网络的一个实例,因为它的网络核心中也有交换机和基于结构的功能。然后,这所有的设备都与一个控制器通信,而控制器会确定路径及其所使用的服务。”
这种方法与目前的分布式且不对等控制平台的网络形成了鲜明的对比。交换机和路由器都各自维护着一些路由表或MAC地址表,其中包括相关网络因素的数据,并且它们能够根据这些数据做出传输决定。这种方法在一定程度上很有效的。但是,由于虚拟化的出现,IT基础架构比过去变得更加动态,而网络需要适应这种情况。
OpenFlow和软件定义网络:整合OSI协议层
OpenFlow和软件定义网络的一个主要目标是:使网络更好地响应和适应其他IT基础架构。目前的网络是静态的。虽然它们关注于OSI模式的2层和3层协议,但是这种模式并不支持服务器虚拟化。
“之前,网络人们关心的总是关于数据包。这真的就是与数据包有关的吗?网络只考虑2层和3层协议,但是事实上所有的OSI协议层都必须更好地整合才能了解网络状况,”Forrester Research高级研究分析师Andre Kindness说道。
虚拟化已经使IT基础架构变得更加动态,因此网络必须响应这种改变。当服务器管理员将一台服务器上的虚拟机迁移到另外一台服务器时,网络必须能够自动地调整VLAN、QoS政策和ACL。
“目前,迁移一台虚拟机一般会花费2天的时间,这是因为它不是自动化的,”Kindness说道。“它可以在服务器中实现自动化,但是一旦涉及网络,如果需要修改网络,那么网络工程师必须在VM迁移之前先修改好这部分网络。”
基本上,网络与应用程序还是分离的,网络还仅限于管理数据包,Kindness说道。软件定义网络就是要“提高服务器和网络的效率,并尝试将它们整合在一起。它会观察各种类型硬件的工作负载,然后决定数据包的流向。它关注于整体效率,并尽可能以最佳方式利用资源,”他说道。
软件定义网络:如何实现?
OpenFlow并非是软件定义网络的唯一实现方式。Arista Networks与VMware一起合作创建了具备自己风格的软件定义网络,这种网络更善于响应虚拟化服务器基础架构的变化。通过向VMware开放它的交换固件,Arista的交换机可以自动适应新虚拟机的初始化或在基础架构中迁移虚拟机。
“我们一直在做致力于Open vSwitch与我们的交换OS整合到一起的内部开发,”Arista的市场副总裁Doug Gourlay说道。“我们所做的工作就是将诸如vSphere的设备变成网络控制器。当您使用vSphere时,它可以控制VLAN、QoS政策和ACL,所有这些操作都必定是在虚拟机中进行的。我们说服自己,对于我们的网络设备可以实现一些部分,我们将采用vSphere。当您在vCenter中创建一个虚拟机和当您需要迁移该虚拟机时,对于网络所需要做的一切,我们都可以通过一个在我们交换机和vSphere之间定义和规定的API自动实现。”
正如之前所提到的,Juniper的QFabric架构在某种程度上是一个软件定义网络,但是这个架构现在还未实现。Juniper已经发布了QFabric的数据转发设备,即QFX3500,但是类似于软件定义网络控制器的QF/Interconnect核心设备和管理装置QF/Director只有到今年年底才会发布。
虽然基于OpenFlow的产品市场正处于发展初期,但是OpenFlow架构的开放方式与Juniper的架构是截然相反的。使用QFabric来建立一个软件定义网络需要使用所有的QFabric产品。而使用OpenFlow建立一个软件定义网络,则只需要使用任意供应商的一个支持OpenFlow的OpenFlow控制器和交换机。
目前仍然没有任何主流网络供应商发布支持OpenFlow的交换机产品,虽然今年在Interop上许多供应商演示了这个技术。NEC Corp.是第一个发布这种产品的供应商。NEC是一个主要专注于日本本国市场的网络供应商,它已经与大学研究者合作一起进行了5年的OpenFlow支持研发。这项工作随着在Interop上发布NEC的可编程流(ProgrammableFlow)生产线而达到顶峰。该产品在展会中获得了Interop最佳产品称号。
NEC的可编程流(ProgrammableFlow)目前由2个主要产品组成。第一个是支持OpenFlow的交换机PF5240,它有48个Gigabit Ethernet (GbE)端口和4个10 GbE上行链路端口。第二个是可编程流控制器(ProgrammableFlow Controller PFC)—这是一个OpenFlow控制器软件,它可以为PF5240交换机和将来任何支持OpenFlow的第三方交换机确定转发路径。
有几个新兴的公司也正在秘密研发OpenFlow控制器,并与交换机供应商建立合作关系。其中包括Big Switch Networks和Nicira Networks。
OpenFlow架构是生成树的一种替代方法吗?
根据Big Switch Networks的共同创办人和市场销售部副总经理Kyle Forster的看法,基于OpenFlow的软件定义网络不仅仅能够适应虚拟化所带来的变化。通过将交换机和路由器的控制转移到一个集中控制器上,OpenFlow也支持高级多路径转发技术。这意味着,企业可以在OpenFlow控制器上定义多路径流,而不需要使用TRILL 或最短路径桥接协议(Shortest Path Bridging)来避免生成树协议带来的限制。由于控制器掌握完整的网络结构,因此它可以防止循环发生。
Forster 说道,OpenFlow控制器还还在网络上实现了可编程性。通过在控制器上开放API,第三方可以开发一些软件,这些软件使用OpenFlow控制器在网络上运行高级网络功能和服务。例如,有一些研究人员已经在OpenFlow控制器之上开发了负载均衡器。Forster表示,安全供应商可以开发虚拟分布式防火墙或入侵防御软件,它们通过在OpenFlow控制器上定义的流,而在每台交换机和路由器上施加安全政策。
Big Switch Networks正在开发一种软件,它允许网络工程师在他们的基础架构之上建立一个多租赁模式的软件,这特别适用于云计算环境。工程师可以使用Big Switch的控制器创建一个使用多个物理交换机端口的虚拟交换机,并将它作为一个服务于服务器和应用程序的固定网络呈现给系统管理员。
“我们的Interop演示展示了这个架构视图,您可以使用来自不同交换机的端口,比如一台交换的2个端口,另一台的5个端口,第三台的7个端口,并将所有端口整合到一台大型虚拟交换机上,”Forster说道。“管理员可以登录这个虚拟交换机,然后他们所看到的是一个具有14端口的交换机。但他们不知道这些端口是来自数据中心多个不同设备。一方面,管理员会感觉他们是拥有一个完整的物理交换机,但是事实上我们是把交换机放在不同的物理硬件上,并且隔离它们,这样如果管理员做了什么毁坏虚拟交换机的事,该虚拟机所依赖的硬件仍能够保持正常工作。”
Gartner's Fabbi说道,虽然OpenFlow有大好前景,但是在这些供应商开始发布和销售产品之前,这个协议实际上还只是一个“研究项目”。市场上已经好几年少有新产品出现了,更不用说完整的生态系统。目前,OpenFlow供应商正关注于云计算供应商,因为他们是最需要软件定义网络功能的。但是可扩展性仍然是一个问题。
和无线LAN架构中很重要的控制器一样,OpenFlow控制器可能会遇到瓶颈,因为交换机和路由器会将转发决定授权给一个运行在服务器上的控制器。
“老实说,我不认为这是可行的,”Arista's Gourlay说道。“Stanford的最大产品OpenFlow网络流量的设计速度是每秒500个流。我们必须在几秒钟内处理上百万个流的网络。我不确定它是否已经能够扩展到这个水平。”
然而,OpenFlow供应商都深知可扩展性问题的重要。Forster表示,BigSwitch正在为它的控制器开发集群技术。它不是在开发一个能够处理大型网络上所有流量的大型控制器。相反,它正在开发能够以协作方式管理网络的控制器。
OpenFlow控制器也将继续由交换机和路由器自己来决定转发路径。事实上,它们就应该负责这部分工作。Forster表示,在OpenFlow架构中的交换机不会是非智能设备。相反,它们必须更健壮且能够更好地运行大量OpenFlow规则,并支持其它OpenFlow应用程序。他指出了基于控制器的无线LAN架构的接入端可以如何变得更健壮的,从而支持诸如流氓软件检测和频段管理等应用程序。