SDN应用及北向接口技术研究
2014-05-18张云勇
程 莹 张云勇
中国联通研究院 北京 100032
引言
SDN(Software Defined Networking,软件定义网络)是一种新兴的基于软件的网络架构及技术,其特征在于解耦控制平面和数据平面,支持集中的网络状态控制,实现底层网络基础设施对上层应用的透明。以ONF提出的SDN典型三层架构为例,最上层为应用层,包括各种不同的网络业务和应用;中间的控制层主要负责处理数据平面资源的编排,维护网络拓扑,转发信息等;最下层的数据转发层负责数据处理、转发和状态收集。其中,以控制层为中心,其与应用层和数据转发层之间的接口分别被定义为北向接口和南向接口,是SDN架构中两个重要的组成部分。ONF在南向接口上定义了著名的OpenFlow协议,而业界在北向接口上还没有达成标准共识。
SDN的核心理念在于推动网络业务的创新,而北向接口恰恰是这一趋势的最主要推动力。通过北向接口,网络业务的开发者可通过软件编程的方式调用不同的网络资源和能力。网络业务编排系统也可通过北向接口获知网络资源的工作状态并对网络资源进行调度,实现资源的统一交付,从而更好的支持云计算等新业务对网络资源的需求[1-2]。
1 SDN应用类型
以ONF提出的SDN三层架构为例,最上层的应用层包括了基于控制层提供的API接口实现的与网络业务相关的管理、编排、安全等应用,以及根据用户需求定制的具有其它指定功能的网络业务。在当前主流的SDN应用领域中,主要包括如下两种类型的应用。
1) 业务/资源编排类应用。该类应用主要是面向业务及资源统一管理、调度和编排的平台,以云计算资源管理平台为例,其作用是实现计算、存储、网络等基础设施资源的池化和按需调度。
2) 创新类网络应用。该类应用主要面向传统静态网络环境下难以实现,但在SDN环境下可充分发挥优势的业务,包括全局流量工程、应用加速等,同时还可包括网络功能虚拟化相关应用,从而替代传统网络中的专用硬件。
2 SDN北向接口功能、分类及实现案例
2.1 SDN北向接口功能
SDN北向接口确保了SDN控制器及其以下部分作为网络驱动供上层SDN应用调用。SDN北向接口可进行网络抽象和网络虚拟化。网络抽象可提供物理网络视图、虚拟网络叠加视图、指定域抽象视图、基本连接视图以及QoS相关连接视图等;网络虚拟化可提供隧道流量处理以及叠加网络启/停等。另外,北向接口还可以实现基础的网络功能,例如路径计算、环路检测、安全等。同时向编排系统(OpenStack[3]Quantum、Vmware vCloud Director等)提供网络管理的功能。
从网络业务的使用者角度来看,使用北向接口API基于SDN控制器以下所提供的网络抽象和网络虚拟化功能,可开发4~7层软件功能以及虚拟设备,如防火墙、负载均衡器、流量工程和安全功能等,也可以实现网络资源和业务的编排。
从网络管理员的角度来看,基于北向接口可进行网络管理和控制,包括网络抽象、网络拓扑和网络状态监控等。
2.2 SDN北向接口分类
根据接口特性可以将北向接口分为强耦合接口(应用编程接口)、松耦合接口以及基于状态的功能接口三种。
1) 强耦合API包括进程内API和进程间API。进程内API主要由控制器提供用于在控制器内实现编程功能;进程间API主要由控制器外部部件用来同控制器通信以执行功能或者交换/读取状态。
2) 松耦合接口由外部部件以松耦合的方式与控制器通信,通常并不需要立即响应,也不需要直接或即时同步出现。
3) 基于状态的功能接口包括主要以处理状态为主的API,其功能就是设置和读取状态以及通知状态改变。功能性API提供一套功能以供编程使用,如编程库或SDK,包括系统和协议,它们并不通过过程调用,而是通过状态改变。
2.3 SDN北向接口实现案例
1) OpenDayLight。图1为OpenDayLight[4]给出的SDN架构,其中,网络应用/编排/业务和控制平台之间的OpenDayLight APIs即为通常所说的北向接口,这里指定以REST方式进行定义,OpenDayLight所给出的SDN应用包括对L2/L3转发以及负载均衡、集线器等。
2) BigSwitch。图2为BigSwitch[5]的SDN平台架构,其北向接口包括右侧REST APIs以及平台(Core Platform)和应用之间的接口。BigSwitch所给出的SDN应用包括对网络虚拟化应用,如ARP,DHCP、虚拟路由、OpenStack Networking、集线器、交换机学习、静态流推送、负载均衡等的支持。
图1 OpenDayLight SDN架构图
图2 BigSwitch SDN平台架构
3 基于云计算资源管理平台的SDN应用及场景分析
当前,服务器虚拟化、存储虚拟化等技术都已被广泛应用,充分实现了底层物理资源的池化共享,进而满足云计算多租户需求。相比之下,传统网络远未达到类似存储及服务器虚拟化的灵活性。
在云计算资源管理平台中引入SDN,可以更好地改善对网络资源的控制,实现管理的自动化。SDN架构将控制平面从分散部署的网络设备中抽取出来,并以集中化的控制器方式对全网进行控制。SDN控制器可从全局监控SDN网络的资源容量和网络需求。云计算资源管理平台通过调用控制器的北向接口,以软件方式自动实现网络资源的灵活调度和分配,进而与计算、存储资源整合统一交付为云服务[6]。
结合SDN的云计算资源管理平台核心在于基于SDN控制器北向接口编排资源管理流程,使其能及时将上层云计算业务的资源需求反馈给控制器并对网络设备和链路进行调度,从而将计算/存储管理平台与网络管理平台充分集成,实现云网融合。
OpenStack通过Neutron组件提供SDN插件支持框架,将云平台与网络业务创新结合起来,从而实现云网融合。以下将以云计算环境中常见的虚拟机迁移网络策略同步跟随(即网络策略跟随虚拟机的迁移而同步迁移)的场景为例分析基于云计算的SDN应用。
3.1 需求描述
虚拟机在数据中心内部署时,通常与其相连的虚拟交换机或接入交换机上会部署ACL、QoS等网络策略,从而对虚拟机进行管理。同时,针对部分有安全需求的业务,防火墙也会对虚拟机状态进行记录和安全保障。当虚拟机跨物理设备或跨广域网迁移时,相应的网络策略需同步地迁移到虚拟机新位置下的网络设备,以保证虚拟机仍然能够得到正常的业务保障。在迁移过程中,应保证用户访问无感知。
3.2 OpenStack实现框架
作为开源项目,OpenStack降低了运营和管理生产/实验云基础设施的门槛,同时,极大缩短了IaaS新业务的开发和部署周期。通过大量商业/开源Neutron插件的发布,可将OpenStack与SDN充分结合(OpenStack可视为工作在SDN应用层的云计算资源管理平台),系统管理员可利用SDN北向接口调用SDN控制器对外开放的网络能力。当有虚拟机组网需求时,相关的网络策略和配置可在OpenStack管理平台的界面上集中制定并进而驱动SDN控制器自动下发到对应的网络设备上。
3.3 场景实现方案
基于上述分析,给出虚拟机迁移网络策略同步跟随的场景示意图,如图3所示,具体步骤如下文描述。
1)系统管理员通过OpenStack管理平台下发创建虚拟机的指令;2)OpenStack管理平台在计算节点A上创建虚拟机;3)当在计算节点A上创建虚拟机时,Neutron SDN插件会将虚拟机对网络资源(包括QoS,ACL等)的需求通知SDN控制器;4)SDN控制器通过OpenFlow流表将虚拟机所需要的网络资源下发给OVS(Open vSwitch[7])和OpenFlow物理交换机;5) 系统管理员根据业务需求向OpenStack管理平台下发虚拟机迁移指令;6) OpenStack根据虚拟机迁移策略将指定虚拟机从计算节点A迁移至计算节点B;7) 虚拟机迁移时会通过指令触发SDN控制器,SDN控制器通过OpenFlow协议,更新下发给物理交换机和OVS的流表,从而实现与该虚拟机相对应的QoS和ACL等网络资源随之迁移,并保证用户访问无感知。
图3 虚拟机迁移网络策略同步跟随
3.4 方案测试及分析
基于3.3小节的实现方案,搭建图3所示的验证环境。通过限定租户虚拟机从外网FTP下载速度作为QoS策略,利用SDN控制器下发对应的流表至计算节点A上的租户虚拟机所对应的交换机端口。当从OpenStack管理平台上通过Nova live-migration命令将租户虚拟机从计算节点A迁移至计算节点B时,SDN控制器会得到触发,从而更新下发流表。经测试,迁移过程中,迁移至计算节点B的租户虚拟机仍然保持同样的外网FTP下载速度,进而验证了虚拟机在线迁移时,相关的网络策略可保持同步跟随。
4 结束语
与SDN南向接口方面已有的OpenFlow等国际标准不同,北向接口方面因需要密切联系业务应用需求,同时具备多样化的特征,成为当前SDN领域竞争的焦点,业界不同的参与者分别从不同的角度提出北向接口从而实现不同的SDN应用,导致当前北向接口标准很难达成共识。可以预测,后续的SDN北向接口将朝着标准化和开源两个方向发展。北向接口设计的是否合理以便能被业务应用广泛调用将直接影响到SDN控制器厂商的市场前景。
基于OpenStack和SDN集成环境的解决方案为云计算网络业务的快速上线提供了新的可能,以本文提出的典型场景实现为基础,后续将有更多SDN相关应用涌现出来,从而为云业务的发展提供更多网络保障。
参考文献
[1]Shin M K,Nam K H,Kim H J.Software-defined networking(SDN):A reference architecture and open APIs[C]//ICT Convergence (ICTC),2012 International Conference on.IEEE,2012:360-361
[2]左青云,陈鸣,赵广松,等.基于Open Flow的SDN技术研究[J].软件学报,2013,24(5):1078-1097
[3]OpenStack[EB/OL].[2013-12-13].http://www.openstack.org/
[4]OpenDaylight[EB/OL].[2013-12-13].http://www.opendaylight.org/
[5]BigSwitch[EB/OL].[2013-12-13].http://www.bigswitch.com/
[6]程莹,张云勇,杨绍光,等.云网融合及原型验证研究[J].电信技术,2013(9):9-13
[7]Open vSwitch[EB/OL].[2013-12-13].http://openvswitch.org/