一个网络一般由多厂商的交换机和路由器组成,这些设备运行不同的操作系统、有不同的命令行接口和配置程序,我们能否对这个网络进行编程,让它管理工作流时能像演奏音乐一样和谐呢?
OpenFlow告诉你,你能!
OpenFlow是一个开源项目,诞生于斯坦福大学与加州伯克利大学六年前的一次合作。它的基础就是软件定义网络,也就是说,利用可编程接口和各种协议,用户可以用软件来定义工作流,决定工作流在网络中通过哪条路径,而无须去关心底层的硬件。
可以这么说,OpenFlow是把网络流量的控制权从基础设施——交换机和路由器等——手中收了回来,交到了网络所有者、个人用户或个别应用的手中。有了这种权力,用户便可制定策略,为工作流寻找有可用带宽、低延迟或低阻塞,低跳数的路径。
拥趸众多:很多大公司共同组建了开放网络基金会,极力推进OpenFlow实现的软件定义网络。这些大公司和其他支持者们一致认为,OpenFlow对于数据中心、私有云以及园区网的负载均衡、流量控制和虚拟网络特别有用,因为在这些场合中,网络设备和虚拟机会成倍增加,使网络拓扑不堪重负。有人认为,OpenFlow之于网络有点儿像VMware之于虚拟化,它可以对由相互不兼容的路由器和交换机构成的网络进行统一控制。
当然,业界对OpenFlow的前景也疑虑重重。有人认为,OpenFlow还需要在很多方面证明自己,它还缺少超大规模的网络部署,以及对容错和标准路由协议的支持。还有人说,OpenFlow所自诩的可编程性和流量控制抽象其实在一些拥有API的可扩展交换机和路由器的操作系统上已经有了。
也有人认为,实际上,市场上已使用多年的可编程ASIC和网络处理器所做的事情和OpenFlow是一样的。而且,把来自多厂商的不同交换机的转发平面开放,也会出现棘手的安全问题。
然而,ASIC厂商们似乎对OpenFlow并不担忧。实际上,他们对此表示欢迎。
博通(Broadcom)CTO Nick Ilyadis称,“博通部分参与了定义OpenFlow的工作。OpenFlow 1.0和1.2都正在基于博通ASIC的交换机上进行测试。今天,ASIC设备是运行OpenFlow的领先平台。OpenFlow不会破坏ASCI作为转发和过滤用途的模式。”
Ilyadis说,OpenFlow目前运行在博通的可编程ASIC上面。尽管OpenFlow改变了编程范式,但并未真正改变交换机的底层功能。交换机仍然在转发、探测、过滤分组包,采用访问控制列表。OpenFlow其实就是提供了一种开放机制,控制器利用此种机制便可以用一种预决定方式进行配置。OpenFlow就是对这些功能进行编程的一种简单方法。
Ilyadis认为,“在ASIC中,有OpenFlow发挥潜能的大量空间。但是OpenFlow尚未发展到这一步,它还不能理直气壮地说:‘这些事情是我能做而ASIC做不了的。’”
OpenFlow不能定义流量分类表的大小,而交换机的ASIC可以做到,Ilyadis说。ASIC API也能提供硬件的某种程度的抽象,然后将其放在厂商的驱动程序之上,或者接受OpenFlow的指令,然后将其映射到交换机内部的API调用上。
Ilyadis说,“OpenFlow是软件定义网络的实例之一,但其他的API也能做到这一点。OpenFlow只是获得了媒体全面关注的一个实例,而其他软件定义网络实例却只引起了很少的关注,或者只被少数公司所使用而已。”