e-works数字化企业网  »  文章频道  »  基础信息化  »  云计算和虚拟化

软件定义网络在云计算领域的实施部署

2016/8/18    来源:青云QingCloud    作者:傅帅      
关键字:软件定义网络  云计算  SDN  
文章对软件定义网络的发展历程进行系统梳理,分析NFV和未来SDN的技术架构,结合国内外软件定义网络技术的应用发展现状和最新研究成果,以及国内软件定义网络技术在云计算领域的最佳实践,全面论述软件定义网络的技术体系、应用现状和未来发展趋势。
    1、SDN的体系
 
    1.1、SDN的产生
 
    软件定义网络(Software Defined Network,  SDN)是由美国斯坦福大学Clean Slate研究组提出的一种新型网络创新架构,它将控制平面和转发平面进行分离,转发平面由受控的转发设备组成,转发方式及业务逻辑由运行在控制面板上的控制应用决定,这种逻辑上的集中控制实现了网络流量的灵活控制,为核心网络及应用创新提供了良好的平台。
    
    由于传统网络设备(交换机、路由器)的固件是由设备制造商锁定和控制,所以SDN希望将网络控制与物理网络拓扑分离,从而摆脱硬件对网络架构的限制。这样企业便可以像升级、安装软件一样对网络架构进行修改,满足企业对整个网站架构进行调整、扩容或升级的需求。而底层的交换机、路由器等硬件则无需替换,节省大量成本的同时,网络架构迭代周期将大大缩短。
 
    1.2、SDN的发展
    
    开放网络基金会(Open Network Foundation,ONF)最早提出了SDN的体系架构(如图1所示)。
    
    ONF的架构分为三层。第一层为应用层,包括各种业务和应用系统平台;第二层为控制层,负责处理网络的资源编排、网络拓扑、状态消息等;第三层为基砒架构层,负责数据的转发。而在三个层的连接处,即控制层与基础设施层之间被称为南向接口,而应用层与控制层之间被称为北向接口,这是SDN架构中的两个重要组成部分。其中,ONF在南向接口上定义了开放的Open Flow标准,而在北向接口上还没有做统一要求;因此,ONF SDN架构更多的是从网络资源用户的角度出发,希望通过对网络的抽象推动更快速的业务创新。
 
SDN的体系架构图
 
