导读 | SDN北向接口是连接SDN控制器和用户应用之间的重要纽带,决定了SDN的实际能力与价值,直接影响了整个SDN市场的发展方向。 |
作为一种颠覆传统网络的新型网络架构,SDN凭借其快速提供网络服务、实现网络灵活管理、加速网络应用创新、降低运营开销等诸多好处,一出现便吸引了众多运营商的广泛关注与青睐。SDN正在成为整个行业注目的焦点,越来越多的业界专家相信其将给传统网络架构带来一种革命性的变革。
ONF提供的SDN三层网络架构获得了业界普遍认可,SDN架构主要分为三个层次:聚焦各种网络业务开发的应用层,负责资源编排,全局网络管理的控制器层,负责数据转发的基础设施层。以控制器层为核心,其与应用层和数据转发层之间的接口分别被定义为北向接口(NBI, Northbound Interface)和南向接口(SBI, Southbound Interface),是SDN架构中两个重要的组成部分。
SDN的核心是实现网络的可编程控制,推动网络业务的创新,而北向接口恰恰是这一趋势的最关键推动力,通过北向接口,网络业务开发者能以软件编程的形式调用各种网络资源,同时上层的网络资源管理系统可以通过北向接口全局把控整个网络的资源状态,并对资源进行统一调度。因为北向接口是直接为业务应用服务的,因此其设计必须能够描述业务意图,具有良好的可操作性,而网络业务的复杂多样性又要求SDN北向接口是灵活的、可扩展的,以满足复杂多变的业务创新需求。同时,北向接口的设计是否合理、便捷、是否能够被业务应用广泛调用,也会直接影响到SDN控制器厂商的市场前景。
与南向接口方面已有OpenFlow等国际标准不同,北向接口方面还缺少业界公认的标准。其主要原因是北向接口直接为业务应用服务,其设计需密切联系业务应用需求,具有多样化的特征,很难统一。目前,SDN市场上各种各样的控制器,如Opendaylight、Floodlight、ONOS等,都会对外提供各自的北向接口用于上层应用开发和资源编排。这些北向接口的开放层次参差不齐,或者从用户角度出发,或者从运营角度出发,或者从产品能力角度出发提出了很多方案,无法形成统一的标准的北向接口,给上层应用带来了很大困扰,学习成本也很高。因此,北向接口的标准制定成为当前SDN领域竞争的焦点。
开放、可编程是SDN网络的显著特征。SDN网络中,开放关注的焦点逐渐上移,主要经历了三个阶段。
第一阶段:关注设备开放接口
在这一阶段,网络开放关注在基础设施层的设备开放接口,通过设备开放接口,直接实现对现有网络设备的控制域编程。根据ONF中定义的OpenFlow协议标准,通过[match, action]的模型方式,直接生成并下发网络基础设备(如交换机、路由器以及网络芯片)的转发表项,实现对数据报文转发行为的控制。在这一阶段,应用层和控制器层之间的边界是模糊的,应用层业务的开发需要感知底层物理网络的细节,并且需要构造复杂表项实现业务开发,给新业务的开发带来极大困难。
第二阶段:关注控制器能力开放接口
在这一阶段,网络开放关注在控制器能力开放,通过控制器的开放接口,可以实现特定的功能型、特定场景或技术方案的网络控制能力实现。在ONF的North Bound Interface Work Group中,定义了大量的不同功能的开放接口,如Topology接口,L2VPN、L3VPN接口,Tunnel接口等,这些接口从具体的独立的网络能力角度,隐藏了具体网络设备的转发表项细节。此阶段的控制能力开放接口,具备了一定的抽象,简化了使用流程,利用这些功能接口的组合可以部署常见业务,但使用者仍需具备丰富的网络知识和相关技术背景,同时,网络应用和技术实现相绑定,随着网络功能的不断创新,面向新功能的北向接口也需要不断的增加或扩展。
第三阶段:关注系统能力开放接口
当前,在第三阶段,网络开放关注在系统能力的开放接口,更注重于网络整体能力的抽象和开放,提供面向网络操作意图的网络操作接口。使用这类用户意图的声明式接口,网络用户、应用只需描述想要“What”,而无需关心“How”去实现,向用户隐藏了网络相关的技术信息,大大降低了网络用户、服务的网络操作难度,使得网络更容易被操作和使用。尽管面向用户网络操作意图北向接口(Intent NBI)日益成为业界关注的热点,但现阶段大家对Intent的概念以及Intent NBI的描述形式和内容难于达成统一,源于Intent NBI的目标用户群尚未明确。同时,这种面向用户意图的北向接口,势必会为控制器实现的“智能化”、服务质量的保障性等带来更多的挑战。
从SDN北向接口的发现过程来看,业界对网络的关注点不断上移,从关注具体的底层网络实现到聚焦真正用户业务需求,不断提升SDN的价值。
北向接口连接SDN控制器和用户应用之间的重要纽带,决定了SDN的实际能力与价值,直接影响了整个SDN市场的发展方向。站在不同角度上,目前业界存在两种NBI技术思路。
第一种是技术方案相关接口,即“我能做什么”,从技术视角出发,暴露网络系统能够提供的具体能力,用户通过选择某种具体技术方案或组合实现其网络应用,实现对网络的精确控制。典型的技术方案相关接口有L2VPN、L3VPN、IP-TE等。
第二种技术思路是技术方案无关接口,即“我要什么”,从用户视角出发,屏蔽底层网络细节,使用户真正聚焦业务需求,而无需关心在纷繁复杂的网络解决方案中如何选择,大大降低了网络用户、服务的操作难度。目前,面向用户意图的Intent接口逐步成为业界关注的热点,吸引了众多运营商及服务提供方的关注与参与。目前,典型的Intent接口有NEMO、GBP、SUPA等。
两种技术观点站在不同视角上,对SDN的发展的方向进行诠释,目前。两者一方面通过各个标准组织对北向接口的分类、框架、协议等进行标准化定义,另一面由各开源平台推动,力图通过支持更多网络应用落地,造成事实标准。总之,SDN北向接口标准的制定在标准以及开源组织中都有了长足的发展。
标准领域的发展
ONF和IETF是对SDN进行标准化的最重要的两大标准组织,也成为北向接口竞争的重要战场。
ONF(Open Networking Foundation)
ONF是SDN技术重要的标准化组织之一,致力于创新和发展新型网络架构,目前,ONF的会员数已经超过150家公司,其推动的SDN技术标准涵盖SDN技术的各个方面,主要包括SDN架构、南向接口、北向接口、转发模型、无线网络等,并成功制定了大名鼎鼎的SDN南向接口协议OpenFlow。在北向接口的制定方面,ONF也做出了重要的贡献。
2013年10月,ONF成立北向接口工作组(North Bound Interface Working Group),致力于建立SDN中北向接口的原型及其信息模型,为应用开发者设计一个统一的层次清晰功能完善的北向接口。图5的北向接口API范围所示,不同抽象层及接口范围需要发展不同的API,如应用于虚拟化管理及QoS等需要不同的API。
目前,针对北向接口中SFC、VPN等技术方案相关的标准还在进一步讨论中,同时基于Intent的北向接口的信息模型、数据模型、应用实例等也都在积极的进行中。
IETF(Internet Engineering Task Force)
IETF是全球互联网最具权威的技术标准化组织,主要任务是负责互联网相关技术规范的研发和制定,重点是定义设备间的协议及技术规范。随着SDN技术理念被业界广泛接受,IETF也成立相应的工作组全面开展标准化工作,其研究更注重重用现有的协议和架构,立足于以演进的方式实现集中控制和网络的可编程。在北向接口标准的制定方面,IETF也取得了很多进展。
IETF前期侧重于制定技术方案接口类北向接口,早期IETF成立ALTO(Application-layer Traffic Optimization)工作组,主要通过为应用层提供更多的网络信息,完成应用层的流量优化。已经发布6篇RFC,包括需求、协议等内容,正在定义信息模型、数据模型等。
在2013年,成立SFC工作组,主要职责是定义如何将多个业务功能通过业务链串接起来形成不同的业务功能集合,满足不同场景的需求和部署场景。目前,已经发布SFC架构RFC,并在努力制定相应的数据模型。
2015年成立OPS域的网络级技术接口的工作组L3SM,旨在制定统一L3VPN部署的数据模型,以L3VPN为目标,探索IETF定义网络级业务统一接口的可行性。目前,已有多篇drafts阐述VPN部署的自动化管理以及统一数据模型。
随着Intent概念被不断热议,IETF也开始成立专门的工作组来制定Intent接口标准。2014年底华为推动成立IB-NEMO讨论组,聚焦Intent-Based Network Modeling相关工作的讨论,旨在将现有网络操作意图抽象成Intent统一模型,实现对网络资源的灵活操作与控制。目前,已有以提出统一信息模型草稿,数据模型也正在讨论中。
2015年华为推动成立SUPA(Simplified Use of Policy Abstractions)工作组,主要目标是制定通用的Policy模型,并且将Intent Policy作为其中重要的研究内容。目前,已经提交了关于Intent Policy的信息模型、数据模型以及应用场景实例等多篇草稿。
开源领域的发展
目前,已经有许多开源社区致力于推动SDN在网络的应用,造成了极大的影响力。其中,从参与度和影响力上,OpenStack、Opendaylight和ONOS比较值得关注。
OpenStack
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。OpenStack是目前最活跃的一个开源云计算管理平台项目,作为SDN控制器的一个重要应用,其由多个组件组成,与网络相关的组件有neutron、GBP、congress组件。
Neutron
Neutron为openstack提供了“网络即服务”的功能,租户在云中能够自定义的构建起一套虚拟网络环境,互联其虚拟机,并提供网络服务,真正构建起一个属于租户的虚拟DC。
Neutron将网络抽象为网络Network、子网subnet、端口port、路由器router等,之后启动的虚拟机就可以直接挂在这个网络上。子网是由一组IP地址组成的地址池, OpenStack 可从中向虚拟机分配 IP 地址。端口是虚拟机和路由器或交换机挂接网络的着附点,一个虚拟机实例可通过此端口将它的网络适配器附加到一个虚拟网络。
从Neutron的网络抽象可以看出这是个典型的适用于云计算环境的北向抽象,没有网络拓扑的概念,以虚拟机为中心,是一种IT人对网络的抽象。该抽象只能描述虚拟机之间的互通与隔离,不能描述大部分的网络业务,比如SLA、QoS、ServiceChain等,虽然现在Neutron也在扩展,但只是case by case的扩展,针对一个业务需求就实现一个扩展,没有一个通用的模型来支撑。
GBP(Group Based Policy)
Group based policy是由Cisco和IBM主导,在openstack平台新增的一个关于北向接口的开源项目。2013年11月,Cisco收购了Insieme Networks公司,以该公司技术为核心,推出了以应用为中心的基础设施解决方案“ACI”,同时,在其主导的OpenDayLight社区创建新的孵化项目Group Policy,随后与IBM联合提案,在Neutron项目中增加以应用为中心、面向策略、抽象的接口项目,并最终命名为“基于组的策略抽象(GBP)”,目前GBP也是OpenStack的一个孵化项目,未被工作组正式接纳。
GBP认为当前的neutron API只是在连接层面描述了业务的访问与隔离需求,不直观,也不灵活。针对当前大量的三层网络业务需求,GBP引入了策略模型,使用group和policy rule来描述网络业务需求,可以很方便的实现业务的自动化和安全性。
GBP将策略作用的对象称为group,将具有相同策略的虚拟机组合成group,策略是一些规则的集合,每个规则规定了两个group之间的流量的行为,比如重定向、业务链等。
从GBP的模型描述可以看出GBP是一个可以动态的描述网络策略的模型,弥补了Neutron只能静态的描述虚拟机之间的互通隔离的缺陷。
Congress
Congress project是由VMware公司主导,在2014年初启动的一个新项目,其目的是构建在OpenStack所有组件之上的通用的policy as a service,实现IT业务快速自动部署。
Congress允许云管理员和租户使用一种高层次的、通用的、声明式的语言datalog去描述业务逻辑,策略语言不是包括一些确定的策略类型或内嵌的实施策略,而是一种简单的定义哪些云状态是允许的,那些是不允许的。尽管congress成立之初吸引了大批人的关注,并扩展了的Intent的表述方式,然而因其没有清晰统一的抽象模型以及实现上需要多个项目的协同配合,发展的状态没有预期的理想。
ONOS
ONOS(Open Network Operating System)是由SDN技术最早创造发明的斯坦福、伯克利等知名大学联合运营商、设备制造商发起的非营利性开源社区组织,对SDN的发展有着重要影响力,其目标是创建一个开源的SDN网络操作系统,满足运营商对网络性能的电信级要求,满足运营商网络迁移到SDN网络的需求。
ONOS架构中有两个强大的北向接口层:意图框架和全局网络视图。意图框架屏蔽服务运行的复杂性,允许应用向网络请求服务而不需要了解服务运行的具体细节,这就意味着网络运营商和应用开发者可以进行高级编程,只需提出操作意图。目前,ONOS的Intent Framework中已经提出了集中类型的Intent,HostToHost、PathIntent等。目前,ONOS许多项目还处于起步阶段,需要进一步的追踪。
总之,北向接口在决定SDN发展方向与价值上具有举足轻重的意义,在开源和标准上势必存在更加激烈的竞争,最终标准的制定还需要更多市场的考验。
Opendaylight
2014年,IBM、Cisco、Brocade、Juniper等厂商发起Opendaylight项目(简称ODL),旨在打造一个统一的开放SDN平台,以推动SDN技术的创新。ODL项目自成立以来就受到业界的广泛关注,目前已拥有会员,并已经完成4次release,在2016年2月份发布最新版本Beryllium。作为极具影响力的开源社区,ODL吸引了许多关注北向接口项目的参与。
NIC(Network Intent Composition)
2014年底由HP提交了新的项目NIC,目的是提供一种通用的抽象的策略语法,让用户很方便的描述自己的意图。其提出的Intent模型如图9所示,利用对源节点、目的节点之间通信规则的指定和限制,实现对网络通信的控制。另外,Intent期望做成一个统一的Intent平台,整合面向用户意图的不同北向接口,目前,已经有GBP、VTN、NEMO等实现了对NIC的对接。
GBP(Group Based Policy)
除了在OpenStack的贡献之外,GBP也在ODL中提交了开源项目。ODL中的GBP将策略作用的最底层抽象命名为endpoint,可以对应物理网络中的特定设备,可以是虚拟机接口,物理接口或其他网络设备。将具有相同策略的endpoint组合成为group。contract是group之间的契约,契约有一些规则组成,每个规则规定了两个group之间的流量的行为,比如重定向。用户只需指定EPG的范围以及EPG之间的通信规则,即可完成底层网络规则的自动部署。其定义的Intent模型如图10所示。
目前,GBP已经完成了Lithium和Beryllium版本的发布,并提议成为ODL的核心项目。
NEMO(NEtwork MOdeling)
2015年由华为公司提交了NEMO项目,目的是将现有网络操作意图抽象成一系列的网络操作元语,通过这些元语的灵活组合即可灵活的操作网络资源,编排网络处理逻辑,形成丰富的网络应用。NEMO项目提出的Intent模型如图11所示。
NEMO将用户关注的网络操作意图抽象为网络资源和网络行为,资源抽象为Object,即Node、Connection和Flow,对网络行为的操作抽象为Operation(指定完成动作)或Result(指定达到的最终目标)。Intent可表示为Object+Operation, Object+Result等。目前,NEMO项目已经完成了Beryllium的release,并实现常见网络应用场景。
华为提出的NEMO项目一直引领Intent NBI的实践,提供了一套完整的基于意图的实现。 NEMO项目开发了一种面向网络服务的编程语言作为一种新的SDN北向接口形式,打破了传统上“烟囱式”基于场景逐一定义接口的方式,基于Intent的表述模型总结出一套面向网络服务的原语,通过灵活的组合实现任意场景应用的描述与部署,并通过15种简单的语句替代了传统上成百上千的API。NEMO语言以更加自然和直接的方式表达用户的意图,网络应用和开发者在使用NEMO语言描述网络服务时,只需要告诉控制器做什么,而不需要指明如何去做。
NEMO的Intent执行引擎实现了一个网络中间件,隐藏网络实现和部署的复杂性,将高层次的服务级别的Intent转化成真正的网络部署,并通过软件自动化的方式解决网络中资源和策略的冲突。创新提出的三层映射架构,简化了Intent到网络部署的转换,使得每层映射功能清晰,第三方模块和新的算法功能可以快速的集成。
此外,NEMO还提供了一系列的支撑工具,比如沙箱,为测试、仿真和部署都提供了便利,为网络应用提供了一套集成开发环境。
业务定制与业务创新一直倍受运营商的关注。NEMO抓住运营商的需求,面向不同行业用户的意图,基于通用的网络操作模式和以应用为中心的网络模型,为运营商的业务设计人员提供一种简单易用的网络业务模板定制方式。使用NEMO语言可以快速的捕捉行业用户的意图,方便的在应用中描述其对网络的需求,而将网络实现层面的复杂性留给SDN控制器,并通过优化的软件系统,自动实现资源的分配、网络性能的监控、资源与策略的冲突解决,极大的简化了运营商的设计工作并加速了业务创新和新业务的布放。
NEMO将携手标准组织IETF、ONF以及开源社区共同完成Intent NBI、相关模型、语言语法以及Intent引擎的定义和实现。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/118924.html