DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 973|回复: 0
打印 上一主题 下一主题

[待整理] 软件定义网络:正在进行的网络变革

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-26 17:57:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
当前,网络已经成为支撑现代社会发展以及技术进步的重要基础设施之一,它深深地改变了人们的生产、生活和学习方式;然而,传统网络架构越来越不能满足当今企业、运营商以及用户的需求。传统互联网由极其复杂的交换机、路由器、终端以及其他设备组成,这些网络设备使用着封闭、专有的内部接口,并运行着大量的分布式协议。在这种网络环境中,对于网络管理人员、第三方开发人员(包括研究人员),甚至设备商来说,网络创新都是十分困难的。
       
        例如,研究人员不能够验证他们的新想法;网络运营商难以针对其需求定制并优化网络,难以使得他们的收益最大化;甚至对于设备商来说,也不能及时地创新以满足用户的需求。
       
        封闭的网络设备所带来的结果是:网络依旧面临着诸多问题与挑战,如安全性、健壮性、可管理性以及移动性等等;网络维护成本仍然居高不下,网络管理需要大量的人工配置等等。
       
        近年来,逐渐兴起的SDN正试图打破这种僵局,并成为了近年来学术界和工业界讨论的热点。
       
        1 SDN的架构
       
        1.1 SDN架构的特点
       
        SDN是软件定义网络的简称,其核心理念是使网络软件化并充分开放,从而使得网络能够像软件一样便捷、灵活,以此提高网络的创新能力。通常意义上来讲,SDN是指从发展而来的一种新型的网络架构,其前身是斯坦福的用于企业集中安全控制的Ethane项目[2].
       
        2008年斯坦福大学的Nick Mckeown教授将其命名为OpenFlow,后经由斯坦福项目推广,以及在大型网络-全球网络创新环境(GENI)项目中的应用,该概念被逐渐扩展并成为了。
       
        图1描述了SDN架构的逻辑视图。SDN的基本网络要素包括:逻辑上集中的SDN控制器,它是基于软件的控制器,负责维护全局网络视图,并且向上层应用提供用于实现网络服务的可编程接口(通常也称为“北向接口”);控制应用程序,该程序运行在控制器之上,通过控制器提供的全局网络视图,控制应用程序可以把整个网络定义成为一个逻辑的交换机,同时,利用控制器提供的应用编程接口,网络人员能够灵活地编写多种网络应用,如路由、多播、安全、接入控制、带宽管理、流量工程、服务质量等;转发抽象,转发抽象通常称为“南向接口”,SDN控制器通过利用SDN提供的转发平面的网络抽象来构建全局网络视图。
       
       
         
       
        由此可知SDN的基本特征:
       
        控制与转发分离。转发平面由受控转发的设备组成,转发方式以及业务逻辑由运行在分离出去的控制面上的控制应用所控制。
       
        控制平面与转发平面之间的开放接口。SDN为控制平面提供开放的网络操作接口,也称为可编程接口。通过这种方式,控制应用只需要关注自身逻辑,而不需要关注底层更多的实现细节。
       
        逻辑上的集中控制。逻辑上集中的控制平面可以控制多个转发面设备,也就是控制整个物理网络,因而可以获得全局的网络状态视图,并根据该全局网络状态视图实现对网络的优化控制。
       
        1.2 SDN的实例——OpenFlow
       
        提到SDN,必然要涉及控制平面与转发平面之间的接口定义,作为架构中控制平面与转发平面之间转发抽象定义的第一个实例,协议在提出的初期就受到业界的广泛关注,后经过GENI项目的推进以及多家IT/互联网企业的参与,现已形成强大的产业联盟。因此,业界普遍选择OpenFlow协议作为中控制平面与转发平面之间的通信接口,并围绕其建立一系列的网络操作系统、控制应用以及相关的组件等。
       
        OpenFlow的成功与其简单高效的特点密不可分。OpenFlow架构十分简洁,如图2所示,OpenFlow交换机由内部转发流表以及用来与外部控制器进行通信的安全通道组成。为了使远端的控制应用能够对转发平面的网络设备进行编程,OpenFlow协议指定了一系列基本操作。通过,SDN控制应用可以直接访问并操控转发平面中的网络设备,交换机则使用流表流水线来进行数据包匹配与数据包转发。
           
         
         
       
        如图3所示,OpenFlow交换机中的每个流表中含有多条流表项,每条流流表项由匹配域、优先级、统计域以及一系列的转发指令组成。控制器可以利用OpenFlow协议对这些流表项进行添加、删除或者修改操作,当数据包匹配到某个流表项时,该表项对应的指令集合将被触发。OpenFlow支持最基本的动作,包括转发、丢弃、群组操作、入队以及加/去标签等。OpenFlow通过对网络中“流”的控制来达到对网络进行灵活控制的目的。
           
         
         
       
        此外,OpenFlow支持的多种控制方式也有利于其在多种网络环境中的部署。首先,基于OpenFlow的完全不会受网络规模的影响,分布式控制器能够很好地提高网络的可扩展性。其次,OpenFlow中对“流”的定义十分灵活,这也就使得能够对网络进行更灵活的控制。例如,在需要进行细粒度控制的网络场景中,可以逐流建立流表项并通过逐微流的精确匹配实现对网络的精确控制;在流量较大的网络环境中,可以使用通配流表来对汇聚流进行转发,降低流表项数目对转发节点内存空间的冲击。
       
        最后,控制平面建立流表项的方式也十分灵活。控制平面既可以被动地建立流表项,由新流来触发流表项的建立,也可以主动地建立流表,提前对转发设备的转发行为进行配置,从而提高转发效率。OpenFlow细粒度的、基于流的转发能力,使得网络控制变得十分灵活,使其能够实时地对网络应用、用户、会话的需求做出不同的响应。
       
        1.3 SDN网络虚拟化工具
       
        ——FlowVisor
       
        网络虚拟化是未来网络的发展方向之一。在基于OpenFlow的中,FlowVisor能够有效地实现网络虚拟化。
       
        FlowVisor是一个特殊的控制器,主要作为OpenFlow交换机与多个OpenFlow控制器之间的透明代理。FlowVisor可以将物理网络分成多个逻辑网络,也称为网络分片,并为网络管理人员提供广泛定义的规则以实现对网络的管理。FlowVisor通过抽象层来分割物理网络,它位于一组交换机和SDN或多个网络之间,可管理带宽的使用、CPU利用率的管理统计和流表的配置等,这十分类似于管理程序位于服务器硬件和软件之间,以支持多个虚拟操作系统的运行。正如管理程序依赖于标准x86指令来虚拟化服务器一样,FlowVisor使用标准OpenFlow指令集来管理交换机。由于所有这些规则都是通过流量表定义的,因此,无论是从带宽还是CPU使用率来看,网络虚拟化几乎没有增加额外的开销。
       
        目前FlowVisor已经被部署在美国各地的一些大型校园网中(例如斯坦福)。两个以研究为重点的大型网络GENI和Internet 2上也在使用进行网络虚拟化的管理。
       
        2 SDN的发展与应用
       
        2.1 SDN广受关注
       
        当前,SDN已逐渐成为了学术界、工业界以及标准化组织广泛关注并讨论的热点。
       
        在学术界方面,近年来,世界各国纷纷开展了围绕着SDN的科研项目。美国科学基金会(NSF)支持的计划[4]在OpenFlow发展的初期就率先对OpenFlow予以了资金支持并实施了“GENI Enterprise”计划。目前,OpenFlow已经在美国多所高校、以及其他的多个科研机构中得到部署。欧盟第七框架计划也于2010年开始支持SDN的相关研究,并支持了OFELIA[5]、SPARC[6]以及等研究项目。2012年4月,领域中又诞生了一个新的研究机构:美国斯坦福大学与伯克利大学联合12家公司成立了开放网络研究中心(ONRC)[8],其中包括了Cisco、、华为及Juniper等网络公司。目前,SDN的相关研究已经遍布全球的各个角落,比较有影响力的研究机构包括斯坦福大学、普林斯顿大学、康乃尔大学、多伦多大学、巴西CPqD、爱立信研究中心、NEC研究中心、研究中心、德国电信T-Labs研究中心等等。于此同时,SDN/OpenFlow也在多个国家得到部署,主要包括:美国、巴西、加拿大、德国、英国、意大利、西班牙、日本等。
       
        SDN在得到学术界的普遍认可的同时,工业界也对这种新的网络架构表达出浓厚的兴趣。从推出开始,NEC公司就对OpenFlow的相关硬件进行了跟进性的开发,并推出了多款支持OpenFlow协议的交换机。此外,HP、Junifer、pronto等公司也相继推出了支持OpenFlow的交换机、路由器、无线网络接入点(AP)等网络设备。2011年,开放网络基金会成立[9],专门负责OpenFlow标准和规范的维护和发展,并召开了第一届开放网络峰会,为OpenFlow和SDN做了很好的介绍和推广,该基金会成员基本涵盖了所有网络及互联网领域的商业巨头。在2012年初召开的第二届开放网络峰会上,Cisco宣布投入亿美元于一个专门致力于SDN产品研发的内部创业公司Insieme;宣布已经在其全球各地的数据中心骨干网络中大规模地使用。最近,Facebook也宣布在其数据中心中使用了OpenFlow/SDN技术。
       
        在标准化方面,开放网络基金会(ONF)致力于推动SDN技术的标准化和商业化,已于2012年4月发布了协议的最新v1.3版本。此外,作为互联网协议标准的主要制订者,互联网工程任务组(IETF)也在积极开展SDN的相关工作。2011年月IETF第82次会议上的SDNP BoF吸引了包括运营商以及设备商在内的多人参加,主要讨论了SDN的需求、架构以及典型的应用场景。在第84次会议上,SDN更是成为技术全会的热门话题,Cisco、以及马里兰大学分别进行了相关的主题演讲。此外,负责进行互联网演进相关的相对长期性研究的互联网研究任务组(IRTF),也于会议上举行了SDNRG会议,并引起的极大关注。
       
        2.2 SDN发展迅速
       
        经过了几年的发展,SDN的相关技术正呈现着百花齐放的发展态势。
       
        在控制平面方面,从第一个控制器平台NOX开始,业界已逐渐出现一系列的基于OpenFlow的网络控制器平台。这些控制器平台在向下封装与交换机通信的OpenFlow协议的同时,也向上层网络控制应用提供相对更高层的开放编程接口。当前主流的控制器平台主要包括:NOX,,Onix,Floodlight,Beacon以及等。
       
        在转发设备方面,SDN的转发设备已不再局限于有线转发设备。支持OpenFlow的转发设备能够部署在更广阔的网络环境中,如适用于虚拟环境的Open vSwitch以及能够工作在无线环境中的Pantou等。于此同时,随着设备厂商的加入,支持的转发设备也正逐渐从基于软件的转发设备向基于高速硬件的转发设备过渡。
       
        在控制平面与转发平面的通信接口方面,开放网络基金会ONF于年6月发布了Openflow v1.3版本。与早期版本相比,新版本的协议更加灵活。除了保留版本中对多级表、群组表、标签以及虚端口等特性的支持,以及OpenFlow v1.2版本中对IPv6以及可扩展匹配的支持之外,版本规范了基于参数类型、长度和数值(TLV)的能力表达框架,还增加了对逐流计量以及IPv6扩展头处理等功能的支持。OpenFlow v1.4版本的标准化工作计划也将在2013年上半年完成。
         
         
        随着SDN相关技术研究的不断深入,其研究活动主要可以在以下方面展开:
       
        (1)SDN控制应用的研究。
       
        这种开放的网络架构能够用于多种网络环境中,不同场景中SDN控制应用需要从不同的网络环境特点出发,因地制宜,合理有效地进行有针对性的控制应用设计。
       
        (2)SDN网络抽象。在SDN架构中,控制器平台向上层控制应用提供高层抽象应用程序编程接口(API),也称为“北向接口”。现有的控制器平台实现已经提供了一些基本的抽象,然而利用基本抽象来编写网络控制程序往往也是比较复杂并且容易出错,如何去设计更高层的网络编程抽象也是一个需要解决的问题。当前,业界比较认可的编程API需求有提供通用的编程抽象,能够支持多种网络环境中的不同的网络控制功能;提供高层抽象,使编程人员能够更容易地控制网络;提供分布式抽象,以支持网络和应用的可扩展性,使程序的编写不受底层网络分布式结构的束缚;提供支持模块化的控制程序;提供可移植性,使控制程序能够得到最大限度的重用等等。
       
        (3)SDN调试及排错技术。由于的行为完全由软件决定,与所有程序一样,这些控制程序同样会存在一定的漏洞,验证网络行为与控制策略的一致性也成为了现阶段的重要问题。
       
        当前的解决方案有:利用模型校验以及符号执行去验证控制器代码的正确性;利用断点及数据包回溯技术来对SDN进行排错;以及通过对数据平面配置的静态分析来检查网络的联通及隔离错误等等。
       
        (4)分布式控制平面的设计。虽然OpenFlow支持分布式控制,但将网络智能逻辑上集中化之后所带来的可用性、可扩展性等问题仍需完善。
       
        在分布式SDN架构中,控制器之间的信息复制决定了系统的可扩展性,在信息全复制的情况下,整个系统将很快会陷入系统瓶颈,因此需要对网络中各种信息的更新频率进行更为精确的分析,从而能够给出较为有效的解决方案。
       
        (5)硬件优化技术。利用的特性来对转发硬件进行优化,OpenFlow协议从v1.1版本之后将转发面抽象成多级流水线,十分类似于当今交换机ASIC以及网络处理器的结构。那么,如何在不过分增加转发硬件复杂度的前提下,尽可能地提高转发平面的可编程能力(如可定义的表/流水线结构)也是一个需要进一步研究的重要问题。
       
        随着研究的不断深入以及技术的持续发展,SDN关键技术将逐渐趋于完善,未来的网络将会越来越依赖于软件,因此互联网将可能会进入SDN时代。
       
        2.3 SDN应用广泛
       
        SDN能够在多种网络环境中得到应用,包括数据中心网络、企业网络、广域网以及移动网络等[10].
       
        首先,在数据中心网络环境中使用SDN,可以将网络和计算资源更加紧密地联系在一起,从而实现高效的控制。在数据中心内部,利用SDN的优势,可以有效地进行数据中心中的路径优化和负载均衡,提高数据中心中资源利用率以及降低数据中心的能量消耗。另一方面,在多个数据中心之间利用SDN网络虚拟化技术以及逻辑上集中式的控制技术,可以轻松地实现应用到虚拟专用网(VPN)的映射以及虚拟机的迁移。
       
        其次,使用传统技术对大型企业网络进行管理是一种十分复杂的任务。在企业网络中利用SDN技术,能够极大地减轻网络管理的复杂度,企业网络管理人员只需要通过定义整网的管理策略就能够直接对企业网络进行控制,而不需要进行逐设备的配置,提高了企业网络的可靠性。
       
        最后,在广域网及移动网络中使用SDN技术也将可能具有众多好处。SDN逻辑上集中的控制平面能够更好地实现网络融合,使统一管理成为可能。利用SDN技术可以在固定网络和移动网络中实现无缝控制、提高VPN管理的灵活性等。已有企业公司利用OpenFlow技术对移动网络进行高效、灵活的网络管理,并实现了多种移动通信方式之间的实时动态切换以及移动回程网络的节能功能。在运营商网络中利用SDN技术不但能够降低网络管理难度,还能够加快业务部署速度,提高网络服务的适应能力。
       
        3结束语
       
        通过控制与转发的分离,SDN能够降低网络管控的复杂度,提高网络的可靠性及安全性,提供多种粒度的网络控制,从而提高用户体验并促进网络创新。当前SDN已逐渐成为了学术界、工业界以及标准化组织广泛关注并讨论的热点。未来网络将越来越依赖于软件,SDN这种新颖的、动态的网络架构将得到更广泛的应用,进而促进网络技术的不断创新。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-29 00:06 , 耗时 0.098113 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表