网络通信 频道

“柔性”网络为云应用而来

  在云计算时代,数据中心将成为我们应用和数据交付关键中心,用户从园区、远程分支点、无线和互联网不同位置访问数据与服务,连接这些服务的网络与以往相比更为重要。云计算需要可靠的、横向扩展和高性能的网络服务。大规模部署虚拟化与云计算催生了以工作负载为中心的下一代数据中心网络,复杂的网络需要为工作负载提供端到端的网络资源响应。如何以新观点来解决网络在新应用下的挑战呢?控制平面与转发平面分离的软件定义网络为人们提供了新思路和新方法。

  云计算发展与网络管理挑战

  用户需求不断变化,导致网络越来越复杂

  十年以来,用户数量呈指数增长,网络数据、流量和管理发展使得用户和网络设备不堪重负。Cisco交换机固件文件大小从原来的300K到现在的几十兆,路由器IOS软件从1998年的8兆左右到现在几百兆甚至几个G都是常见的的事。网络设备操作系统源代码行数也增加到了数百万条,越来越多的网络控制协议被加入到网络操作系统中,厂家的研发难度不断加大,用户的学习成本不断增加。

  尤其是控制平面的功能特性,从基本的OSPF、BGP、多播、多协议标记交换(MPLS)、流量工程(Traffic Engineering)、大规模地址转换(NAT)、智能分析处理防火墙、不同形式2/3层虚拟专用网VPN、IPv6与IPv4互相混搭、移动 IP网络、用户管理认证授权和访问、记录功能等等,越来越多的用户要求被加入到网络交换节点里面来,以致领先的网络公司都宣称自己是软件公司而不是硬件公司了。现如今每个网络设备几乎变成了恐龙一样的怪物,让人见而生畏。

  虽然在第一时间解决用户痛点和满足市场要求是网络供应商的责任和期望,不过遗憾的是由于网络软件控制特性与硬件集成度较高,从初期的协议想法到协议标准化一般需要十年,而从标准化到规模部署又需要三到五年,导致用户需求总是被严重地推迟满足。另一方面,由于网络协议与厂家硬件系统架构高度集成,而传统网络主体架构都是封闭的(尽管厂家可能使用通用商业化产品作为收发芯片),所以与之配套的软件开发和验证只能由网络厂家根据商业利益最大化决定推动,用户不得不忍受被锁定的痛苦。而用户被锁定后,基于用户最大利益创新愿望对厂家来讲就没有那么强烈了,形成了需求与研发的负反馈效应。

  云计算需要更加灵活敏捷的、面向工作负载网络资源调度响应

  云计算是实现方便、快速、简单、按需访问可配置计算资源的管理模型,云计算是企业IT资源管理的高级阶段,随业务变化而变化,而不仅仅是IT技术的简单合并与应用。

  根据IDC统计,到2013年底,为云计算部署的虚拟机数量将是物理机的2.5倍,达到8200万台。虚拟机普及应用一方面节省了大量的采购成本,但是另一方面在大规模虚拟机环境下(一般100台以上),管理复杂度所造成的运营成本增加也非常显著,比如虚拟资源脱离了物理设备相对静态的信息,排错难度大大增加。虚拟交换机既要与现有虚拟管理平台兼容,又要应对高度动态变化的端设备、维护虚拟逻辑抽象链接、集成与交换硬件设备功能、满足虚拟设备移动性、网络响应机动性、虚拟逻辑可维护性和转发控制平面软硬件可集成性等诸多挑战。

  要全面实现新一代数据中心数据管理的移动性,就需要虚拟协调角色,统一规划和部署IT智能基础架构,于是催生了以工作负载为中心的IT管理模式,传统的分离IT管理模式不再合适,传统IT资源分配的技术实现方式也不再合适。工作负载是计算机所执行工作的逻辑分类,它包括谁在做工作(Who)、做什么工作(What)和如何做工作(How),它是以业务观点来看工作分类,而不是从IT技术特征去看。工作负载、工作内容不一样,IT资源消耗重点就不一样,通过虚拟资源统一协调角色,可以在IT管理和计算层面上对服务器、存储和网络资源建立统一视图,从而实现了以工作负载为中心的资源调度模式。

  软件定义网络与OpenFlow

  一方面是控制平面与转发平面集成,管理越来越复杂,创新缓慢;另一方面是虚拟化资源移动性要求更加强大灵活、简单的控制平面;再者是面向工作负载的网络需要控制平面与资源本身解耦,造成控制平面与转发平面之间的差距越来越大,用户为使用网络所付出的总拥有成本越来越大。

  难道为了解决这些问题,用户就得遥遥无期地等待吗?非也,答案其实很简单。一方面,既然软、硬件绑定导致网络和应用发展缓慢,那么我们就把它们分开来,各自相对灵活,独立发展,开发实现基于标准硬件平台的灵活简单的控制平面。另一方面,云计算和虚拟化需要极大的网络扩展性要求,当前网络转发平面与控制平面都需要横向扩展和性能的极大增强,大家平行分离,自然解耦控制与转发。

  分离的额外好处是扩展模式下控制平面的控制信息本身流量有限并可预计,所以人们就不需要昂贵的专门的高性能转发芯片处理控制信息,控制平面由独立可扩展的软件经济实现,转发平面退化成简单的报文处理平台。用一个方法,便可解决这些关键问题!于是一群先行者就开始了软件控制独立与网络转发平面之旅。

  什么是软件定义网络?

  软件定义网络(Software-Defined Network),又有人称为可编程网络,就是将网络设备配置平面从嵌入式节点独立出来到软件平台,由软件驱动的中央控制平台自动化控制网络架构服务。软件定义网络是新的网络控制平面实现方法,它适应了降低网络复杂度、虚拟化和云计算的网络需求。它的发展是对传统网络厂家封闭、专有、不够灵活的控制平面技术所产生的“破坏性创新”,将对网络厂商的变革产生巨大推力和影响。控制平面和转发平面分离,转发平面特性减少,专注而简单,减少了设备硬件从而减少了资本性支出(CapEx),运营性支出 Opex的减少是因为集中的、横向扩展和自动化简化了网络运行管理,减少人工支出。

