重识云原生系列(四) ——硬菜软嚼的云网络(上)
来源:《云原生》第6期
作者简介:黄俊 / 招商证券云原生转型项目调研负责人
在传统IT架构中,网络几乎就是指物理网络设备,触手可及,服务器之间的网络通讯也是通过网线或者光纤连接实现,其大部分流量管控与访问控制策略也都是在路由器/交换机实现。而到了云计算时代,网络,除了包含传统的物理硬件设备,还包含大量虚拟化的网络设备软件应用,其运行在普通服务器中。而虚拟网络设备的连通,不仅需要底层真实硬件的支持,更需要关注软件形态的虚拟网络设备中的各种Overlay层的转发策略与流量监测,这对网络管理员而言也是前所未有的挑战。
伴生于云计算的云网络技术
云计算时代,资源的虚拟化和调配的自动化,为用户提供了可弹性伸缩、灵活配置的计算、存储资源,进而支持快速简便的业务系统发布。作为互联互通的网络基础设施,如何实现网络设备的虚拟化,从而进一步支持业务系统的快速扩缩容和网络通讯策略的自适应调配,为业务系统提供端到端的网络快速响应方案,成为了云计算时代急需解的核心关键问题。本质上讲,云网络技术就是要实现对数据中心底层物理网络设备的抽象,以期能在软件层实现对网络资源的二次切分、整合或者灵活管控,以便快速灵活地满足各种业务场景的网络使用需求,此即是软件定义网络(SDN)技术诞生的初衷。
云网络技术发展至今,就是以云为中心,一方面为支撑数据中心基础设施全面虚拟化而发展出来的网络硬件的虚拟化能力,此方面的能力表现为可标准化快速组网、可按需扩展网络资源容量、可灵活调配网络安全管控策略、支持计量计费、可全栈监控等;另一方面,因为公有云的蓬勃发展,也孕育出了面向企业租户的云
上网络类产品与服务,通过对机房级通用网络设备或功能的模拟,以软件产品服务的方式提供给云上用户使用。
云网络基础技术演进
就云网络基础技术而言,其与计算虚拟化技术类似,也走过了一条精彩纷呈的硬件“软化”之路。
一切从Spine-Leaf架构说起
自从1876年电话被发明之后,电话交换网络历经了人工交换机、步进制交换机、纵横制交换机等多个阶段,而随着电话用户数量急剧增加,网络规模快速扩大,基于crossbar模型的纵横制交换机在能力和成本上都已无法满足要求。1953年,贝尔实验室有一位名叫Charles Clos的研究员,发表了一篇名为《A Study of Non-blocking Switching Networks》的文章,介绍了一种“用多级设备来实现无阻塞电话交换”的方法,著名的CLOS网络模型就此诞生,其核心思想是——用多个小规模、低成本的单元,构建复杂、大规模的网络,如下图所示:图中的矩形,都是低成本的转发单元。当输入和输出增加时,中间的交叉点并不需要增加很多。而到了20世纪80年代,随着计算机的大量使用,计算机网络技术也得到了长足的进步,开始出现各种网络拓扑结构,例如星型、链型、环型、树型结构,最终树型网络成为了行业主流架构,不过早期的树型结构网络带宽是收敛的。2000年之后,互联网从经济危机中复苏,以谷歌和亚马逊为代表的互联网巨头迅速崛起。他们开始推行云计算技术,大量建设数据中心(IDC),甚至超级数据中心。面对日益庞大的计算集群规模,传统树型网络已无法满足要求,便诞生了一种改进型树型网络——胖树(Fat-Tree)架构。相比于传统树型,胖树(Fat-Tree)更像是真实的树,越到树根,枝干越粗(其实是指带宽)。从叶子到树根,网络带宽无须收敛。胖树架构被引入到数据中心之后,数据中心便发展成了传统的三层结构(如下图所示)。
这种架构由核心路由器、聚合路由器(有时叫分发路由器,distribution routers )和接入交换机组成。在很长的一段时间里,三层网络结构在数据中心十分盛行。但在这种网络架构下,依然存在如下一些弊端:»带宽的浪费,接入交换机的上联链路实际承载流量的只有一条,而其他上行链路则被阻塞(如图中虚线所示);»故障域较大,在网络拓扑发生变更时STP协议需要重新收敛,容易发生故障,从而影响整个VLAN的网络;»此架构原生不支持大二层网络的构建,故难以适应超大规模云平台网络需求,更无法支持虚拟机动态迁移;
针对以上问题,诞生了一种新的数据中心网络设计方案,称作基于 CLOS 网络的Spine-Leaf架构(Clos network-based Spine-and-Leaf architecture,中文也翻译成叶脊网络)。实践已经证明,这种架构可以提供高带宽、低延迟、非阻塞的数据中心级连接服务。相比于三层架构,Spine-Leaf架构进行了扁平化处理,变成了两层架构,如上图右侧所示。
Spine-Leaf 架构的优势非常明显:
1、带宽利用率高,每个叶交换机的上行链路都可以负载均衡方式工作;
2、网络延迟可预测,叶交换机之间的连通路径均只需经过一台Spine交换机,东西向网络延时可预测;
3、扩展性好,当上行带宽不足时,可通过水平扩展方式增加Spine交换机数量来快速增加带宽;当服务器数量增加时,则可通过增加Leaf交换机数量来快速扩大数据中心机器规模。
4、降低了对交换机的性能要求,东西向流量均衡分布在多条链路上,减少了单价昂贵的高性能高带宽交换机的采购需求。
5、安全性和可用性高,一台设备故障时,不需重新收敛,流量继续在其他正常路径上通过,网络连通性不受影响,带宽也只减少一条路径的带宽,性能影响微乎其微。
基于上述优势,Spine-Leaf架构从2013年一经出现,便很快取代了传统三层网络架构的地位,成为现代数据中心的新标准。
大二层网络的时代召唤
在上一节,我们谈到Spine-Leaf架构出现的时候,其实已经点到了大二层网络的出现因由。
云计算技术的出现,使得服务器虚拟化之后,除了使得数据中心的主机规模大幅增长,还伴生了一项新需求——虚拟机的动态迁移。虚拟机迁移时,业务不能中断,这就要求在迁移时,不仅虚拟机的IP地址不变,而且虚拟机的运行状态也必须保持原状(例如TCP会话状态)。所以虚拟机的动态迁移只能在同一个二层域中进行,而不能跨二层域迁移。而传统的三层网络架构就限制了虚拟机的动态迁移只能在一个较小的VLAN范围内进行,应用受到了极大的限制。
为了打破这种限制,实现虚拟机的大范围甚至跨地域的动态迁移,就要求把VM迁移可能涉及的所有服务器都纳入同一个二层网络域,这样才能实现VM的大范围无障碍迁移。这便是大二层网络。
近十年间,就大二层网络的实现,业界先后出现了三类比较典型的实现方案,分别是网络设备虚拟化类方案、L2 over L3方案、Overlay方案。所谓网络设备虚拟化技术,就是将相互冗余的两台或多台物理网络设备组合在一起,虚拟化成一台逻辑网络设备,在整个网络中只呈现为一个节点。再配合链路聚合技术,就可以把原来的多节点、多链路的结构变成逻辑上单节点、单链路的结构,环路问题也就顺势而解了。以网络设备虚拟化+链路聚合技术构建的二层网络天然没有环路,其规模仅受限于虚拟网络设备所能支持的接入能力,只要虚拟网络设备允许,二层网络想做多大都可以。不过,这类设备虚拟化协议大都是网络设备厂商私有,因此只能使用同一厂商的设备来组网,并且,网络规模最终还是会受限于堆叠系统本身的规模限制,最大规模的堆叠/集群大概可以支持接入1~2万台主机,对于10万级别的超大型数据中心来说,还是显得力不从心。
而L2 over L3方案的着眼点不是杜绝或者阻塞环路,而是在有物理环路的情况下,怎样避免逻辑转发路径的环路问题。此类方案通过在二层报文前插入额外的帧头,并且采用路由计算的方式控制整网数据的转发,不仅可以在冗余链路下防止广播风暴,而且可以做ECMP(等价路由),这样就可以将二层网络的规模扩展到整张网络,而不会受到核心交换机数量的限制。当然,这需要交换机改变传统的基于MAC的二层转发行为,而采用新的协议机制来进行二层报文的转发,这些新的协议包括TRILL、FabricPath、SPB等。对于TRILL协议,CISCO、华为、Broadcom、Juniper等都是其支持者;而Avaya、ALU等则是SPB的拥簇;而像HP等厂商,则同时支持这两类协议。总体而言,像TRILL和SPB这类技术都是CT厂商主推的大二层网络技术方案,而从事服务器虚拟化技术的IT厂商则被晾到了一边,网络话语权大幅削弱。
但伴随着云计算技术迅猛发展的IT厂商又岂会坐以待毙,Overlay方案便是从事服务器虚拟化技术的IT厂商主推的大二层网络解决方案。其原理就是通过用隧道封装的方式,将源主机发出的原始二层报文封装后,再在现有网络中进行透传,到达目的地之后再解封为原始报文,转发给目标主机,从而实现主机之间的二层通信。报文的封装/解封装都是在服务器内部的虚拟交换机vSwitch上进行,外部网络只对封装后的报文进行普通的二层交换和三层转发即可,所以网络技术控制权就都回到了IT厂商手里。典型技术实现包括VXLAN、NVGRE、STT等。当然,目前CT厂商也都积极参与到了Overlay方案中来,毕竟云计算是大势所趋。所以当前的VXLAN和NVGRE技术也可以把Overlay网络的接入点部署在TOR等网络设备上,由网络接入设备来完成VXLAN和NVGRE的报文封装。这样的好处是:
» 一方面对于虚拟服务器来说,硬件网络设备的性能要比软件形态的vSwitch强很多,用TOR等设备来进行封装/解封装,整体云网络性能自然更好。
» 另一方面,在TOR上部署Overlay接入点,也便于把非虚拟化的服务器统一纳入Overlay网络,目前主流云厂商的裸金属方案基本如此。
如此一来,CT厂商和IT厂商都在大二层网络这个领域实现了和谐共赢,也真因为如此,Overlay方案成为了当今大二层网络的主流方案。
Underlay 和 Overlay正式托起SDN的太阳
上一节已经提及,Overlay技术实际上是一种隧道封装技术,主流协议有VXLAN、NVGRE等,基本原理都是通过隧道封装的方式将二层报文进行封装后在现有网络中进行透明传输,到达目的地之后再解封装得到原始报文,相当于一个大二层网络叠加(overlay)在现有的网络之上。而Underlay层则变成了一张承载网,囊括各类物理网络设备,如TOR交换机、汇聚交换机、核心交换机、负载均衡设备、防火墙设备等。由此实现逻辑组网与物理组网的隔离,例如,在华为云/阿里云解决方案中,均选用了VXLAN技术来构建Overlay网络,业务报文运行在VXLAN Overlay网络上,与物理承载网络分层、解耦。
而对于当前走红的SDN技术,Underlay/Overlay已经成为了其从理念到实践都不可或缺的一部分。
在数据中心之内或者数据中心互联(DCI)的场景下,运营方会先建立一个底层的Underlay网络骨架,通过交换机和路由器将所有硬件单元(比如服务器/存储设备/监控设备等)相互连接。在这个Underlay网络内,通过运行IP网络协议比如ISIS或者BGP,来保证各个在网硬件单元之间的可达性。在完成Underlay网络构架之后,管理员可以通过部署SDN控制器的方式来对整网所有硬件资源进行调控与编排,再建立租户之间的Overlay网络连接并承载真正的用户流量。
SDN技术让封闭硬件“软化”开放
软件定义网络(Software Define Network,SDN)技术是对传统网络架构的一次重构,其核心思想是通过控制面(Control Plane)与数据面(Data Plane)的分离,将网络的管理权限交给控制层的控制器软件,在通过OpenFlow协议通道,统一下达指令给数据转发层设备,从而实现网络控制与数据转发的充分解耦,一举破除传统网络设备的封闭性。
由于OpenFlow协议的开放性,第三方也可以开发相应的应用置于控制层内,从而使得网络资源的调配更加灵活、更能满足企业个性化场景。而网络管理人员只需通过控制器下达指令至数据层设备即可,无需一一登录设备,从而大幅提高了网络管理效率,节省了人力成本。可以说,SDN 技术极大地推动了网络虚拟化的发展进程,也因此,其网络架构设计思想在当今各大云平台均得到了充分实现与落地。SDN有过三种主流实现方式,分别是OpenFlow 组织主导的开源软件(包括Google,IBM,Citrix 等公司支持),思科主导的应用中心基础设施技术(Application Centric Infrastructure,ACI),以及VMware 主导的NSX。显而易见,开源的OpenFlow 成为了事实上的行业标准。
SDN 的价值
支撑网络业务快速创新
SDN的可编程性和开放性,使得我们可以快速开发新的网络业务和加速业务创新。如果希望在网络上部署新业务,可以通过针对SDN软件的修改实现网络快速编程,业务快速上线。SDN架构下,底层硬件只需关注转发和存储能力,与业务特性彻底解耦。而网络设备的种类及功能由软件配置而定,对网络的操作控制和运行也由控制层服务器完成,故而对业务响应相对更快,可以定制各种网络参数(如路由、安全策略、QoS等),并实时配置到网络中。如此,新业务的上线周期可从传统网络的几年提升到几个月甚至更快。
简化网络协议结构
SDN的网络架构简化了网络拓扑结构,可消除很多IETF协议。协议的去除,意味着运维学习门槛的下降、运行维护复杂度的降低,进而使业务部署效率提升。因为SDN网络架构下的网络集中控制,所以被SDN控制器所控制的网络内部很多协议基本就不需要了,比如RSVP协议、LDP协议、MBGP协议、PIM组播协议等等。网络内部的路径计算和建立全部在控制器完成,控制器计算出流表,直接下发给转发器就行,并不需要其他协议。
网络设备白牌化
SDN 架 构 下,控 制 器 和 转 发器 之间 的 接口协议 逐 渐标 准 化(比 如OpenFlow 协议),使得网络设备的 白 牌 化 成 为可 能,比 如 专 门 的OpenFlow转发芯片供应商,控制器厂商等,这也正是所谓的系统从垂直集成开发走向水平集成开发。垂直集成是指由一个厂家提供从软件到硬件到服务的一体化产品服务,水平集成则是把系统水平分工,每个厂家都完成产品的一个部件,再由集成商把他们集成起来销售。水平分工有利于系统各个部分的独立演进和更新,快速迭代优化,促进良性竞争,从而使各个部件的采购单价下降,最终使得整机产品的采购成本大幅降低。
业务自动化
SDN网络架构下,由于整个网络由SDN控制器控制,故SDN控制器可以自主完成网络业务部署,并提供各种网络个性化配置服务,比如L2VPN、L3VPN等,对外屏蔽网络内部细节,提供网络业务自动化能力。网络路径流量智能优化传统网络中,网络路径的选择依据是通过各类路由协议计算得出所谓“最优”路径,但此结果反而可能会导致“最优”路径上的流量拥塞,其他非“最优”路径带宽空闲。而采用SDN网络架构时,SDN控制器可以根据各链路上网络流量的状态智能调整网络流量路径,从整网角度出发,整体性提升网络传输效率。
- 点赞
- 收藏
- 关注作者
评论(0)