北向接口(Northbound Interface)是为厂家或运营商进行接入和管理网络的接口,即向上提供的接口。

南向接口(Southbound Interface)是提供对其他厂家网元的管理功能,支持多种形式的接口协议。

SDN控制器及北向接口技术初探

控制层是SDN的大脑,负责对底层转发设备的集中统一控制,同时向上层业务提供网络能力调用的接口,在SDN架构中具有举足轻重的作用,SDN控制器也是SDN关注的焦点。从技术实现上看,控制器除了南向的网络控制和北向的业务支撑外,还需要关注东西的扩展,以避免SDN集中控制导致的性能和安全瓶颈问题,SDN控制器也在南向、北向、东西向上引入了相应的核心技术,有效解决与各层通信以及控制集群横向扩展的难题。

当前,业界有很多基于OpenFlow控制协议的开源的控制器实现,例如NOX、Onix、Floodlight等,它们都有各自的特色设计,能够实现链路发现、拓扑管理、策略制定、表项下发等支持SDN网络运行的基本操作。虽然不同的控制器在功能和性能上仍旧存在差异,但是从中已经可以总结出 SDN控制器应当具备的技术特征,从这些开源系统的研发与实践中得到的经验和教训将有助于推动SDN控制器的规范化发展。

另外,用于网络集中化控制的控制器作为SDN网络的核心,其性能和安全性非常重要,其可能存在的负载过大、单点失效等问题一直是SDN领域中亟待解决的问题。当前,业界对此也有了很多探讨,从部署架构、技术措施等多个方面提出了很多有创见的方法。

SDN控制器对网络的控制主要是通过南向接口协议实现,包括链路发现、拓扑管理、策略制定、表项下发等,其中链路发现和拓扑管理主要是控制其利用南 向接口的上行通道对底层交换设备上报信息进行统一监控和统计;而策略制定和表项下发则是控制器利用南向接口的下行通道对网络设备进行统一控制。

SDN北向接口是通过控制器向上层业务应用开放的接口,其目标是使得业务应用能够便利地调用底层的网络资源和能力。通过北向接口,网络业务的开发者 能以软件编程的形式调用各种网络资源;同时上层的网络资源管理系统可以通过控制器的北向接口全局把控整个网网络的资源状态,并对资源进行统一调度。因为北 向接口是直接为业务应用服务的,因此其设计需要密切联系业务应用需求,具有多样化的特征。同时,北向接口的设计是否合理、便捷,以便能被业务应用广泛调用,会直接影响到SDN控制器厂商的市场前景。

与南向接口方面已有OpenFlow等国际标准不同,北向接口方面还缺少业界公认的标准,因此,北向接口的协议制定成为当前SDN领域竞争的焦点, 不同的参与者或者从用户角度出发,或者从运营角度出发,或者从产品能力角度出发提出了很多方案。据悉,目前至少有20种控制器,每种控制器会对外提供北向接口用于上层应用开发和资源编排。虽然北向接口标准当前还很难达成共识,但是充分的开放性、便捷性、灵活性将是衡量接口优劣的重要标准,例如REST API就是上层业务应用的开发者比较喜欢的接口形式。部分传统的网络设备厂商在其现有设备上提供了编程接口供业务应用直接调用,也可被视作是北向接口之一,其目的是在不改变其现有设备架构的条件下提升配置管理灵活性,应对开放协议的竞争。

控制器负责整个SDN网络的集中化控制,对于把握全网置资源视图、改善网络资源交付都具有非常重要的作用。但控制能力的集中化,也意味着控制器局的 安全性和性能成为全网的瓶颈;另外,单一的控制器也无法应对跨多个地域的SND网络问题,需要多个SDN控制器组成的分布式集群,以避免单一的控制器节点 在可靠性、扩展性、性能方面的问题。目前,用于多个控制器之间沟通和联系的东西向接口还没定义标准,但专家表示,一些非常成熟的集群技术可以被运用到 SDN网络中来解决上述难题。

SDN交换机及南向接口技术初探

SDN的核心理念之一就是将控制功能从网络设备中剥离出来,通过中央控制器实现网络可编程,从而实现资源的优化利用,提升网络管控效率。

工作在基础设施层的SDN交换机虽然不在需要对逻辑控制进行过多考虑,但作为SDN网络中负责具体数据转发处理的设备,为了完成高速数据转发,还是要遵循交换机工作原理。本质上看,传统设备中无论是交换机还是路由器,其工作原理都是在收到数据包时,将数据包中的某些特征域与设备自身存储的一些表项进行比对,当发现匹配时则按照表项的要求进行相应处理。SDN交换机也是类似的原理,但是与传统设备存在差异的是,设备中的各个表项并非是由设备自身根据周边的网络环境在本地自行生成的,而是由远程控制器统一下发的,因此各种复杂的控制逻辑(例如链路发现、地址学习、路由计算等等)都无需在SDN交换机中实现。

