1. 北向接口

北向接口提供了 SDN 中开发者与控制器间的交互功能。从更为宽泛的角度考虑,北向接口在 SDN 控制器中的作用类似于命令行在传统NOS 中的作用,都是实现了网络管理者对网络的设计与管理。

上图给出了ONF组织对于SDN北向接口的设计层次。其中,

  • 控制器基础功能 API提供了控制平面中最为底层的能力,例如,通过这种北向接口可以控制南向信令的收发。
  • 网络服务 API 提供了基础网络服务的编程接口,例如,通过开放二层交换与三层路由的信息以保障网络连通性。
  • 北向接口应用 API 提供了业务逻辑层的抽象,例如 QoS 策略的制定等。

控制器的北向接口可以实现一些基本的、更为通用的网络物理/逻辑抽象,如拓扑视图、虚拟化网络切片、链路/网络层数据库接口,以 API 的形式开放出强大的二次开发能力,使开发者可以着力关注更高层的应用业务,而非底层硬件实现。

如下图所示,给出了ONF 组织对北向接口功能集的初步设计

上图中最底层为控制器收发信令的基础能力,信令可以是 OF 消息,也可以是其他的南向接口协议。往上面一层是自验证能力、开发所用的编程语言以及设备的抽象层,这三层提供了网络转发设备级的编程接口。网络切片、拓扑生成、路径发现、路由与交换等提供了网络层的编程接口。其余部分则提供了更高层的业务逻辑,如服务链增值、QoS、统一通信等。

这种设计架构的目标是提供一套层次清晰、功能完善的北向接口,但是架构的复杂性也大大增加了设计的难度,这部分工作目前仍在进行中。

2. 东西向接口

控制平面可以由多个控制器实例构成一个大的集群。各控制器实例间通过 SDN 东西向接口协议来实现控制信息的交互,从而根据全局网络信息制定策略,实现逻辑上的集中控制。

接下来简单介绍三种SDN东西向接口方案。

  • HyperFlow
           2010 年, Tootoocian提出的 HyperFlow采用了分布式控制平面的思想。HyperFlow 通过部署多台控制器来管理 OpenFlow 交换机,每台控制器同步全网络视图的同时,只需要管理特定区域中的 OpenFlow 交换机。

  • SDNi
           2012 年,华为公司也提出了 SDN 控制平面东西向接口协议 SDNi。SDNi是一个用于 Domain 控制器之间交换数据的协议,其定义了 SDN Domain 及其组件,以及 SDNi 如何帮助跨域通信等内容。

  • East-West Bridge(东西桥)
           2013 年,清华大学的毕军教授团队提出了 East-West Bridge的概念,允许控制器通过标准化插件的形式对其进行集成,从而实现异构 SDN 控制器间标准化的东西向通信。
           EWBridge 的设计中,控制器以 Full-Mesh(全网状)的拓扑形式进行组网,它主要实现了控制器发现、网域视图信息维护和多域网络视图信息交互等功能,其工作原理如下图所示。

值得一提的是,控制器实例间控制信息的同步问题,对于实现 SDN 的逻辑集中控制至关重要,但是在技术上它却是极其复杂的。

在 Juniper 推出的SDN 解决方案 OpenContrail 架构中,控制节点间通过 IBGP(Interior Border Gateway Protocol,内部 BGP)交换路由,保证所有的控制节点中控制信息的同步,OpenContrail 中控制器节点通信模式如下图所示。

通过使用 IBGP 作为 SDN 东西向接口协议,OpenContrail控制平面的性能得到了极大的提升,如通过类似 BGP 路由反射(Route Reflection,RR)的机制在控制节点之间引入状态汇总和分片,即可在网络规模增大、控制信息激增时保证控制平面的可扩展性。

不过,IBGP 要求控制节点逻辑上以 Full Mesh的拓扑形式互连,而且协议的完备性也往往意味着高复杂度,这些都对控制平面的维护提出了不小的挑战,虽然如此,OpenContrail 设计的成功说明利用传统分布式协议实现 SDN 东西向接口协议的确是一个值得借鉴的思路。
 
 
参考资料:
《SDN软件定义网络核心原理与应用实践》

