扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在云计算时代,数据中心将成为我们应用和数据交付关键中心,用户从园区、远程分支点、无线和互联网不同位置访问数据与服务,连接这些服务的网络比以往来得更重要一些。云计算需要可靠的、横向扩展和高性能网络,从用户接入、互联网到数据中心。大规模部署虚拟化与云计算催生了以工作负载为中心的下一代数据中心网络,复杂的网络需要为工作负载提供端对端网络资源响应。如何应对业务快速响应需求是下一代数据中心网络人员不得不面对的挑战。以新观点来解决网络在新应用下的挑战,控制平面与转发平面分离,软件定义网络为人们提供了新思路和新方法。笔者结合实际工作经验,与大量用户交流与反馈,阅读了国内外一些书籍、互联网资料,在本文就近十网络发展、软件定义网络技术、发展趋势和商业应用等方面给出了业务挑战、技术、经济分析和解决方案,希望对读者有所启发。
云计算网络发展挑战
云计算是实现方便、快速、简单、按需访问可配置计算资源的管理模型 (部分定义来自nist),云计算是企业IT资源管理的高级阶段,随业务变化而变化,而不仅仅是IT技术简单合并与应用。云计算所包含内容非常广泛,分成不同层次,从最接近用户的上层到最下面的物理层,包含有业务接口层、应用平台层、分布式操作系统层、虚拟化层、硬件架构层和数据中心设施层、运营商网络层,同时有支撑不同层次之间管理和平台,技术之外就作为商业模式出现的云服务交付体系和互联互通标准等。而架构即服务云计算是什么呢,很简单,就是根据用户需求,在虚拟化层、硬件层和数据中心设施基础等实现动态资源管理与调配的云计算服务,具备了这些特征计算模式就可以称之为架构即服务云。
云计算高级智能模式将使每个计算节点进化成独立反应单元,计算节点无条件反射处理由本身独立处理完成,而高级条件反射和智能分析则通过云计算高级神经中枢完成。与生物进化过程相比较,云计算进化过程类似于生物从低等到高等进化过程。目前计算资源对业务反应模式还只是处于无脊椎动物十分有限能力阶段,非常不灵活,而随着芯片技术和软件能力进阶,慢慢地计算资源调度模式就会进化到有脊椎动物高级复杂阶段。在进化过程中,计算单元单位体积内的芯片处理能力和密度每一年半翻倍提升,与此同时,起着传输神经信息的网络变得更加复杂,神经网络路径数目与计算细胞单元是几何平方匹配。
用户需求不断变化,导致网络越来越复杂
十年以来,用户数量指数增长,网络数据、流量和管理发展使得用户和网络设备不堪重负。Cisco交换机固件文件大小从原来的300K到现在的几十兆,路由器IOS软件从1998的8兆左右到现在几百兆到几个G都是常见的的事。网络设备操作系统源代码行数也增长到几百万条,越来越多的网络控制协议被加入到网络操作系统中,厂家的研发难度不断加大,用户的学习成本不断增加。尤其是控制平面的功能特性,从基本的OSPF、BGP、多播和查分服务质量保证到多协议标记交换(MPLS)、流量工程Traffic Engineering(又分为基于路由协议的流量工程如OSPF-TE和基于4层应用的流量工程如RSVP-TE)、大规模地址转换(NAT)、智能分析处理防火墙、不同形式2/3层虚拟专用网VPN、IPv6与IPv4互相混搭、移动 IP网络、用户管理认证授权和访问、记录功能等等,无数越来越多的用户要求被加入到网络交换节点里面来,以致领先网络公司都宣称自己是软件公司而不是硬件公司了。每个网络设备变成了恐龙一样的怪物,让人见而生畏。虽然在第一时间解决用户痛点和满足市场要求是我们网络供应商的责任和期望,不够遗憾的是由于网络软件控制特性与硬件集成度高,从初期协议想法到协议标准化大一般需要十年,而从标准化到规模部署又需要三到五年,导致用户需求总是被严重地推迟满足。另一方面,由于网络协议与厂家硬件系统架构高度集成,而传统网络主体架构都是封闭(尽管厂家可能使用通用商业化产品作为收发芯片),所以与之配套的软件开发和验证只能由网络厂家根据商业利益最大化决定推动,用户不得不忍受被锁定的痛苦。而用户被锁定后,基于用户最大利益创新愿望对厂家来讲就没有那么强烈了,形成了需求与研发的负反馈效应。
云计算虚拟化移动性,需要更加灵活敏捷的网络响应
根据IDC统计(图6),到2013年底虚拟机部署数量将是物理机的2.5倍,达到8千2百万台,虚拟机节省了大量的物理购买成本,但在管理复杂度上面造成运营成本增加也非常显著,比如虚拟资源脱离了物理设备相对静态信息,排错难度大大增加。虚拟交换机既要与现有虚拟管理平台兼容,又要应对高度动态变化端设备,维护虚拟逻辑抽象链接,集成与交换硬件设备功能,从移动性、机动性、维护性和集成性分类如下:
• 跟踪设备移动状态。网络端节点实体(比如虚拟机)的网络状态需要简单确定,不同主机之间可相互迁移节点状态。
• 响应网络动态变化。虚拟化环境最大特点是网络高度状态变化,跟踪虚拟机加入和离开,虚拟机往前或往后即时移动,逻辑网络环境快速变化,开放式控制平面控制流量和全局网络自动发现管理。
• 维护虚拟化逻辑标记。分布式虚拟交换机通常通过增加或管理虚拟机网络数据,来维护虚拟网络或逻辑区域上下文,这是容易理解的简单方式,需要正确和高效管理这些虚拟化标记。
• 集成操作系统和硬件。把虚拟数据转发路径设计成“卸载”模式,数据包处理由硬件芯片完成,以独立软件或硬件芯片方式实现灵活控制,增加虚拟化网络性能。
云计算网络管理方式改变——面向工作负载的网络资源调度
要全面实现新一代数据中心数据管理移动性,就需要虚拟协调角色,统一规划和部署IT智能基础架构,于是催生了工作负载为中心的IT管理模式,传统分离IT管理模式不再合适,传统IT资源分配的技术实现方式也不再合适。
工作负载是计算机所执行工作的逻辑分类,它包括谁在做工作(Who)、做什么工作(What)和如何做工作(How),它以业务观点来看工作分类,非IT技术特征。工作内容包括部分系统运行应用、用户应用连接和应用交互。工作绩效指标包括响应时间和吞吐量,也就是服务响应水平。响应时间是用户发出请求与系统响应之间的时间差。吞吐量是在一定时间内完成了多少工作。工作负载工作内容不一样,IT资源消耗重点就不一样,可以分为四类,CPU计算型、内存缓冲型、存储IOPS型或存储带宽型、网络IOPS型或网络带宽型。保证服务器、存储和网络资源统一视图,决定了以工作负载为中心的资源调度模式不但需要统一虚拟角色负责,还需要技术上对应角色平台保证。
软件定义网络介绍
一方面是控制平面与转发平面集成,越来越复杂,创新缓慢;另一方面是虚拟化资源移动性要求更加强大灵活、简单的控制平面,两者之间的差距越来越大,用户为使用网络所付出的总拥有成本越来越大。难道对于解决这两个问题用户就永遥遥无期了吗?非也,答案其实很简单,一方面,既然软、硬件绑定导致网络发展和应用缓慢,那么我们就把它们分开来,各自相对灵活独立发展,开发实现基于标准硬件平台的灵活简单的控制平面。另一方面,云计算和虚拟化需要极大的网络扩展性要求,当前网络转发平面与控制平面都需要横向扩展和极大性能增强,大家平行分离,而扩展模式下控制平面的控制信息本身流量有限并可预计,所以人们就不需要昂贵的专门高性能转发芯片处理控制信息,那么经济性解决方案就是控制平面由独立可扩展软件实现。同样一个方法,解决两个大问题!于是一群先行者就开始软件控制独立与网络转发平面之旅,我们称之为软件定义网络。
什么是软件定义网络?
软件定义网络,又有人称为可编程网络,就是将网络设备配置平面从嵌入式节点独立出来到软件平台,由软件驱动的中央控制节点自动化控制的网络架构。软件定义网络以开放软件模式替代传统基于嵌入系统的、不够灵活的控制平面。软件定义网络是新的网络控制平面实现方法,它适应了降低网络复杂度、虚拟化和云计算的网络需求。它的发展是对传统网络厂家封闭专有控制平面技术产生了的破坏性创新,将对网络厂家变革导致巨大推力和影响。控制平面和转发平面分离,转发平面特性减少,专注而简单,减少了设备硬件从而减少了资本性支出(Capex),运营性支出 Opex减少原因是集中的、横向扩展和自动化简化了网络运行管理,减少人工支出。
图1 软件定义网络示意图
软件定义网络实际上核心技术本身并没有什么创新,传统交换或路由设备也都有独立转发平面或强大控制平面,只不过传统模式转发平面是通过在同一个机箱的不同接口模块去完成,控制平面由机箱的路由交换控制模块完成,缺点当然是开放性不够、及时响应动态变化能力有限,原因是比如设备无法做到第三方编程自动化集成,每个设备需要单独维护自己的地址表,有限CPU和内存却需要全网实时计算和动态处理。传统网络每个设备有点智能,但是非常有限,它们只能根据本节点进出数据流做出被动响应,无法知道其他节点动态状况。各个网络节点离散式自我控制,只见个别树木或树叶,没有大家统一协调的控制平面,不见整个网络森林,所以对整个网络来讲,尽管实现了动态路由协议,其架构基本是静态的。传统网络所谓动态调度实现基础也就是二层和三层的实现链路资源动态分配,而对于四到七层与二三层是否匹配和谐而调度,则心有余而力不足。即便有折中解决方案,也只是需要处在固定位置的昂贵负载均衡或安全设备协助完成。
理想的软件定义网络模式下,独立的离散式智能从分支节点上收到中央控制节点,中央枢纽保持全网流量监视和控制,从OSI 2层到7层实时把握网络整体状况,即时控制和调度,建立强大中央智能,对全网和100%垂直完整做出有效反应。在软件定义网络环境下,中央控制节点可以根据相应算法、逻辑、分析和规则,以软件定义规范方式将配置信息推到交换和路由节点,完成路由或交换从中央控制节点接受特定格式指令规则过程,交换和路由节点更新数据转发平面落地规则,完成数据转发。中央控制节点针对每个细分的网络路径,按照一条条“信息流”细分,每个“信息流”数据落地转发由每个特定交换或路由节点完成。当计算或存储资源变化时,中央控制节点根据分析结果重新调整节点配置规则,这样就实现虚拟化和云计算网络所需要的自动化和精细化动态配置管理。
常见专有软件定义网络
软件定义网络——vSphere之VNetwork体系架构
VMware vShpere可以通过虚拟化交换机控制平面管理VLAN、QoS策略和ACL,vNetwork API提供了标准接口,网络厂家根据接口开发与专有固件互动功能。网络厂家在虚拟化控制台安装控制插件,当虚拟机移动或变化时,对应指令从vSphere API上层发出,插件被调用,指挥网络节点调度物理交换资源,自然而然vShpere成为了虚拟化交换网络的控制平面代理。Cisco Nexus 1000v就是一种基于VMware体系架构的专用实现,它不但兼容了VSphere标准API,而且提供了标准Cisco IOS命令行方式。
图2 vSphere的软件定义网络架构
Dell Force10新一代数据中心架构支持虚拟化感知软件定义网络。Dell Force10边缘交换机FTOS可以安装虚拟管理器插件到虚拟操作系统包括VMware和Citrix,当虚拟控制平台移动虚拟机时,通知插件以Hyperlink方式在目的交换机FTOS上运行配置脚本,自动配置与虚拟机所匹配的网络资源,而后移动虚拟机。
图3 Dell Force10 集成自动化及虚拟感知网络架构 来源:www.force10networks.com
软件定义网络——无线局域网
其实无线网络控制器与无线接入点组成的无线网络某种程度上也算软件定义网络应用。以戴尔公司PowerConnect-W无线解决方案为例,无线接入点AP92/93系列提供无线接入转发平面,无线控制器W650系列实现同一用户认证,基于用户服务质量服务定义,集中管理加密信息,控制器分发控制策略到转发平面接入点,控制器与接入点之间信息加密传输,组成完整、安全和可定义的无线网络。
图4 无线网络软件定义架构
软件定义网络——Juniper QFabric
Juniper定义了专有的下一代网络基础架构QFabric。QFabric是全新数据转发平面和控制平面交换体系架构,从边缘交换到核心交换都采用了新型交换架构,支持大规模节点接入。数据转发平面有QF/Interconnect核心节点、QF/Node作为边缘节点,控制平面由QF/Director组成。控制平面QF/Director由冗余x86物理服务器集群组成,通过双千兆链接控制每个网络节点,控制链路独立于数据转发平面链路,控制平面节点就是我们说软件定义网络的中央控制节点。
图5 瞻博QFabric系统架构图 来源:www.juniper.com
OpenFlow软件定义网络与应用
开源软件定义网络OpenFlow架构
Open Networking Foundation (ONF)开放式网络基金会今年成立以来,OpenFlow规范得到主流网络厂家追捧,尤其是最近在Las Vegas Interop 2011举行网络大会,OpenFlow大出风头。究其原因,其背后基本理念是软件定义网络(Software-Defined Network)。OpenFlow规范实际上是一整套软件应用程序接口,控制网络数据如何转发,可基于硬件实现,OpenFlow增加了定制转发数据的控制程度,减少了支撑复杂控制所需的硬件成本。OpenFlow网络控制节点可以通过规范与支持OpenFlow的交换节点沟通配置信息,决定数据转发平面的转发表,控制器与转发节点间通过SSL加密传输。OpenFlow支持定义的“信息流”主要是从1层到4层的关键信息包括端口号、VLAN、MAC、以太网包头、IP地址、 IP协议号、TCP端口号等。配置信息通常包括“信息流”和与之对于的动作。每个“信息流”有符合某种特征的数据包及动作组成,比如源IP/源Port,目的IP/目的Port,5种不同转发动作。
图6 OpenFLow的架构图
图7 OpenFlow“信息流”定义
用户可以通过OpenFlow预设通用规则,每种不同网络节点可以根据设备特点更新转发平面规则,比如转发交换机更新MAC地址转发表、VLAN端口转发表、1到4层转发表,路由器修改访问控制IP列表,防火墙修改进出端口规则等。
图8 不同网络节点应用不同网络“信息流”规则
OpenFlow它增加了网络灵活控制能力,分布式节点智能通过OpenFlow指令得以实现,外部OpenFlow控制管理节点的实时控制,集中统一中央智能。OpenFlow根据运行实况实时控制分布式节点,分布式节点生成快速转发表,无须进行复杂智能分析计算,只要执行网络转发平面功能。当新转发节点加入到OpenFlow网络时,自动从中央控制节点得的最新网络配置信息,完成网络自动化感知。而中央控制节点基于x86标准服务器架构,强大计算能力和横向扩展特性保证了控制平面扩展性和经济性。
OpenFlow独立控制平面出现,TRILL或Shortest Path Bridging协议变得不是那么重要,因为OpenFlow控制器可以拥有有全网视图,所以动态防止环路发生。OpenFlow不但增加了传统转发平面的效率,在提供高级网络服务方面还可以展现独特价值,比如多对一的网络虚拟化,分布式负载均衡和分布式防火墙或入侵检测,非常不同于传统模式的一对多网络虚拟化模式。每一类分布式网络资源服务与单独云租户对应,每个云租户都有独立的跨物理节点的虚拟化网络,比如不同虚拟端口交换机,对租户管理员来物理网络端口透明,逻辑化网络派生于在物理网络资源上抽象出的网络虚拟资源池。虚拟机移动后,当虚拟机相应“信息流”的第一个数据包到达移动后的本地交换机节点,如果本地交换机节点没有发现匹配的转发规则,整个数据报文会被送到中央管理节点,中央管理节点根据定义规则逻辑设定本地规则,并应用到本地交换机的转发表建立新的匹配项,之后的“信息流”不再通过管理节点,由转发节点直接完成。
OpenFlow在虚拟化软件交换机Open vSwitch应用
Open vSwitch是多层虚拟化软件交换机,它遵循Apache 2.0开源代码版权协议,可用于生产环境,支持跨物理服务器分布式管理、扩展编程、大规模网络自动化和标准化接口,实现了和大多数商业闭源交换机功能类似的软件交换机。 OpenSwitch分离快速数据转发平面,OpenFlow作为新型控制平面,不同物理主机的虚拟化交换机通过OpenFlow控制,集群组成分布式虚拟化交换机,还可以实现不同租户虚拟机和虚拟网络隔离。正是由于Open vSwitch对OpenFlow支持,推动了OpenFlow在开源虚拟化领域的应用和发展。
软件定义网络商业价值应用展望
软件定义网络OpenFlow在超大规模Web 2.0 网络应用
Web 2.0用户如Google、Facebook的服务器台数近百万台,单数据中心服务器数目也超过十万台,国内公司如Tencent、Aliababa和Baidu安装服务器数估计也超过数十万台。在这些超大规模服务器群的网络设计与实现尤为重要,稳定、可靠和高性能的网络是Web 2.0业务的生命线。一方面在核心层实现高可靠性和高性能,另一方面是大量的服务器接入需要内网、外网和管理网接口,3倍以上端口数目,大量接入层设备成本成为是基础架构成本的重要组成。为了进一步降低服务器成本,集中、整合与开源虚拟化是下一代Web 2.0架构的发展趋势,单一数据中心虚拟机数目将部署到上十万台,这种环境下的公共云虚拟化移动性比我们之前说私有云移动性来得技术更加复杂、管理更加困难,传统网络厂家设备非常难以满足超大规模的“信息流”要求。
从传统网络架构迁移到软件定义网络将是一个艰难的旅程。网络技术应用演变过程有两种方式,一种是先边缘后核心,另外一种是先中心后边缘,不过从客户心理学来看,先边缘后核心是更容易接受的应用方式,所以我们可以预计OpenFlow应用过程也将是从边缘到核心的应用过程。具体方式是用户在接入层采用支持OpenFlow交换机,建立独立管理网,安装独立开发的或商用控制平台软件,测试和完善控制平台软件,从类OpenFlow交换机采集数据流量模式和优化定义规则,并同时至顶向下从应用角度分析,两种分析方式结合抽象出网络数据模型,这就是软件定义网络的规则基础,从是什么推进到应该是什么,再到如何是什么。
目前主流交换机厂家都还没有推出OpenFlow交换机,NEC公司是第一个推出支持OpenFlow交换机的公司,产品型号是PF5240,带有48个千兆和4个万兆上联端口,NEC还开发了OpenFlow控制器软件支持PF5240或其它第三方OpenFlow兼容交换机。
图9 OpenFlow基于3层网络建立2层虚拟化转发路径
如上图所示,OpenFlow在数据中心网络里建立从一台虚拟机到另外一台虚拟机的转发路径,虚拟机与虚拟机之间的三层网络基础上建立了二层广播域——虚拟以太网交换机,OpenFlow扩展了三层相对静态功能,根据数据流动态建立负载均衡决策路径,并依据虚拟化交换网络配置改变最优化的转发路径,从而简化了大型数据中心3层网络适应2层虚拟机移动性要求。
软件定义网络OpenFlow在电信运营商网络应用
在传统电信运营商网络里,IP层网络和传输网络独立分离的,它们分别单独管理,IP网和传输网之间没有交互,IP链路静态配置,传输层电路或放大器也是静态的,导致不同层次功能和资源重复,增加用户采购成本和运营成本负担。传统网络电路交换更无法自动感知报文交换要求,自动化控制平面操作,只是被动地依赖网管平台手工操作,服务交付时间长达几天,运营商只能是成为网络带宽销售者。尤其在云计算环境下,需要跨越数据中心的资源管理,需要上层资源与物理链路层调度的匹配与自动化,每个租户在数据中心之外需要建立虚拟网络服务和实现自助管理。这样用户趋势就是报文交换网络与电路交换网络融合,在同一平台下管理和运维,报文交换和电路交换之间互动,实现不同层次间动态调度。但是问题是报文和电路融合非常困难,因为IP网络和传输网络架构非常不一样,整合运维非常困难,传输网络保持不变,结果会造成融合更加膨胀,最后导致网络不可用,所以有专家说了架构融合才是真正融合。哪什么才是最佳控制和管理方式呢?可不可以基于1层到4层建立 “信息流”的控制方式呢?可以,解决思路是按光纤、放大器、时隙和报文内容细分,从电路交换和报文交换抽象映射到2到4层信息流交换层,实现基于广域网的网络虚拟化。斯坦福大学的有关专家正在积极研究将报文交换和电路交换集成,,合并起来统一抽象并管理和控制,实现基于“信息流”网络服务架构,基于不同流量和应用模型建立端对端网络虚拟化,这些研究为OpenFlow在运营商网络应用提供无限的可能性。
图10 运营商基于”流”统一控制管理网络
软件定义网络发展挑战
尽管软件定义网络发展可以帮助我们解决云计算网络的管理和经济问题,前途是非常光明的,但从目前发展阶段来看还是需要较长时间的发展和普及过程,从技术本身到管理和市场方面都有不少的挑战。
第一点,每个控制节点和转发节点需要维护大量“信息流”表,控制节点或转发节点的内存及其他资源需要相应提高,大量突发的第一次“信息流”建立可能会导致新的“信息流”瓶颈问题。而且如果控制点故障,大量“信息流”需要在转发节点重建,突发“信息流”配置对网络性能和鲁棒性都会有潜在的巨大影响。
第二点,OpenFlow成熟度问题,目前OpenFlow还只应用于科学实验和校园内部网。没有大规模产品化,量产之前的成本优势还是很大疑问。网络供应商选择不多,没有供应商与供应商横向比较,企业难以通过市场竞争方式获取新技术并最优成本的产品。除了转发节点成熟度问题外,因为目前并没有商业化的控制平台,如何实现控制节点软件开发、如何维护升级也是大问题。OpenFlow产业的先行者还需要对企业用户进行更多初期普及、培育、培训工作,帮助他们了解、测试和小规模测试软件定义网络新技术产品。
第三点,和大多数开源项目一样,目前OpenFlow等项目无法像商业解决方案一样有独立的商业机构为客户提供专业从咨询、、分析、设计、部署和运维管理服务,保证客户网络与IT系统运行。用户需要更多更高水平的有经验的网络维护人员,非一站式解决方案将导致学习成本比较高昂。尽管很多大公司参与OpenFlow项目,但是开发驱动力和技术支持主要来自社区自由软件编程人员。所以成熟的闭源软件定义网络将继续在普通企业应用尤其是私有云起主导作用。
第四点,软件定义网络天生的安全风险问题。集中智能虽然可以给运营管理带来全网视图和优化,以简化管理提高效率的好处,但是也带来而外的管理风险,中央中枢如果损坏或被黑客侵入怎么办?(基于x86软件系统显然比私有嵌入架构容易受到黑客攻击,尤其是开源社区提供丰富源代码),结果会导致全网瘫痪或变成僵尸网络,变成又聋又哑或失去控制的庞大网络怪物?网络攻击将从单点网络节点直接上升为集中网络控制器,后果将更加严重。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。