图1 SDN的体系架构图
    
    ONF三层体系架构有三个特征。
    
    1)集中管控。逻辑上集中管控能够获得全局的网络资源信息并根据业务情况对网络资源进行全局的调整和优化,如流量控制、负载均衡等。同时,集中管控还使得网络可在逻辑上被视作是由一台虚拟网络设备进行管理和维护,无须对物理设备进行配置调整,从而提升了网络控制的便捷性。2)接口开放。通过南向和北向接口的开放,可实现应用和网络的集成,使应用实时告知网络如何优化和调整才能更好地满足应用的需求,如应用的带宽、时延、抖动、丢包率的需求等。另外,支持用户基于开放接口自行开发网络业务并调用资源,加快新业务的上线周期。3)网络虚拟化。南向接口的统一和开放,屏蔽了底层网络转发设备的差异,实现了底层网络设备对上层应用的透明化。逻辑网络和物理网络分离后,逻辑网络可以根据业务需求随时配置和调整,不再受具体网络设备物理位置的限制。同时,逻辑网络还支持多租户共享,支持租户网络的定制需求。
 
    总之,SDN对控制平面与转发平面的分离,使网络设备的集中管控成为可能。以Open Flow为代表的南向接口的提出使得底层的转发设备可以被统一控制和管理,而其具体的物理实现将被透明化,从而实现设备的虚拟化。多种多样的开放接口,必将推动网络能力被便捷地调用,支持网络业务的创新。
 
    网络功能虚拟化(Network Function Virtualization,NFV)是运营商针对目前遇到的问题,结合虚拟化技术提出的一项网络解决方案。随着运营商网络规模的扩大,其所部署管理的设备型号与种类也在逐步增加,这必然导致能耗增长和管理成本增加,这些因素会严重影响运营商网络规模的扩张与发展,运营商因此提出采用NFV技术帮助其继续提升网络规模。NFV可以给运营商带来低成本、低能耗、快速部署以及灵活调整等方面的优势;与传统的专属网络设备不同,NFV采用通用硬件服务器作为基础设施资源,通过虚拟化技术在基础设施资源中建立虚拟的网络设备,并提供完整的专属网络设备所具备的完整功能。而NFV技术很好地整合了计算虚拟化技术、存储虚拟化技术以及网络虚拟化技术。在接口标准方面,NFV既可以与Open Flow协同运行,也可以采用基于非Open Flow的自有协议工作,还能够兼容ForCES等传统的标准化接口协议;这一方面是为兼容运营商中大量的传统网络设备,另一方面是面向运营商未来网络的发展要求。
 
    OpenDaylight是由若干IT厂商提出的技术路线,以方案可落地实施部署为前提条件,基于SDN的开源技术并结合了NFV的优势特点所形成的技术标准。OpenDaylight借鉴了SDN的层次架构,包括网络应用与编程服务层、控制平台层、物理与虚拟网络设备层。而OpenDaylight的控制平台层是以Java虚拟机实现,根据一系列功能模块来实现不同的网络功能组件,也可以基于第三方的功能模块来提升功能的多样性。其与SDN的差异包括:南向接口既支持OpenFlow协议,也支持网络设备厂家专有的协议,更支持符合国际标准的网络协议(如NETCONF的配置协议和BGP, OSPF等路由协议)。OpenDaylight采用服务抽象层来兼容处理不同的协议标准。具体是服务抽象层将不同标准的协议翻译为OpenDaylight可以解释的服务请求,对底层协议保持透明的状态,大幅提升了整体架构的可扩展性。
 
    NFV与SDN所适用的场景存在一些差异,不同的网络和架构需要选择不同的技术来提升网络体验。而两者相同的地方都是采用通用设备结合虚拟化技术,基于软件来实现不同的网络功能组件;而OpenDaylight的开源特性,使得它既兼容SDN、也对NFV采取融合的态度,未来将与两者继续并行发展。其最终目标是基于软件的开发、调整、配置与部署完成对网络拓扑、架构的规划;而以上这些均可通过PC端、移动端(手机、平板)基于Web方式进行。
 
    SDN的控制器层处于中间,基于开放的接口提供南北向的数据通信。其中北向接口专门负责与上层应用进行通信,南向接口专门负责与底层资源的数据层进行通信。为避免由于单点导致控制器的功能失效与性能瓶颈,未来将采用东西向的通信方式部署多控制器集群这是SDN未来的发展方向之一。
 
    2、SDN的关键技术
 
    2.1、SDN的控制层
 
    控制层是SDN的大脑,负责对底层转发设备的集中统一控制,同时向上层业务提供网络能力调用的接口,在SDN架构中具有举足轻重的作用,SDN控制器也是SDN关注的焦点。从技术实现上看,控制器除了南向的网络控制和北向的业务支撑外,还需要关注东西的扩展,以避免SDN集中控制导致的性能和安全瓶颈问题,SDN控制器也在南向、北向、东西向上引入了相应的核心技术,有效解决与各层通信以及控制集群横向扩展的难题。
 
    当前,业界有很多基于Open Flow控制协议的开源控制器实现,例如NOX,  Onix,  Floodlight等,它们都有各自的设计特色,能够实现链路发现、拓扑管理、策略制定、表项下发等支持SDN网络运行的基本操作。虽然不同的控制器在功能和性能上存在差异,但SDN控制器已具备应有的技术特征,从这些开源系统的研发与实践中得到的经验和教训将有助于推动SDN控制器的规范化发展。
 
    另外,用于网络集中化控制的控制器作为SDN网络的核心,其性能和安全性非常重要,其可能存在的负载过大、单点失效等问题一直是SDN领域中亚待解决的问题。业界已对此有很多探讨,从部署架构、技术措施等多个方面提出很多建设性的方法。
 
    SDN控制器对网络的控制主要是通过南向接口协议实现,包括链路发现、拓扑管理、策略制定、表项下发等,其中链路发现和拓扑管理主要是控制其利用南向接口的上行通道对底层交换设备上报信息进行统一监控和统计;而策略制定和表项下发则是控制器利用南向接口的下行通道对网络设备进行统一控制。
 
    SDN北向接口是通过控制器向上层业务应用开放的接口,其目标是使业务应用能够便利地调用底层的网络资源和能力。通过北向接口,网络业务的开发者能以软件编程的形式调用各种网络资源;同时,上层的网络资源管理系统可以通过控制器的北向接口全局把控整个网络的资源状态,并对资源进行统一调度。因为北向接口直接为业务应用服务,因此,其设计需要密切联系业务应用需求。同时,北向接口的设计要合理、便捷,以便能被业务应用广泛调用。这将直接影响SDN控制器厂商的市场前景。
 
    南向接口已有OpenFlow等国际标准不同,而北向接口还缺少业界公认的标准,因此,北向接口的协议制定成为当前SDN领域竞争的焦点。不同的参与者或者从用户角度出发、或者从运营角度出发、或者从产品能力角度出发提出很多方案。据悉,目前至少有20种控制器,每种控制器会对外提供北向接口用于上层应用开发和资源编排。虽然北向接口标准当前还很难达成共识,但充分的开放性、便捷性、灵活性将是衡量接口优劣的重要标准。例如,RES下API就是上层业务应用的开发者比较喜欢的接口形式。部分传统的网络设备厂商在其现有设备上提供了编程接口供业务应用直接调用,也可被视作是北向接口之一,其目的是在不改变其现有设备架构的条件下提升配置管理灵活性,应对开放协议的竞争。
 
    2.2 SDN的转发层面
    
    在传统网络中出现的由于单点故障导致的网络抖动在SDN网络中也会发生。当网络流量负载迁移、网络拓扑更新时,非常容易出现规则更新不一致的情况。其原因可能是人为因素,也可能是非人为因素,最终必将导致网络规则的更新不一致。
 
    一般采用分阶段提交方式进行规则更新,从而避免规则不一致。阶段一,当某规则要更新时,控制器查询每个交换机对应此规则的流量处理是否完成,并对处理完成的交换机的规则进行更新;在阶段二,当所有交换机的规则更新完成后,整个规则更新动作才会完成,否则,会取消规则更新动作。为实现分阶段的规则更新,在更新初始阶段,数据包会以打标签的方式来识别对应的新旧规则,交换机在转发过程中会检测数据包标签的版本,以标签对应的规则来完成数据包的转发动作;当数据包离开边界交换机时,数据包的标签会被去除。但此方式需要在所有旧标签的数据包处理完成后,新的规则才会生效并进行数据包的转发;由此会带来规则存储空间占用导致利用率较低的问题;而基于增量的更新算法可以避免此类问题的发送,即将规则更新分多次进行,每次更新均采用分阶段提交方式更新一个子集,以此达到更新时间与规则空间的平衡。
 
    3、SDN的实施部署
    
    QingCloud第一个将SDN技术应用到IaaS平台,并且为公有云用户提供虚拟基础网络服务,整个IaaS平台的调试部署在2013年7月完成,并向广大用户正式提供公有云服务,其整体的网络架构如图2所示。
 