软件定义网络与OpenFlow
▲  图1 软件定义网络示意图

  实际上,软件定义网络的核心技术本身并没有什么创新,传统交换或路由设备也都有独立转发平面或强大控制平面,只不过传统模式的转发平面是通过在同一个机箱的不同接口模块去完成,控制平面由机箱的路由交换模块完成,缺点当然是开放性不够、及时响应动态变化的能力有限,如图1所示。原因是比如设备无法做到第三方编程自动化集成,每个设备需要单独维护自己的地址表,有限的CPU和内存却需要全网实时计算和动态处理。

  传统网络每个设备多少有点儿智能,但是非常有限,它们只能根据本节点的进出数据流做出被动响应,无法知道其他节点的动态状况。各个网络节点离散式自我控制,只见个别树木或树叶,没有大家统一协调的控制平面,不见整个网络森林,所以对整个网络来讲,尽管实现了动态路由协议,其架构基本是固定和静态的。传统网络所谓动态调度实现基础也就是二层和三层实现链路资源动态分配,而对于四到七层与二三层是否相匹配而进行调度,则心有余而力不足。即便有折中解决方案,也需要在固定位置安装昂贵的负载均衡或安全设备。

  理想的软件定义网络模式下,独立的离散式智能从分支节点上回收到中央控制节点,中央枢纽保持全网流量监视和控制,从OSI 2层到7层实时把握网络整体状况,即时控制和调度,建立强大的中央智能,对全网和100%垂直完整做出有效反应。在软件定义网络环境下,中央控制节点可以根据相应算法、逻辑、分析和规则,以软件定义规范方式将配置信息推到交换和路由节点,完成路由或交换从中央控制节点接受特定格式指令规则过程,交换和路由节点更新数据转发平面落地规则,完成数据转发。中央控制节点针对每个细分的网络路径,按照一条条“信息流”细分,每个“信息流”数据落地转发由每个特定交换或路由节点完成。当计算或存储资源变化时,中央控制节点根据分析结果重新调整节点配置规则,这样就实现了虚拟化和云计算网络所需要的自动化和精细化动态配置管理。

  常见的专有软件定义网络有VMware vSphere体系架构。vShpere可以通过虚拟化交换机控制平面管理VLAN、QoS和ACL策略,网络厂家根据API开发与专有固件互动功能,当虚拟机移动或变化时,vSphere指挥网络节点调度网络资源。Dell Force10边缘交换机FTOS也支持VMware和Citrix平台,可以安装相关插件到虚拟操作系统,实现应用和工作负载感知,当虚拟控制平台移动虚拟机时,通知插件以Hyperlink方式在目的交换机FTOS上运行配置脚本,自动配置与虚拟机所匹配的网络资源。另外Cisco Nexus 系列、Juniper QFabric也可实现类似的专有架构。

  OpenFlow开源软件定义网络

  自从开放式网络基金会Open Networking Foundation(ONF)今年成立以来,OpenFlow得到主流网络厂家追捧,尤其是今年六月在Las Vegas召开的Interop 2011大会上,OpenFlow可谓是大出风头。究其原因,其背后的基本理念是软件定义网络。OpenFlow规范实际上是一整套软件应用程序接口,OpenFlow网络控制节点可以通过规范与支持OpenFlow交换节点沟通配置信息,决定数据转发平面的转发表,控制器与转发节点间通过SSL加密传输,如图2所示。OpenFlow支持定义的“信息流”包括从1层到4层的信息,和与之对应的动作配置,如图3所示。