SDN交换机可以忽略控制逻辑的实现,全力关注基于表项的数据处理,而数据处理的性能也就成为评价SDN交换机优劣的最关键指标,因此,很多高性能转发技术被提出,例如基于多张表以流水线方式进行高速处理的技术。另外,考虑到SDN和传统网络的混合工作问题,支持混合模式的SDN交换机也是当前设备层技术研发的焦点。同时,随着虚拟化技术的出现和完善,虚拟化环境将是SDN交换机的一个重要应用场景,因此SDN交换机可能会有硬件、软件等多种形态。 例如,OVS(Open vSwitch,开放虚拟交换标准)交换机就是一款基于开源软件技术实现的能够集成在服务器虚拟化Hypervisor中的交换机,具备完善的交换机功能,在虚拟化组网中起到了非常重要的作用。

SDN交换机的出现,对传统的网络设备厂商造成了最直接的威胁,如何将新兴的网络技术与传统设备产品的优势相融合,是这些厂商正在苦苦思索的问题。 虽然SDN交换机已经对传统的网络产业链造成了巨大的冲击,但是仅凭单独的数据转发设备还不足以支撑起整个SDN的天空,未来更激烈地竞争必将会在SDN 的控制层和应用层发生。

SDN交换机只负责网络高速转发,保存的用于转发决策的转发表信息来自控制器,SDN交换机需要在远程控制器的管控下工作,与之相关的设备状态和控制指令都需要经由SDN的南向接口传达,从而实现集中化统一管理。

当前,最知名的南向接口莫过于ONF倡导的OpenFlow协议。作为一个开放的协议,OpenFlow突破了传统网络设备厂商对设备能力接口的壁垒,经过多年的发展,在业界的共同努力下,当前已经日臻完善,能够全面解决SDN网络中面临的各种问题。

当前,OpenFlow已经获得了业界的广泛支持,并成为了SDN领域的事实标准,例如OVS交换机就能够支持OpenFlow协议。 OpenFlow解决了如何由控制层把SDN交换机所需的用于和数据流做匹配的表项下发给转发层设备的问题,同时ONF还提出了OF-CONFIG协议, 用于对SDN交换机进行远程配置和管理,其目标都是为了更好地对分散部署的SDN交换机实现集中化管控。

OpenFlow在SDN领域中的重要地位不言而喻,甚至大家一度产生过OpenFlow就等同于SDN的误解。实际上,OpenFlow只是基于 开放协议的SDN实现中可使用的南向接口之一,后续可能还会有很多的南向接口(例如ForCES、PCE-P等等)被陆续应用和推广。但必须承认的 是,OpenFlow就是为SDN而生的,因此它与SDN的契合度最高。相信在以ONF为领导的产业各方的大力推动下,它在未来的发展前景也将更加明朗。

SDN交换机及东西向接口技术初探

在开放了南北向接口以后,SDN发展中面临的一个问题就是控制平面的扩展性问题,也就是多个设备的控制平面之间如何协同工作,这涉及到SDN中控制平面的东西向接口的定义问题。如果没有定义东西向接口,那么SDN充其量只是一个数据设备内部的优化技术,不同SDN设备之间还是要还原为IP路由协议进行互联,其对网络架构创新的影响力就十分有限。如果能够定义标准的控制平面的东西向接口,就可以实现SDN设备“组大网”,使得SDN技术走出IDC内部和数据设备内部,成为一种有革命性影响的网络架构。SDN控制平面性能拓展方案中,目前的设计方案有两种,一种是垂直架构的,另一种是水平架构的。垂直架构的实现方案是在多个控制器之上再叠加一层高级控制层,用于协调多个异构控制器之间的通信,从而完成跨控制器的通信请求。水平架构中,所有的节点都在同一层级,身份也相同,没有级别之分。

垂直架构                                                                    水平架构

南向接口目前面临和需要解决的问题:

1、各厂商私有控制器南向接口不统一,驱动模型不一致,互操作性差;

2、厂商设备对多控制器支持能力不一致,已有设备升级滞后,新设备对于SDN网络功能的支持较好。

北向接口面临和需要解决的问题:

1、控制器北向接口没有统一标准,调用RESTful接口缺乏详细的返回信息,无法准确判断故障;

2、目前的行业状况使得编排器无法屏蔽底层网络现实和网络状态,需要各厂商提供适配层。

