基于Intent的SDN北向接口研究综述
2016-05-14张忠平张曼君
张 岩 张忠平 张曼君
引言
软件定义网络(Software Defined Network, SDN)是一种新型未来网络架构,SDN将网络的控制与转发分离,实现了网络流量的灵活管理和调度[1]。控制平面是SDN网络的核心架构,控制平面以上与网络应用交互的接口被称为SDN北向接口(Northbound Interface, NBI),之下对数据平面的接口称为南向接口(Southbound Interface, SBI)。SDN北向接口确保了SDN控制器及其以下部分作为网络驱动供上层SDN应用调用,是技术能力与业务需求的结合点。
SDN北向接口可进行网络抽象和网络虚拟化。另外,北向接口还可以实现基础的网络功能,同时向编排系统提供网络管理的功能[2]。基于用户意图的北向接口是最近两年来兴起的一种高度抽象的且概括度极高的北向接口通用语言技术,多个组织和厂商都在积极跟进研究。本文先介绍Intent NBI的基本概念,接着从标准化和开源组织两个方面介绍Intent NBI的进展,并重点介绍具有代表性的一些项目。
1 关于Intent NBI
在最近的北向接口研究中,研究者希望用一种通用的语言描述网络控制接口,多个组织开始在SDN北向接口推动一种新的应用程序接口,这种应用程序只需要制定通信需求,并且独立于底层网络的各种细节,这个新的应用程序接口称为“基于Intent的北向接口模型(Intent NBI)”。在这个模型中, SDN控制器决定了如何将用户Intent解析到网络基础设施上,使网络表现为用户期望的方式。
Intent NBI是一种与网络实现技术无关的北向接口,不需要看到VPN、MPLS、路由协议等技术,它通过一种声明式的表达来体现用户的意图,是一种自顶向下,从需求视角对网络对象与能力的抽象。Intent NBI简单易用,通过对实现相关信息的隐藏,可以降低用户使用的门槛,促进应用开发的丰富性;且与平台实现无关,增强了应用的可移植性。由于用户希望看到更易用且功能更强的基于Intent的SDN系统,许多研究小组现在开始与标准组织和开源社区一起工作,致力于打造通用的基于Intent NBI的SDN网络。通过实施涵盖多个控制器、供应商和多种技术的通用北向接口技术,为网络运营商部署基于Intent的解决方案铺平道路。
2 NBI标准化进展
目前,北向接口的标准制定成为SDN领域中占领先机的关键,目前SDN的各种控制器都有自己专属的北向接口且开放程度不一,用户很难将他们全部都掌握。ONF和IETF是对SDN进行标准化的最重要的两大标准化组织,已有一些标准化的工作[3-4]。
2.1 ONF
主导SDN/OpenFlow的标准组织ONF于2013年10月成立SDN北向接口工作小组(NBI-WG),旨在通过北向接口的标准化以加速SDN的商用。ONF发现这些控制器提供的北向接口非常混乱,时常会给用户带来很大的困扰,于是ONF决定将SDN北向接口标准化。该工作组成立的另外一个原因,就是防止控制器通过提供杀手级应用形成厂商锁定的局面。
NBI小组制定了工作组的工作目标和范围[5]:定义一个基础NBI通用的SDN控制器能力以及功能,并开发NBI信息模型,如图1所示,以一种编程语言中立的方式提供建议性的代码,仅仅作为数据标准模型提供出来,具体数据模型的实现由各个研究团队按照此模型自行设计开发。
图1 ONF定义的Intent NBI的SDN架构
2.2 IETF
两个与SDN相关的工作组存在于IETF前期,分别是转发与控制分离组ForCES(Forwarding and Control Element Separation)和应用层流量优化工作组ALTO(Application-layer Traffic Optimization),随着SDN的进化,IETF开始涉及北向接口的标准化工作,SFC(Service Function Chain)工作组于2013年成立,其目的是希望确立各网络服务整合的体系架构及其应用接口,其对外控制接口是SDN北向接口的重要组成部分。
3 Intent NBI在开源组织的研究
Intent NBI的目标用户为运营商的业务设计人员,快速构建新的网络业务组合与服务IT的管理、开发人员。Intent NBI将网络资源与能力作为一部分集成到IT服务中,目前在SDN北向接口研究开发领域最活跃的是OpenStack和OpenDayLight,各个厂商在这两大开源组织中均有一些北向接口立项,下面分别介绍这两个组织中的一些研究项目。
3.1 OpenStack
OpenStack作为SDN控制器的一个重要应用,其由多个组件组成,与SDN网络北向接口相关的组件有基于Neutron的GBP以及Congress组件。
1)GBP(Group Based Policy for OpenStack)。GBPforOpenStack[6]由Cisco和IBM主导,是在OpenStack架构中增加的一个SDN北向接口的开源项目,它是一个OpenStack的API框架,提供了一个意向性驱动模型,旨在以独立于底层基础架构的方式描述应用需求。GBP通过包括Horizon Extensions(基于组策略的UI)、Heat(基于组策略自动化)和CLI(基于组策略客户端)等多种OpenStack的接口,提供了一个新的策略API,它被设计作为Neutron顶部的一个层(以及将来其他的OpenStack服务),如图2所示。
图2 GBP在Openstack中的位置
GBP认为当前的Neutron API只是在连接层面描述了业务的访问与隔离需求,既不直观,也不灵活。GBP将策略作用的对象称为Group,引入了策略规则(Policy Rule)来描述Group之间的连通性、安全性和网络服务,而这些策略是一些规则的集合,每个规则规定了两个Group之间流量的行为,比如重定向、业务链等,其模型为图3所示。GBP弥补了Neutron只能静态地描述虚拟机之间的互通隔离的缺陷,并且解决了业务开发者和网络技术人员之间的不对称问题。
图3 GBP在Openstack中的模型
GBP使用户能够指定不同层次应用程序之间的关系,使其非常容易扩展;同时,GBP从网络的具体要求(IP使用地址范围、绘制网络边界、分配VIPS等)分离出应用的安全性要求,这使得应用程序、安全性和操作团队既相互独立,又能协助运行;此外,GBP提供了一个抽象的网络服务,允许用户链接多个网络服务,并作为应用程序部署的一部分来描述需求。
2)Congress。Congress[7]是VMware公司在2014年启动的嵌入在OpenStack中一个项目,可以为任何云服务提供Policy as a Service(策略即服务)的功能,目的是为动态的基础设施提供管理和合规性,实现IT业务快速自动部署。图4为Congress在OpenStack的位置。
图4 Congress在Openstack中的位置
由于当前的IT服务一直被各种条件制约,因此需要加入符合业务的策略。一直以来,策略总是手动配置的,例如由某人发送一封电子邮件,要求一个应用程序被添加到网络,由特定的防火墙条目保证安全,然后连接到一个约定的存储中等等。在云时代,IT变得更加灵活敏捷,用户期望快捷的服务传递,但是由管理团队提供的响应很难达到快速响应的水平,因此人工的方法是不灵活的。Congress认为云服务可以展示为“表”,当前Congress使用的策略语言是Datalog语言,Datalog常用于数据域查询语言领域,与SQL(结构化查询语言)语言相似,但和传统的编程语言更接近。Congress用一种更加抽象的方式描述OpenStack各组件之间哪些状态是允许的,哪些是不允许的。
Congress允许云的管理者和租户使用高层级的通用陈述性语言来描述业务逻辑,例如:“应用A只被允许与应用B通信”或是“如果租户A是group B的一部分,租户A的虚机应该获得一个公网连接”等等业务逻辑;Congress中策略的执行包括主动的(在行为发生之前防止违规)、被动的(行为发生后纠正违规)以及交互的(为管理员提供深入了解策略和违规行为,如识别违规行为、解释其原因、计算潜在的调控措施等)执行。
3.2 OpenDayLight
OpenDayLight项目在2013年初由Linux协会联合业内18家企业(包括Cisco、Juniper、Broadcom等多家传统网络的巨头公司)创立,旨在推出一个开源的通用SDN平台。该项目采用模型驱动架构抽象出控制器各组件的南北向API以及各组件的数据结构, 其设计目标是降低网络运营的复杂度,扩展现有网络架构中硬件的生命期,同时还能够支持SDN新业务和新能力的创新。OpenDayLight希望能够提供开放的北向API,并使用YANG数据建模语言为服务和数据建模,与北向接口相关的组件有GBP、NIC、NEMO等。
1)GBP(Group Based Policy for OpenDayLight)。GBP for OpenDayLight[8]的架构模型如图5所示。与OpenStack中有所不同的是,OpenDayLight中的GBP将策略作用的最底层抽象命名为Endpoint,可以对应物理网络中的特定设备,也可以是虚拟机接口、物理接口或其他网络设备。将具有相同策略的Endpoint组合成为Group。Contract是不同Group之间的协定,这种协定包含一些规则,每个规则规定了两个Group之间流量的行为。
图5 GBP在OpenDaylight中的模型
2)NIC(Network Intent Composition)。NIC[9]是2014年底由HP牵头向OpenDayLight提交的项目,目的是提供一种通用的抽象的策略语法,让用户很方便地描述自己的意图,是比GBP更高层次、更接近用户的模型。NIC将Intent通过一个新的北向接口表现给控制器,它提供了广义和抽象的策略语义代替类似OpenFlow的流规则;NIC允许用描述的方式来获得在基础设施中的需要是什么,不描述如何提供不同的服务;NIC利用现有OpenDaylight网络服务功能和南向插件来控制虚拟和物理网络设备,而且NIC被设计成与协议无关,因此任何控制协议都可以使用。NIC试图逐步从少量简单的用例构建支持几乎任何可以想象的用例。NIC可以创建一个可扩展的NBI,用来提供以业务为中心的Intent描述,并在可用设备中自动化配置实现,也可以解决冲突的Intent,以及优化规则得到更好的资源利用率及网络性能。
3)NEMO(Network Model)。NEMO[10]作为OpenDayLight中的一个项目,是华为推出的一种新的基于Intent的SDN北向接口语言。NEMO基于DSL(Domain Specific Language,领域特定语言)的抽象网络模型以及结论性的操作模式。以一种新的语言形式来提供NBI。不像基于功能的那些深奥难懂的北向接口应用,NEMO只提供了很少的关键字和表达语句,就可以使网络用户或者网络应用可以直观描述其对网络资源的需求、服务、逻辑操作等等。NEMO的表达可以被NEMO语言引擎解释和执行。
NEMO的实现设计参考了SQL的成功案例,简化复杂的数据操作到一个统一和直观方式的形式语言。应用程序不定义数据存储和数据操作的底层机制,只描述期望的数据存储和操作,然后得到结果。作为一个数据域DSL,SQL是简单直观的,可以嵌入到应用程序中,这正是当前SDN北向接口所需要的。
NEMO定义了用户的Intent模型,在这种Intent模型下,用户是发起者和Intent的所有者。 NEMO项目创建每个租户隔离的独立虚拟网络空间,在自己的虚拟网络空间中,租户可以部署NEMO模型定义的元素与服务。用户的Intent是由三部分组成,即对象、操作和结果,用户可以使用模型描述他们的Intent[11]。
对象(Object)指的是在网络中的网络资源和服务。它们是整个网络的基础,并且必须首先创建;操作(Operation)表达调整网络资源或服务的行为;结果(Result)用来限制网络资源和服务的最终状态。Operation和Result的作用目标是Object。图6给出了NEMO的Intent模型。
图6 NEMO的Intent模型
NEMO相对GBP出现较晚,GBP已经在控制器中有所应用。NEMO与GBP的不同之处在于[12]:1)GBP使用策略来控制网络流的行为,但NEMO需要处理整个网络系统,需要创建和控制节点及链路的能力;2)GBP只检查两个终端系统之间的合同,而不考虑对路径的要求,但NEMO会考虑整个路径;3)GBP运行在应用程序接口以下,不允许应用程序直接表达需求,但NEMO使用表达基于Intent驱动的API,由用户直接表达需求;NEMO提供的应用程序可以实现一个简单的界面,并提供NEMO引擎以能够控制计算、存储和网络。
4 结论
SDN控制器通过南向接口关联转发平面,使用户不用接触到底层网络的细节;通过北向接口与上层应用交互,提供更高层次的业务逻辑抽象。SDN的最终价值在于根据丰富的上层应用需求更加灵活地部署和控制网络,而北向接口是否友好完备,直接决定着控制器的生命力,是控制器能否获得大规模应用的决定因素。基于Intent的北向接口技术简化了网络管理和新业务建立,对业务设计者不再要求具备高深的网络专业知识,仅需要明确业务的目的和流程以及对网络资源的需求,业务的底层映射由基于Intent NBI的控制器引擎完成,因此,基于Intent的北向接口技术应该是SDN实现未来应用创新和部署时不可或缺的技术。
参考文献
[1]黄韬,刘江,魏亮,等.软件定义网络核心原理与应用实践[M].北京:人民邮电出版社, 2014
[2]程莹,张云勇.SDN应用及北向接口技术研究[J].信息通信技术,2014,8(1):36-39
[3]王雪伟.SDN北向接口技术发展[J].电信网技术,2015,(4):19-23
[4]庞涛.SDN北向接口发展现状与趋势研究[J].互联网天地,2014,(9):50-56
[5]Michael C, Hemanth R.Group-Based Policy for OpenStack[EB/OL].[2015-12-10].http://www.cisco.com/c/en/us/solutions/collateral/data-centervirtualization/application-centric-infrastructure/whitepaper-c11-733126.html
[6]Christopher J.Intent NBI - Definition and Principles[R].Version V3.August, 2015
[7]Congress[EB/OL].[2015-12-10].https://wiki.openstack.org/wiki/Congress
[8]OpenDaylight User Guide[R].2015
[9]Network Intent Composition[EB/OL].[2015-12-10].https://wiki.opendaylight.org/view/Project_Proposals:Network_Intent_Composition
[10]NEMO[EB/OL].[2015-12-10].https://wiki.opendaylight.org/view/NEMO:Main
[11]Xia Y, Zhou T, Zhang Y, et al.Intent Common Information Model[R].IETF draft.2015
[12]NeMo compared with Yang and Open Daylight Group Policy[EB/OL].[2015-12-10].http://www.nemo-project.net/nemo-vs-ODL-group-policy-v1.pdf