实际部署网络拓扑图
 
图2 实际部署网络拓扑图
    
    在SDN技术架构的设计上采用全软件方式实现,即只需以传统网络设备为基础,便可构建完整功能的SDN网络。与云计算平台集成后可以为用户提供虚拟交换机(即二层隔离虚拟网络)、虚拟路由器(具有端口转发、DHCP、过滤控制等功能,并支持Openvpn/PPTP等VPN以及GRE/IPsec隧道)、防火墙(传统防火墙功能)、负载均衡器(支持HTTP、HTTPS、TCP三种协议、具有全透明代理功能及自定义的转发策略)等组件,可以满足为企业客户搭建各种复杂网络拓扑的能力,并最大限度地保护用户的业务安全,同时,具备架构混合云的能力。用户也可以通过脚本程序,如bash, Python, Ruby等,调用集成的API来实现。
 
OVS逻辑结构图
 
    图3 OVS逻辑结构图
 
    图3展示的是在云环境中租户之间基于私有网络的隔离。上述技术是以openvswitch(简称ovs)为技术参考实现的,即每台物理服务器上配置ovs,同时,在ovs保存所有云主机的网络信息,包括IP地址信息、私有网络信息、帐号与主机的关联信息,基于上述信息,才可以完成对所有网络流量的访问控制。
    
    针对一个帐号下所有云主机之间的互联互通,需要考虑到多种网络上的差异。如,在不同的物理服务器上导致的网络配置差异,在相同物理服务器上导致的网络配置雷同,以及在发生云主机迁移时网络配置的变动都会影响到ovs上面保存的有关云主机的网络配置信息。
 
    通过隧道技术,将所有需要进行数据交互的云主机通过ovs基于二层联通与虚拟路由器配合可完成基于三层的联通。这种技术实现的架构如图4所示。
 
私有网络逻辑架构图
               
图4 私有网络逻辑架构图
    
    图4中的控制器掌握全局的网络拓扑情况,如,云主机与帐号的对应关系以及。vs上已建立的隧道情况;基于云计算平台的规模,控制器也采用分布式部署的架构,同时,控制器之间将采用P2P方式构成社区,社区之间所有网络信.6.共享,并选举出master controller,社区与社区之间基于master controller进行网络信息的同步更新,master controller同时负责将其他社区更新的信息分发至其所在的社区内。上述架构的好处在于避免单点故障,同时也不会由于规模过大,导致网络信息管理与传输上的问题。
 
    后续SDN2.0版本的功能增强,用户网络将完全可以实现自管。一方面可以满足企业生产网络拓扑架构高可靠与高复杂度的场景;另一方面也可以满足超大规模网络拓扑高可用与高性能的场景。
 
    图5所展示的局部网络架构图中既包括实际物理服务器间物理链路的连接,也包括VM之间、VM与vSwitch之间、vSwitch之间逻辑链路的连接。总体上可以分为两部分链路,即物理链路的建立与逻辑链路的建立,同时,逻辑链路的建立又可划分为内部逻辑链路的建立、内部与外部逻辑链路的建立。

