OpenFlow基本上分离了网络设备的控制平面和数据平面,传统网络设备(例如交换机和路由器)会基于本地规则自己决定以太网数据包的传输方向。这些规则可能是手动配置的,也可能是通过路由协议来交付,但所有流量路径决定最终都是在设备本身之内作出。
通过OpenFlow,只有数据平面位于交换机本身内,所有控制和路径决定是从中央控制器来传送到设备。如果设备接收到没有路径或者流量信息的数据包,它会将该数据包发到控制器来检测,并且,控制器会确定该数据包应该被发送的方向。该控制器然后可以向交换机新增一个流量条目,以处理未来出现的相同类型的数据包。
发送到交换机的指令可能是任何内容:它们可能指示该设备丢弃数据包以及所有未来出现的相同类型的数据包,基本上建立了一个防火墙:它们可以指示设备修改表头,并将数据包发送到特定端口,同时,到达相同目的地的新的数据包会被改写为一个不同的表头,并发送到不同的端口,这又建立了一个负载均衡器;它们还可以告诉交换机根据QoS目的阻止或者优化数据包流量。即使网络交换机没有操作系统或者配置都可以执行上述操作,这一切只需要交换机知道如何与中央控制器通信。
这也完全颠覆了传统网络。传统网络一直难以应对现代计算情况,尤其是对于虚拟化,很多新的概念和想法都被应用到这些传统模式来应对这些问题。虚拟化供应商从网络提取出网络决定,并将在管理程序内处理这些决定。数据中心桥接技术主要为了解决这样的现实,即虚拟机可以非常容易地穿越物理建筑物,而传统IP网络则没有这么移动化。OpenFlow将会改变这一切,因为我们可以将网络作为整体来编程,而不是管理条块的网络。
对网络采取OpenFlow的方法知道最近才得以实现,不仅因为这是个新颖的想法,而且因为之前网络硬件无法以这种方式处理流量。现在我们已经看到交换平台(例如Intel的Seacliff Trail)已经在生产中,我们有办法让OpenFlow可行、快速以及可扩展。
现在已经有支持OpenFlow的交换机和其他网络设备,但它们都是作为传统设备来架构,并且运行着自己的操作系统。它们支持OpenFlow,但并不是严格意义上的OpenFlow设备,因此,并不会带来相应的成本节约。当操作系统被移除后,交换机变成了一个白盒,我们就是跟硬件打交道,而这将大幅降低成本。
OpenFlow还有很长的路要走,这条路坑坑洼洼,很多大型网络供应商并不想失去他们的高利润和高额的市场份额。然而,任何颠覆性的技术都会面对自然的发展过程,目前,OpenFlow仍然处于起步阶段,我们仍然需要做很多工作来开发工具以及建立标准。很多较小型企业和硬件制造商已经看到了这个开放的市场,并准备进入这个市场。根据Stu Bailey表示,在未来几年内在网络领域的供应商都需要决定他们是销售软件到任何厂商的硬件上,还是销售硬件来运行任何开放商的软件。
对于OpenFlow,可以明确的是,我们最终会看到网络的成本下降,而功能和特性增加,这对于所有人来说,都是好消息。