OpenFlow开源软件定义网络
▲  图2 OpenFLow的结构图

OpenFlow开源软件定义网络
▲  图3 OpenFlow“信息流”定义

  OpenFlow独立控制平面的出现,使得TRILL或最短路径桥接(Shortest Path Bridging)协议变得不是那么重要,因为OpenFlow控制器可以拥有有全网视图,可以动态防止环路发生。OpenFlow不但增加了传统转发平面的效率,在提供高级网络服务方面还可以展现独特价值,比如多对一网络虚拟化、分布式负载均衡和分布式防火墙或入侵检测。每一类分布式网络资源服务与每个云租户对应,每个云租户都有独立的虚拟网络架构,把硬件细节隐藏起来了,比如不同数目地理位置无关的虚拟端口交换机。在产品化方面,NEC公司第一个推出了OpenFlow交换机PF5240,带有48个千兆和4个万兆上联端口,还开发了OpenFlow控制软件支持OpenFlow兼容交换机。

  软件定义网络商业应用展望

  软件定义网络OpenFlow在超大规模Web 2.0数据中心网络应用展望

  Web 2.0用户如Google、Facebook的服务器台数近百万台,单个数据中心服务器的数目也超过十万台,国内公司如腾讯、阿里巴巴和百度安装的总服务器数估计也超过数十万台。为了进一步降低IT总成本,整合与开源虚拟化是下一代Web 2.0架构的发展趋势,单一数据中心虚拟机数目将部署到上十万台,这种环境下的公有云的虚拟化、移动性比我们之前说的私有云移动性来得技术更加复杂、管理更加困难,传统网络厂家的设备很难满足超大规模的“信息流”要求。

  同时我们看到,从传统网络架构迁移到软件定义网络将是一个艰难的旅程。网络技术应用演变过程不外乎有两种方式,一种是先边缘后核心,另外一种是先中心后边缘。不过从客户体验来看,先边缘后核心是更容易接受的应用方式,所以我们可以预计OpenFlow应用也将是从边缘到核心的过程。

  具体方式比如是用户在接入层采用OpenFlow交换机,建立独立控制网,安装独立开发的或商用的OpenFlow控制软件,从系统和网络管理采集数据流量模式和优化定义规则。

