SDN网络的可编程
SDN可编程接口不是传统的网络管理,而是一种在应用与网元之间双向的、紧密联系的通信通道,可以实现传统网络不具备的网络快速优化能力。SDN区别于传统网络技术的关键是“通过可编程性,将应用与网络设备之间的交互更紧密结合”。二这种紧密结合性,需要上述三种思路:“控制转发分离”、“物理网络抽象”、“可编程接口”。
可编程性是SDN的核心。将控制和管理平面从交换机、路由器中移到设备外的软件中,并通过SDN协议来连接网络设备。这些设备外的软件平台有自己的API、处理逻辑,以及向网络提要求、接受事件、处理SDN通信协议的能力,这些软件平台就是“控制器/Controller”。
应用开发人员只使用控制器提供的API来实现网络自动化、网络编排和操作网络。
控制器被认为代表了支持SDN的应用程序的基础架构,体现了SDN的可编程性。
可编程,SDN在数据平面和控制平面解耦后,提供了开放的可编程接口,这也是SDN区别于传统网络的重要思想之一。
传统网络的管理接口主要是命令行和网络管理协议等,也可以通过Shell脚本和Python脚本实现一些运维或管理功能,但都属于一种非常初级的网络编程方式。而网络管理员需要的是类似于软件编程那样更高级的编程方式。这种编程方式的实现是基于整个网络的而不是基于某一设备的,因而需要对网络功能进行抽象来实现网络的可编程。
在SDN出现之前学术界已经对网络的可编程进行了大量相关研究,其中最具代表的是主动网络和4D架构。主动网络的主要思想是开放网络节点的可编程接口;允许网络节点在用户数据上根据用户有需求执行相应的计算。4D架构将网络系统划分为四个平面:数据平面、发现平面、扩展平面、决策平面。这些研究都对SDN的可编程奠定了基础。
SDN可编程接口主要包括:
1.北向接口
北向接口的实现方式主要有REST API、JAVA API等。
2.南向接口
南向接口的实现协议主要有OpenFlow、OF-Config、OVSDB等。
3.东西向接口(研究阶段没有形成统一标准)
东西向接口主要负责多控制器或控制器与外部组件之间的通信。目前还在研究阶段没有形成统一的标准。
除了三大接口支持可编程外,SDN的数据平面也支持可编程。
目前数据平面的可编程技术主要包括Intel主导的高性能网络数据处理框架DPDK;斯坦福大学主导的数据平面可编程语言P4等。
页:
[1]