解读SDN的东西、南北向接口的更多相关文章

  1. 一文解读SDN (转)

    一. 什么是SDN? SDN字面意思是软件定义网络,其试图摆脱硬件对网络架构的限制,这样便可以像升级.安装软件一样对网络进行修改,便于更多的APP(应用程序)能够快速部署到网络上. 如果把现有的网络看 ...

  2. 解读SDN核心技术:OpenFlow深入分析(转载)

    1 OpenFlow简介 OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabli ...

  3. SDN核心技术剖析和实战指南---读书笔记

    第一章 SDN定义如下: SDN是一种新兴的基于软件的网络架构及技术,其最大的特点在于具有松耦合的控制平面与数据平面.支持集中化的网络状态控制.实现底层网络设施对上层应用的透明. SDN和NFV: O ...

  4. 大规模SDN云计算数据中心组网的架构设计

    本文首先分析了在大规模SDN数据中心组网中遇到的问题.一方面Underlay底层组网规模受限于设备实际的转发能力和端口密度,单一Spine-leaf的Fabric架构无法满足大规模组网的需求:另一方面 ...

  5. SDN/NFV运营商商业化部署

    三大运营商发布未来网络架构,并逐步加快SDN/NFV商业化部署的步伐.中国联通发布其新一代网络架构<CUBE-Net 2.0白皮书>,并与20多家合作伙伴共同启动了“新一代网络”合作研发计 ...

  6. 万台规模下的SDN控制器集群部署实践

    目前在网络世界里,云计算.虚拟化.SDN.NFV这些话题都非常热.今天借这个机会我跟大家一起来一场SDN的深度之旅,从概念一直到实践一直到一些具体的技术. 本次分享分为三个主要部分: SDN & ...

  7. SDN期末作业

    期末项目 代码仓库:传送门 视频:组长已经发送给朱老师 选题:负载均衡场景3 选题内容: 该拓扑是数据中心拓扑的一部分,其中h1是数据中心外的一台客户机,h2-h5是数据中心内的服务器,请根据该拓扑实 ...

  8. 微信公开课发布微信官方教程:教你用好微信JS-SDK接口

    微信公众平台开放JS-SDK(微信内网页开发工具包),说明文档已经有相关使用方法和示例了,很多同学觉得不是很直观,为此微信公开课发布微信官方教程:教你用好微信JS-SDK接口. 1.分享类接口:支持获 ...

  9. 官方教程:教你用好微信JS-SDK接口

    微信开放JS-SDK接口,开发者和行业用户可谓是欢欣鼓舞.奔走相告,目测将激起一大波第三方开发商的创新产品!真真是H5开发者的利好!但也有用户表示,还不了解JS-SDK接口到底是啥,究竟怎么用.现在, ...

随机推荐

  1. Python的字节编译

    1.什么是Python的.pyc文件 在python中 .pyc文件是指以.pyc为后缀名的这一类文件,在我们的python的安装目录里,找到模块所在的目录Lib会看到很多以.py结尾的模块文件,与之 ...

  2. nginx-(/usr/local/nginx)配置编译

    ./configure \ --prefix=/usr/local/nginx \ --sbin-path=/usr/local/nginx/sbin/nginx \ --conf-path=/usr ...

  3. Myeclipse中web project各种常见错误及解决方法(持续更新)

    创建web project时的问题 error:Install Dynamic web Module Facet卡住 solution:把网络关掉再创建就可以 Servlet error:The se ...

  4. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  5. 输出 n=6 的三角数字阵(JAVA基础回顾)

    package itcast.feng; import java.util.Scanner; //需求:输出 n=6 的三角数字阵 //1 //2 3 //4 5 6 //7 8 9 10 //11 ...

  6. 非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛

    非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛 Glenn Berry 大牛会对这个脚本持续更新 -- SQL Server 2012 Diagnost ...

  7. Redis系列(五)-Opserver的监控

    阅读目录: 基本介绍 使用配置 部署实例 面板属性 基本介绍 Opserver是Stack Exchange的一个开源监控系统,基于Net.MVC开发,所以Net程序员可以轻松基于它二次开发.它主要监 ...

  8. 给公司部门设计的SOA架构

    新来老大年前开会说各位同学,公司业务越来越重,未来几年要成倍增长......,要梳理出一套新架构,才能更好的支持N万用户.....,以后升职加薪当上....打败..... 想想还有点小激动呢,于是过年 ...

  9. 缓存篇(Cache)~大话开篇

    回到占占推荐博客索引 闲话杂淡 想写这篇文章很久了,但总是感觉内功还不太够,总觉得,要写这种编程领域里的心法(内功)的文章,需要有足够的实践,需要对具体领域非常了解,才能写出来.如今,感觉自己有写这种 ...

  10. 2013 duilib入门简明教程 -- 部分bug 2 (14)

        上一个教程中提到了ActiveX的Bug,即如果主窗口直接用变量生成,则关闭窗口时会产生崩溃            如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口 ...