局部网络架构图
 
图5 局部网络架构图
    
    物理链路的建立,即所有物理硬件设备的连接。目前,物理硬件设备的连接是通过10Gb/s, 20Gb/s和40G b/s等标准的接口标准互联,高带宽的物理链路可以为基础设施提供足够的超高的网络旧与冗余度。
 
    内部逻辑链路的建立,即在已有的物理链路的基础上,对VM之间的数据如何传输做好逻辑链路的规划、设计与选择。因需要互联互通的VM可能连接到同一个vSwitch上,也可能连接在不同vSwitch上,所以在VM建立时,逻辑链路的设备必须同时完成相关设定工作,同时,也要根据VM的位置变化随时调整更新逻辑链路的相关信息。
 
    内部与外部逻辑链路的建立可认为是外部数据与云中VM之间的数据传输,此类传输需要通过VG,即SDN中的控制器作为数据传输的中转站,其功能一方面表现在传统路由器的IP地址转换角色,另一方面即为所有进出云边界的流量选择适合的vSwitch,类似于云内部逻辑链路的选择功能。
 
    在这种SDN网络中,用户可以自由设定路由器上的路由规则,静态路由、动态路由以及策略路由均可实现三层网络设备的HA模式配置。而在物理设备方面,仍然以传统网络设备为基础进行建设,考虑到网络稳定性是商业服务的第一指标,新兴的SDN交换机、SDN路由器还需要继续观察。而对Open Flow的研究与实验还将继续,在发展中不断根据技术的变化调整SDN的实现。
 
    SDN2.0将在2015年产生巨大变化,而所有这些变化的基础就是可以将上层平台与应用系统跨越广域网实现趋近100%的弹性配置,目标是可以建构安全的网络、确保隔离和降低成本,支撑用户在SDN2.0中构建与传统网络拓扑毫无差异的虚拟网络拓扑,给严肃的企业级用户足够的信心,成为打动企业级客户的第一块敲门砖。
 
    4、SDN的未来趋势
    
    SDN为将来的互联网发展提供用于控制与转发分离的整体架构解决方案。下面分别针对数据中心和超大规模网络在SDN方面的发展重点进行讨论。
 
    1)数据中心部署。如何建立一个低能耗、高可靠、灵活敏捷的数据中心网络一直是业界研究的重点;数据中心与互联网的松祸合关系使得数据中心的建设可以根据实际的性能与功能要求通过SDN技术搭建部署全新的数据中心网络架构,这也是促进SDN技术在数据中心网络快速推广的原因之一。另外,由于SDN转发与控制分离的架构特点,使数据中心可以对密集型服务器进行集中管理与控制,也使数据中心的监控与运维更加灵活。目前,基于Open Flow的SDN在数据中心链路利用率、数据中心动态路由、数据中心负载均衡和资源管理等方面的部署与运营都积累了丰富的经验。
 
    2)超大规模网络部署。目前,SDN的应用部署主要集中在校园网、企业网和数据中心,但在超大规模的网络部署与应用方面比较缺乏经验;传统的超大规模网络针对异构环境、超高性能、超高可扩展性、海量数据传输以及区域之间的动态路由都是限制超大规模网络发展的瓶颈,而基于SDN技术构建的超大规模网络则完全不会存在由于以上问题导致的发展瓶颈,所以SDN在超大规模网络建设上还需要进一步研究、部署与实验,同时积累在超大规模网络建设的经验。
 
    5、结束语
 
    SDN技术是目前最为热门的网络技术,而运营商也应该以崭新的眼光来看待基于SDN的网络基础设施及产品解决方案。SDN可以为运营商建立一张更高效、更有成本效益的网络;采用通用硬件平台运行各种网络组件,从而可以使业务创建与传输更便捷、更高效。预计在2015年会有一部分运营商对现网进行改造升级,而在两年后,广泛的运营商才会基于SDN技术对现网进行大量的升级改造。随着时间的发展,SDN技术将会更加成熟、稳定,也将必然对现有的网络技术产生深远的影响。
 
责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