2016-02-14 by muzi

SDN作为一种新的网络架构,正被应用到越来越多的网络场景中。而网络的关键在于通信,如何使得SDN网络正常运行,并且能够和传统网络相互通信是SDN组网需要解决的基本问题。本文将介绍SDN组网相关解决方案中的数据平面到控制平面的组网解决方案、多SDN域组网解决方案和SDN网络与传统网络组网通信的解决方案。

SDN数据平面到控制平面组网

目前为止,在数据层面到控制到控制平面之间的组网方案主要有两大类:带外组网和带内(in-band)组网。

  • 带外(out-band)组网:

    数据平面到控制平面的控制数据通过专门的控制网络,而不经过数据平面转发,从而将数据平面的数据和控制平面数据隔离运行在两张独立的网络中。在带外 组网方案中,每个交换机都有连接到控制平面的专属线路,而无需通过其他数据平面交换机转发。带外组网可以减少组网的难度和运维的难度。缺点是交换机多时, 链路数量较多。

图1. out-band组网方案

  • 带内(in-band)组网

    带内组网指的是控制数据和数据平面数据可以共享一个物理链路。即数据平面的有些交换机直连控制器,而其他的交换机的需要经过数据平面的链路才能到达控制器。非直交换机的控制数据需要通过数据平面的链路进行转发,并通过直连交换机转发到控制器。此种组网方式可以减少许多交换机到控制器的链路数量,但是配置带内组网比较麻烦,可靠性较低,维护成本也相对要高。

    图2. in-band组网方案

多SDN域组网方案

当网络规模过大时,需要部署多域的组网方案。其中每个SDN域都由各自的控制平面控制。多域组网方案有水平架构和垂直架构两种。水平架构形式的多域组网方案中,域控制平面之间的关系是对等的。而在垂直架构中,则划分为域控制器层和超级控制器层。其中域控制器层负责自身域内的控制,超级控制器层负责管理域间的通信。

  • 水平架构

    实现水平架构的多域控制器的解决方案有分布式集群和东西向接口协议两种方式。部署分布式集群可以实现同类型多控制器实例的协同工作,无法支持异构控制器之间的协同工作。而东西向接口协议支持异构多域控制器之间的协同工作,其通过交换路由等信息实现多域网络通信。水平架构多域组网架构图如图3所示:

图3. 水平架构多域控制器组网方案

  • 垂直架构

    垂直架构的多域控制器组网中超级控制器负责域间通信,而域控制器负责域内的通信。超级控制器相当于集中式的路由器,负责域间的通信,而每一个域由的域控制器模拟成独立的网络域,从而实现全局网络的管理。目前实现垂直架构的多域控制器协同工作的协议有Open eXchange 协议,其组网架构图如图4所示:

图4. 垂直架构多域控制器组网方案

SDN与传统互联

以上介绍的SDN组网仅仅是SDN网络部分的组网,而如何与其他传统网络相互通信则是本小节的内容。根据现实网关功能的设备种类不同,可以将组网方案分为传统设备组网方案和SDN设备组网方案两种。采用传统路由器作为网关方案中,SDN网络作为内部网络运营,而与其他网络通信的工作由传统路由器完成。 而采用SDN设备模拟网关时,由SDN控制器在边缘交换机上模拟网关行为,从而完成与其他域之间的网络通信。

  • 传统网络设备作网关

    在此方案中,采用传统路由器作为网络出口,由其完成和其他路由器之间的路由同步等工作。此方案中,复杂的网关功能由现网设备完成,而SDN控制器只需控制内部网络节点,从而降低了组网的难度,也提升了对内部网络的管控能力。

图5. 采用传统设备作网关方案

  • SDN数据交换机作网关

    SDN设备解决方案中,SDN控制器需将边缘交换机模拟成一个路由器,如运行BGP协议的路由器,从而实现对传统路由协议的响应和支持,向外表现出路由器的特征,进而实现与互联网的互联互通。

图6. 采用SDN设备模拟网关组网方案示意图

总结

作为一名SDN初学者,在平时学习研究中,仅仅需要通过Mininet模拟则可以完成实验。而当真正部署SDN网络时,则需要考虑到很多实际问题,尤其是基本的组网方案。本文从数据平面到控制平面组网、SDN域之间组网和SDN域与传统网络之间组网三个方面简要介绍了SDN组网的相关解决方案。以此作为一个学习的总结,同时也希望这篇文章能帮助到有需要的研究人员。

作者简介:

李呈,2014/09-至今,北京邮电大学信息与通信工程学院未来网络理论与应用实验室(FNL实验室)攻读硕士研究生。

个人博客:www.muzixing.com

 

