SDN北向接口技术发展
2015-04-15王雪伟华为技术有限公司工程师
王雪伟 华为技术有限公司工程师
SDN北向接口技术发展
王雪伟 华为技术有限公司工程师
SDN的核心是要实现网络的可编程控制,推动网络业务的创新,SDN北向接口是这一趋势的最关键推动力,北向接口的协议制定成为当前SDN领域竞争的焦点,其标准化也处于刚刚起步阶段。当前SDN北向接口的发展主要有两个脉络,一方面是以ONF为代表的标准组织对北向接口进行标准化;另一方面是以OpenStack、OpenDaylight为代表的开源组织企图以事实标准的形式抢占先机。本文将对SDN北向接口的标准化进程和主要开源社区进展进行综述。
SDN 北向接口 ONF IETF OpenStack OpenDaylight
1 引言
SDN是一种新型网络创新架构,其核心理念是将网络设备控制面与转发面解耦,实现了网络流量的灵活控制,使网络作为管道变得更加智能。在SDN架构中,最核心的组件是中间的控制面,负责维护转发面的资源、维护网络状态、下发转发信息等,其下的数据面负责数据转发、网络状态的收集等,其上的应用层包括不同的网络业务和应用。因此,以控制面为中心,其上与应用层的接口被称为SDN北向接口(Northbound Interface,NBI),其下对转发面的接口成为南向接口(Southbound Interface,SBI),具体参见图1。
图1 SDN南、北向接口
SDN的核心是要实现网络的可编程控制,推动网络业务的创新,而北向接口恰恰是这一趋势的最关键推动力,通过北向接口,网络业务开发者能以软件编程的形式调用各种网络资源,同时上层的网络资源管理系统可以通过北向接口全局把控整个网络的资源状态,并对资源进行统一调度。因为北向接口是直接为业务应用服务的,因此其设计必须能够描述业务意图,具有良好的可操作性,而网络业务的复杂多样性又要求SDN北向接口是灵活、可扩展的,以满足复杂多变的业务创新需求。
与SDN南向接口已经有OpenFlow、Netconf等国际标准不同的是,SDN北向接口的标准化还处于刚刚起步阶段,目前SDN市场上各种各样的控制器Open-Daylight、Floodlight、Onos等都有自己的一套北向接口,而这些北向接口的开放层次又参差不齐,或者从用户角度出发,或者从运营角度出发,或者从产品能力角度出发提出了很多方案,无法形成统一标准的北向接口,给上层应用带来了很大的困惑,学习成本也很高。目前,北向接口的协议制定成为当前SDN领域竞争的焦点。
2 SDN北向接口技术发展
2.1 开源社区
(1)OpenStack
OpenStack是目前最活跃的一个开源云计算管理平台项目,作为SDN控制器的一个重要应用,其由多个组件组成,与网络相关的组件有Neutron、GBP、Congress组件。
●Neutron
OpenStack中的网络组件,起源于Cisco的NaaS项目,之前一直叫做Quantum,后因商标问题改名为Neutron。Neutron为OpenStack提供了“网络即服务”的功能,租户在云中能够自定义地构建起一套虚拟网络环境,互联其虚拟机,并提供网络服务,真正构建起一个属于租户的虚拟DC。
Neutron将网络抽象为网络Network、子网Subnet、端口Port、路由器Router,之后启动的虚拟机就可以直接挂在这个网络上。网络如果要跟物理环境下的概念映射的话,就相当于一个大的交换机,可以拥有无限多个动态可创建和销毁的虚拟端口。子网是由一组IP地址组成的地址池,OpenStack可从中向虚拟机分配IP地址。端口是虚拟机和路由器或交换机挂接网络的着附点,一个虚拟机实例可通过此端口将它的网络适配器附加到一个虚拟网络。路由器为虚拟机访问外部网络提供3层转发服务和支持多路由。图2为Neutron典型的网络结构。
从Neutron的网络抽象可以看出这是个典型的适用于云计算环境的北向抽象,没有网络拓扑的概念,以虚拟机为中心,是一种IT人对网络的抽象。该抽象只能描述虚拟机之间的互通与隔离,不能描述大部分的网络业务,比如SLA、QoS、ServiceChain等,虽然Neutron也在扩展,但只是CasebyCase的扩展,针对一个业务需求就实现一个扩展,没有一个通用的模型来支撑。尽管在网络虚拟化上做了很多努力,但是IT人员还是抱怨Neutron是最复杂、难用的模块。
●GBP
Group Based Policy是由Cisco和IBM主导,在OpenStack平台新增的一个关于北向接口的开源项目。2013年11月,Cisco收购了InsiemeNetworks公司,以该公司技术为核心,推出了以应用为中心的基础设施解决方案“ACI”;同时,在其主导的OpenDayLight社区创建新的孵化项目GroupPolicy,随后与IBM联合提案,在Neutron项目中增加以应用为中心、面向策略、抽象的接口项目,并最终命名为“基于组的策略抽象(GBP)”,目前GBP也是OpenStack的一个孵化项目,未被工作组正式接纳。
图2 Neutron典型的网络结构
图3 OpenStack的GBP模型
GBP认为当前的NeutronAPI只是在连接层面描述了业务的访问与隔离需求,不直观,也不灵活。针对当前大量的3层网络业务需求,GBP引入了策略模型,使用Group和PolicyRule来描述网络业务需求,可以很方便地实现业务的自动化和安全性。图3为Open-Stack的GBP模型。
GBP将策略作用的对象称为Group,将具有相同策略的虚拟机组合成Group,策略是一些规则的集合,每个规则规定了两个Group之间的流量的行为,比如重定向、业务链等。
从GBP的模型描述可以看出GBP是一个可以动态地描述网络策略的模型,弥补了Neutron只能静态地描述虚拟机之间的互通隔离的缺陷。
●Congress
CongressProgect是由VMware公司主导,在2014年初启动的一个新项目,其目的是构建在OpenStack所有组件之上的通用的PolicyasaService,实现IT业务快速自动部署。图4为Congress在OpenStack的位置。
Congress允许云管理员和租户使用一种高层次的、通用的、声明式的语言去描述业务逻辑,策略语言不包括一些确定的策略类型或内嵌的实施策略,而是简单地定义哪些云状态是允许的,哪些是不允许的。云状态指的是运行在云上的所有业务的合并状态。Congress认为每个云服务都可以以表的形式呈现,Policy语言用来决定这些表内容是否存在冲突。当Congress收到云管理者的一个Policy请求,它会与当前Policy对比,警告云管理者策略之间的冲突(云的实际状态与策略允许的状态不一致),将来Congress将进一步的采取行动改变云状态,帮助我们理解Policy的历史和冲突。当前Congress使用的策略语言是Datalog语言,Datalog常用语数据域查询语言领域,类似与SQL,但比SQL更接近于传统编程语言。
从Congress的策略描述可以看出,Congress用一种更加抽象的方式描述OpenStack各组件之间的状态,描述哪些状态是允许的,哪些是不允许的。
(2)OpenDaylight
OpenDaylight是一个开源控制器平台,采用模型驱动架构抽象出控制器各组件的南北向API以及各组件的数据结构,并使用YANG数据建模语言为服务和数据建模。
●GBP
OpenDaylight也有个GBP项目(见图5),OpenDatlight中的GBP将策略作用的最底层抽象命名为Endpoint,可以对应物理网络中的特定设备,可以是虚拟机接口、物理接口或其他网络设备。将具有相同策略的Endpoint组合成为Group。Contract是Group之间的契约,契约有一些规则组成,每个规则规定了两个Group之间的流量的行为,比如重定向。
●NIC
2014年底由HP牵头提交了一个新的项目建议NIC(NetworkIntentComposition),目的是提供一种通用的抽象的策略语法,让用户很方便地描述自己的意图,是比GBP更高层次、更接近用户的模型。目前,还没有实质性内容。
2.2 标准组织
图4 Congress在OpenStack的位置
图5 OpenDatlight的GBP模型
ONF和IETF是对SDN进行标准化的最重要的两大标准化组织。下面将分别介绍这两个组织在北向接口的进展情况。
(1)ONF
SDN/OpenFlow标准的引领者组织开放网络基金会(OpenNetworkFoundation,ONF)于2013年10月成立SDN北向接口工作小组(Northbound Interface WorkingGroup,NBI-WG),目的在透过接口标准化与功能验证以加速SDN广泛商用。
NBI组Charter指定了工作组的工作目标和范围:定义一个核心/基础NBI覆盖通用的SDN控制器能力和功能,并开发NBI信息模型,以一种编程语言中立的方式提供建议性的代码,作为数据模型,具体数据模型的实现不在工作组的范围内。
NBI组又分为3个子组,即NBIArchitecture子组负责撰写NBI的架构文稿;Network、Cloud and DC UseCaseandInterfaces子组负责Cloud/DC和网络场景相关的NBI和接口;EndUserApplicationUseCasesand Interfaces子组负责其他场景的NBI和接口。具体参见图6。
(2)IETF
IETF早期有两个与SDN相关的研究项目/工作组,分别是转发与控制分离组(ForCES,Forwardingand ControlElementSeparation)和应用层流量优化工作组(ALTO,Application-layerTrafficOptimization)。其中,ForCES已经发布了9个RFC,主要涉及需求、框架、协议、转发单元模型、MIB等;ALTO主要通过为应用层提供更多的网络信息,完成应用层的流量优化、用于判断的参数(包括最大带宽、最少跨域、最低成本等)。ALTO的研究思想体现了SDN向上层应用开放接口的理念,这种开放部分网络信息以优化应用的做法,从广义上讲也是SDN的一种实现类型。
在SDN出来之后,IETF的工作主要在南向,以应对OpenFlow,典型的就是I2RS。I2RS的核心思想是在目前传统网络设备的路由及转发系统基础上开放新的接口来与外部控制层通信;是在路由系统(控制面)向上的接口模型,外部控制层通过设备反馈的事件、拓扑变化、流量统计等信息来动态地下发路由状态、策略等到各个设备上去。可以看出,I2RS延用了传统网络设备中正在使用的路由、转发等结构与功能,并在此基础上进行功能的扩展与丰富。如图7所示,I2RS使用了模型驱动架构(MDA)和YANG做数据模型描述。
图6 NBI基础模型
随着SDN的进化,逐渐开始有北向的工作,在2013年成立的SFC(ServiceFunctionChain)工作组,意图确立各网络功能服务整合的体系架构以及对外的接口,SFC的对外控制接口是SDN北向接口的重要组成部分,有基于YANG描述的模型。另外,在IRTF里有一篇针对ICN的Intent建模和接口抽象。
图7 I2RS模型示例
1 https∶//wiki.openstack.org/wiki/Neutron
2 https∶//wiki.openstack.org/wiki/GroupBasedPolicy
3 https∶//wiki.openstack.org/wiki/Congress
4 https∶//wiki.opendaylight.org/view/Network_Intent_ Composition∶Main
5 https∶//wiki.opendaylight.org/view/Group_Policy∶Architecture/Policy_Model
6 https∶//wiki.opendaylight.org/view/Project_Proposals∶Group_Based_Policy_Plugin
2015-04-10)