软件定义网络商业应用展望

  图4 OpenFlow基于3层网络建立2层虚拟化转发路径

  如上图所示,OpenFlow在大规模虚拟化数据中心的应用。OpenFlow在数据中心网络里建立从一台虚拟机到另外一台虚拟机的转发路径,基于三层网络基础上建立了二层以太网交换网络。OpenFlow扩展了三层相对静态功能,根据数据流动态建立负载均衡决策路径,并依据虚拟化交换网络配置改变最优化的转发路径,从而简化了大型数据中心3层网络适应2层虚拟机移动性要求。戴尔公司已联合微软公司向IETF提交了NVGRE RFC,实现基于3层2层虚拟化通道协议,将有助于更快推动OpenFlow在大规模云计算网络中普及应用。

  软件定义网络OpenFlow在电信运营商网络应用展望

  在传统电信运营商网络里,IP网络和传输网络是独立分离的,它们分别单独管理,IP网和传输网之间没有交互,IP链路静态配置,传输层电路或放大器也是静态的,导致不同层次功能和资源重复,增加了用户采购成本和运营成本负担。

  在云计算环境下,运营商需要跨越数据中心进行资源管理,实现上层资源与物理链路层调度的匹配与自动化以更好复用资源,满足每个云租户在数据中心之外需要建立端到端虚拟网络自动服务。那什么才是运营商网络的非常好的控制和管理方式呢?可不可以基于“信息流”的报文交换与电路交换融合的联合控制方式呢?答案是完全可能的。如图5所示,解决思路是按光纤、放大器、时隙和报文内容等细分,从不同网络需求抽象映射到OSI 1到4层“信息流“,每个网络节点通过OpenFlow实现提供网络虚拟化服务。斯坦福大学的有关专家正在积极研究这样的融合项目,基于不同流量和应用模型建立端对端网络虚拟化,这些研究为OpenFlow在运营商网络的应用提供了无限的可能性。

OpenFlow在电信运营商网络应用展望
▲  图5 运营商基于”流”统一控制管理网络服务

  软件定义网络的发展挑战

  尽管软件定义网络发展可以帮助我们解决云计算网络的管理和经济问题,前途是非常光明的,但从目前发展阶段来看还是需要较长时间的发展和普及过程,从技术本身到管理和市场方面都有不少的挑战。

  第一点,从纯技术观点看,OpenFlow控制性能问题。OpenFlow按“信息流”控制网络,以致每个控制节点和转发节点需要维护大量端对端“信息流”表,控制节点或转发节点的内存及其他资源需要相应提高。大规模突发首次“信息流”建立可能会导致新的“信息流”瓶颈问题。而且如果控制点出现故障,大量“信息流”需要在转发节点重建,突发“信息流”配置对网络性能和鲁棒性都会有潜在的巨大影响。

  第二点,从厂商观点看,是OpenFlow的应用成熟度问题。目前OpenFlow还只应用于科学实验和校园内部网,没有大规模产品化转发节点,一方面是没有在大规模客户安装基础之上的产品质量保证,另一方面是量产之前的成本优势还有很大疑问。除了转发节点成熟度问题外,因为目前并没有商业化的控制平台,如何实现控制节点软件开发、如何维护升级也是大挑战。

  第三点,从用户观点看,OpenFlow的持续发展和服务支持问题。目前OpenFlow等项目没有独立的商业机构为客户提供专业从咨询、评估、分析、设计、部署和运维管理服务,保证客户网络与IT系统运行。尽管很多大公司参与了OpenFlow项目,但是开发驱动力和技术支持主要来自社区自由软件编程人员,所以OpenFlow开源软件定义网络近期还仅在技术和创新能力比较强的互联网企业和科研院校得到应用,而成熟的专有软件定义网络将继续在一般企业云应用尤其是私有云起主导作用。

  第四点,从管理风险看,软件定义网络天生的安全风险问题。集中智能虽然可以给运营管理带来全网视图和优化,以获得简化管理,提高效率的好处,但是也会带来额外的管理风险。中央中枢如果损坏或被黑客侵入怎么办?结果将会导致全网瘫痪或变成僵尸网络,变成又聋又哑或失去控制的庞大网络怪物?网络攻击的目标将从单点网络节点直接上升为集中网络控制器,后果将更加严重。

  总的来说,软件定义网络作为解决网络与云计算发展问题的思路和解决方案已经呈现在我们面前。需要我们张开热情的双手去拥抱它,关注它,以客户利益至上去发展它,同时又要一分为二,立足现实解决问题,才能实现为云应用服务的真正的“柔性”网络,在未来的网络市场中赢得一席之地。

0
相关文章