SDN组网相关解决方案的更多相关文章

  1. 微信小程序入口场景的问题整理与相关解决方案

    前言 最近一段时间都在做小程序. 虽然是第二次开发小程序,但是上次做小程序已经是一年前的事了,所以最终还是被坑得死去活来. 这次是从零开始开发一个小程序,其实除了一些莫名其妙的兼容性问题,大多数坑点都 ...

  2. 关于Entity Framework中的Attached报错相关解决方案的总结

    关于Entity Framework中的Attached报错的问题,我这里分为以下几种类型,每种类型我都给出相应的解决方案,希望能给大家带来一些的帮助,当然作为读者的您如果觉得有不同的意见或更好的方法 ...

  3. web开发相关解决方案

    HTML5 API 应用 History.js - gracefully supports the HTML5 History/State APIs pushState + ajax Notify.j ...

  4. CORS 跨域 实现思路及相关解决方案

    本篇包括以下内容: CORS 定义 CORS 对比 JSONP CORS,BROWSER支持情况 主要用途 Ajax请求跨域资源的异常 CORS 实现思路 安全说明 CORS 几种解决方案 自定义CO ...

  5. SDN可靠性相关

    A subtree-based approach to failure detection and protection for multicast in SDN FRONTIERS OF INFOR ...

  6. CORS跨域实现思路及相关解决方案

    本篇包括以下内容: CORS 定义 CORS 对比 JSONP CORS,BROWSER支持情况 主要用途 Ajax请求跨域资源的异常 CORS 实现思路 安全说明 CORS 几种解决方案 自定义CO ...

  7. iOS上架被拒理由及相关解决方案记录

    注:苹果客服中国区电话:4006 701 855 最近公司上线一个电动车工具类项目,被拒无数次,今天上架了,记录一下 01 苹果拒绝理由(内购和后台定位) We noticed that your a ...

  8. 启动jemeter 报错相关解决方案

    1:当启动jemeter时报错"页面文件太小,无法完成操作" 如图: 是说明分配的内容不足,即可调整内存重启即可解决 1):打开:控制面板>系统和安全>系统 2):点击 ...

  9. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

随机推荐

  1. dotNET使用DRPC远程调用运行在Storm上的Topology

    Distributed RPC(DRPC)是Storm构建在Thrift协议上的RPC的实现,DRPC使得你可以通过多种语言远程的使用Storm集群的计算能力.DRPC并非Storm的基础特性,但它确 ...

  2. 烂泥:vcenter通过模板部署vm

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 前一篇文章我们介绍了有关vcenter5.5的安装与配置,这篇文章我们再来介绍下,如何 ...

  3. 烂泥:mysql帮助命令使用说明

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在安装.管理和使用mysql过程中,你是不是需要记忆很多的mysql命令.而且对于新手来说,很不多的命令不知道该如何应用,对于老手来说很多命令时间长了忘 ...

  4. sizeof和strlen()区别

    sizeof关键字和strlen()标准函数都可以用来测试字符串的长度,但是两者有很大的不同 sizeof只能在本函数内, 使用""和不指定长度的字符数组中才能测出字符串的真实长度 ...

  5. Centos 7 ASP.NET Core 1.0 Docker部署

    先决条件 64位,内核3.10以上,查看当前的内核版本,打开一个终端使用uname -r显示您的内核版本             安装 sudo yum update     sudo tee /et ...

  6. 关于TreeView的选中事件

    在使用TreeView的选中事件时,发现,SelectAfter在第一次选中时触发,你再次点击时这个事件并不能引发它.所以找了找,发现有另两种解决办法. 最好的就是使用:NodeMouseClick, ...

  7. Arch Linux sudo: PAM authentication error: Module is unknown [Solved!]

    问题描述: 我的 Arch Linux 已经用了快半年多,由于 Arch Linux 的滚挂问题,我从没有直接升级过系统.软件版本以及库自然落后了一些. 就在我准备需要用到 NFS 时,挂载网络文件系 ...

  8. C中的数组与指针问题

    反复在数组名与指针上犯错误,特记录下. ,,,,}; int *p, *q; p = (); q = (); *(p+1)?   *(q-1) ? 答案是 3, 5.这里主要涉及的问题就是指针参与运算 ...

  9. ajax小结

    1. http是一种无状态协议 2. http请求:四部分组成 ① http 请求的方法或动作,如:GET / POST ② 正在请求的URL,总得知道请求的地址是什么 ③ 请求头,包含一些客户端环境 ...

  10. AC日记——忽略大小写的字符串比较 openjudge 1.7 16

    16:忽略大小写的字符串比较 总时间限制:  1000ms 内存限制:  65536kB 描述 一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII ...