OpFlex是思科提出的一个可拓展SDN南向协议,用于控制器和数据平面设备之间交换网络策略。自SDN出现之后,其数控分离的设计使得交换机趋向于白盒( WhiteBox)化,严重冲击了传统设备厂商的市场地位。为了应对这一趋势,网络设备厂商领域的领头羊思科推出了ACI( Application Centric Infrastructure),即以应用为中心的基础设施。ACI的技术重点在底层的硬件设施,而不在控制平面,但ACI支持软件定义数据平面的策略,所以ACI也是一种广义的SDN实现方式。在ACI架构中可以通过集中式的APC( Application Policy Infrastructure Controller)来给数据平面设备下发策略,实现面向应用的策略控制。APIC和数据平面设备之间的南向协议就是采用了 OpFlex。2014年4月, OpFlex的第一版草案被提交到了ITF,开始了标准化进程。在标准化期间得到了微软、IBM、F5和 Citrix等企业的支持,并于2015年10月开始了第三版的标准化案修改。
OpFlex可以基于XML或者Json来实现,并通过RPC来实现协议操作。 OpFlex的架构如图2-10所示。目前 Open Daylight(ODL)已经支持 OpFlex协议,数据平面的交换设备如OⅤS在部署 OpFlex代理之后也可以支持 OpFlex。在 OpFlex协议中,协议的服务端是逻辑集中式的PR( Policy Repository),客户端为分布式的交换设备或四到七层的网络设备,称为PE( Policy Element)。在ACI中,PR可以部署在APC上,也可以部署在其他网络设备上。PR用于解析PE的策略请求及给PE下发策略信息,而PE是执行策略的实体,其是软件交换机或者支持 OpFlex的硬件交换机。
思科的官方文件中描述到 Op Flex协议是一种声明式控制( Declarative Control)协议,而 Open Flow则是一种命令式的控制( Imperative Control)协议。声明式控制只通知对象要达到一种要求的状态,但是并没有规定其通过指定的方式去达到这个状态。在ACⅠ中,APIC只下发相应的网络策略,而如何实现这一策略,还需要智能的网络设备来具体实现。然而对于 Open Flow而言,需要精确地告知交换机具体的动作,才能完成数据的处理。ACI的这种设计不仅使得ACI实现了软件定义的网络框架,也保障了ACI依然以底层智能设备为中心,从而既迎合了SDN的发展趋势又巧妙地保留了技术壁垒,进而使得思科依然可以在其领先领域来面对SDN的冲击。从市场反响上看, OpFlex的反响还不错,目前ACI的市场占有率仅次于采用 Open Flow协议的NSX,位居第二。
本质上, OpFlex是一种SDN南向协议,但是其具有的可编程能力不强,且采用 OpFlex实现的ACI架构是一种广义的SDN架构,其数据平面依然具有非常完善的控制能力,架构的重点依然还是底层的智能设备,所以 OpFlex只能归类为广义的SDN南向协议的范畴。但采用 OpFlex不失为一种明智的选择。由于分布式数据平面设备强大的功能,加上 OpFlex的策略控制,可以使得用户在采用SDN方案时最大程度地兼容现有资产,实现统一的SDN管理,同时也实现了平滑的SDN网络改造。因此短期之内,由思科主推的 OpFlex依然是一个具有竞争力的协议,其ACI架构依然具有十分强劲的市场竞争力。