SDN软件定义网络 学习笔记(3)--北向接口、东西向接口相关推荐

  1. SDN软件定义网络 学习笔记(1)--基本概念

    SDN软件定义网络 学习笔记(1)--基本概念 1. 定义 2. 提出背景 3. 体系结构 1. 定义 软件定义网络(Software Defined Network,SDN),顾名思义,SDN 与传 ...

  2. SDN软件定义网络 学习笔记(4)--数据平面

    SDN软件定义网络 学习笔记(4)--数据平面 1. 简介 2. SDN数据平面架构 2.1 传统网络交换设备架构 2.2 SDN交换设备架构 2.3 数据平面架构图 3. SDN芯片与交换机 3.1 ...

  3. SDN(Software Defined Network) 软件定义网络学习

    SDN(Software Defined Network) 软件定义网络学习 SDN是啥? 简单来说就是软件定义网络!其旨在对现有的网络架构进行重构,使得我们能够像安装软件一样对网络进行修改,加快部署 ...

  4. 关于SDN软件定义网络和NFV网络功能虚拟化

    1.SDN软件定义网络 在传统的网络中,各个转发节点(路由器.交换机)都是独立工作的,内部管理命令和接口也是厂商私有的,不对外开放.而SDN(Software Defined Networking)网 ...

  5. SDN软件定义网络概述,netperf,scapy网络命令简单使用。

    目录 SDN网络架构 SDN(面向网络架构) sdn控制器的三个主要角色: sdn关键特征: sdn网络架构的三层模型: sdn面临的挑战 可靠性问题: 解决方案: 开放能力: netperf命令 环 ...

  6. python中socket模块常用吗_python网络学习笔记——socket模块使用记录

    此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...

  7. 深度学习(三十二)半监督阶梯网络学习笔记

    半监督阶梯网络学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50877704 作者:hjimce 一.相关理论 这几年深度学习声名鹊起,一 ...

  8. 科普:SDN(软件定义网络)

    http://www.zdnet.com.cn/wiki-SDN SDN(软件定义网络) 软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean s ...

  9. SDN软件定义网络之流表及其组成

    文章目录 SDN软件定义网络之流表 流表由三个组成部分组成--包头域.计数器.动作表 包头 计数器功能 动作表 交换机端口:物理.逻辑.保留 保留端口参数: 流表动作类型 数据包处理流程 版本更新流表 ...

最新文章

  1. java命令行编译时提示找不到或无法加载主类的问题
  2. MySQL查询结果复制到新表(更新、插入)
  3. 数字信号处理篇(一) 采样定理
  4. boost::mpl::less相关的测试程序
  5. 360获公安部“优秀技术支持单位”等七项荣誉
  6. python随机猜数字游戏_Python小游戏——猜数字教程(random库教程)
  7. 较流行的4个开源协议
  8. TestNG Eclipse插件
  9. DAY21 反射(hasattr,getattr,setattr,delattr)
  10. nv21转jpg c语言,Yuv420转Jpeg(C语言实现)
  11. python whl文件下载网址
  12. 寻路系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  13. 幂运算的O(lgn)算法
  14. oss上传判断_React实现阿里云OSS上传文件的示例
  15. nginx启用reuseport
  16. python爬取皮肤_如何用Python爬取LOL官网全英雄皮肤
  17. 汽车零部件行业需求分析及解决方案
  18. 实用Ip、手机、身份证归属地查询API
  19. 使用DISM修复系统
  20. JavaScript 原生js实现鼠标拖拽移动盒子图片

热门文章

  1. 使用vasp计算dos(态密度)的一些思考
  2. win7 32位的4g内存可用内存只有2g到3g怎么解决?
  3. 天玑9200支持电影模式,自动追焦配合背景虚化,零基础也能拍大片
  4. Window11移动硬盘无法正常弹出怎么办?
  5. FPS游戏透视源码!
  6. 能够更便捷管理菜单栏图标的Bartender 4 Mac中文版
  7. Xshell中鼠标选中内容自动换行ctrl+c解决办法
  8. java machine 报错_Rhapsody启动过程显示[Cannot Find Java Virtual Machine file]错误信息
  9. Packet Tracer--配置帧中继
  10. 最新~涵盖全微服务操作的Spring Cloud 文档竟出自Alibaba