分享

新网络杂谈

 长庆wcqjs 2018-12-13

传统网络的转型

新技术从来都是由应用驱动并服务于人们的需求,有什么样的需求,就会催生出什么样的技术。一个手机APP的开发工作可能只需要几个人,但它有可能吸引到成千上万的用户,这些用户产生的数据可不是几台服务器就能承载的。随着用户量的增加,业务的扩张,这背后可能产生的运营成本无法估量。为了最大程度地节约成本,越来越多的企业选择了将业务放在虚拟机上,以便充分地利用资源,并实现资源的按需分配和弹性扩容。人们的需求使应用对网络、存储、计算资源的需求越来越大,这样的需求最终促使云计算成为了近年来IT界最火热的话题之一。云计算的核心思想就是将所有资源,包括服务器、网络、存储等等,虚拟化为一片云,让用户不再需要关心实际物理资源是如何部署的。而这其中,传统网络也必须转型为新型的云网络才能满足需求。有的企业选择自建能满足计算虚拟化要求的新型网络,也有的选择租用运营商的资源或者将业务直接托管,随之就有了如今耳熟能详的各种云。

图1 什么是云计算

传统网络在转型为支持大规模计算虚拟化的云网络时会有什么样的问题呢?最典型的问题是,在服务器虚拟化的场景中,虚拟机迁移后如果位于不同的三层网络中,则需要修改服务器的IP地址,但很多应用并不允许随意修改IP地址。那么最直接的解决方案便是使虚拟机迁移之后仍然位于同一个二层网络中。随着网络规模的不断扩大,传统的二层技术由于存在收敛时间过长,部署复杂等局限性,已经不再适合组建大规模的二层网络,于是这期间出现了许多用于实现大二层网络的新技术。为了屏蔽虚拟机迁移带来的物理网络位置变化的影响,这些新技术的核心思想无一例外的都是在数据平面上使用隧道技术穿越底层的三层网络,将物理拓扑抽象为包含一对对源和目的节点的逻辑拓扑。而这些技术所采用的不同的数据封装方式以及控制平面的建立方式,决定了它们在实际应用中,有的逐渐被淘汰,而有的成为了广泛应用的事实标准。作为在这期间脱颖而出的隧道技术,VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)定义了一个简单高效的数据转发平面,又以其优越的兼容性成为了构建新型大二层网络数据平面的主流标准。

图2 Overlay网络模型

解决了数据平面的构建问题,在控制平面的构建上又分为了两个流派。一个是主导集中控制模式的新锐派,而另一个是主导松散控制模式的顽固派。要说起这两个流派的产生,还得从同一时期兴起的另一项颠覆性的新技术说起,它就是SDN(Software Defined Network,软件定义网络)。

软件定义网络

传统网络最初只解决了连通的问题,当初的设计者甚至都没有想到网络的规模会大到如今的地步。科技飞速发展,万物互联的时代正在到来。伴随着越来越多的节点接入网络,越来越多的信息依赖于网络来传递,日益庞大的网络就像当今发达城市的交通系统一样不堪重负。网络的基础设施建设跟不上流量的爆炸性增长,提高网络的使用效率自然就成了有效缓解流量日益增长和网络建设滞后之间矛盾的一种可行思路。如果把数据比作车,从车的视角来看,传统网络可以看做是相对静止的。所谓静止体现在,数据的转发路径由每个转发节点上的预配置决定,从指定的源到指定的目的,总是会经过固定的路径。这样的数据转发方式所带来的弊端是,即使某条转发路径上出现拥塞,网络也无法动态、智能、自动地做出相应的调整。其实现在大部分行车导航软件早已有了应对拥堵的方案,能够在导航过程中随时发现拥堵,动态地调整行车路线实时躲避拥堵。解决网络的拥堵,是不是也能使用类似的方案呢?答案是肯定的。

2006年,斯坦福大学的学生提出了将网络设备的转发与控制分离。所有设备的控制平面集中到一个独立的控制器上,由控制器使用标准接口指导设备进行数据转发。这样不仅极大的简化了网络,更为网络的设计和管理提供了更多的可能性。受此思想的启发,业界进一步提出了软件定义网络(Software Defined Network,SDN)的概念。控制器作为新型网络的集中式管理平台,将网络中的所有被管资源抽象化,同时提供北向的标准可编程接口。用户可以基于这个平台开发各种应用软件,并进一步设计个性化的底层的逻辑拓扑,灵活满足业务对于网络资源的各种要求。

图3 SDN的基本思想

在2012年之前,SDN很大程度上还只是存在于学术界,实际应用并不多见,直到Google公司在2012年的开放网络峰会上首次公开展示了其利用SDN技术构建的全球骨干网。在这个骨干网中,Google利用部署于数据中心内的集中式控制器收集设备的路由信息和链路状态信息,统一汇总到上层的流量工程服务器。该服务器能够根据业务所需带宽、时延等要求,为其选择一条最优路径,并将指导转发的指令层层下发到沿途各转发节点上。Google在分布于全球的12个数据中心之间,利用SDN技术调度流量,使得广域网带宽利用率提升至接近100%,故障收敛时间从9秒减少到1秒。

图4 Google的全球骨干网

广域网的铺设和改造成本都极其高昂,而Google公司在不改变物理拓扑的情况下,利用软件定义网络,极大地降低了运营成本,提高了受益。Google的成功案例横空出世,在业界产生了巨大的影响,极大地推动了SDN的发展。自此之后,SDN技术开启了快速发展期,各种技术流派、标准组织和开源项目如雨后春笋般不断涌现。

传统网络的革命

当前各个厂商的网络设备都有着不同的配置方式,要想通过同一个控制器软件来统一控制不同厂家的网络设备,采用传统的网管方式是非常困难的。SDN光有一个集中控制的指导思想还不够,还需要选择一种标准的通信接口,用于控制器指导设备进行数据转发。于是业界定义了一种全新的控制器与网络设备之间的通用交互标准,使得控制器能够通过下发简单的指令指导异构的网络设备识别流量并作出对应的转发动作。在最初发表转发和控制平面分离思想的同时,OpenFlow协议作为控制器与网络设备之间交互的标准也被提出。

OpenFlow对于SDN来说就好比是x86的指令集对于计算机系统。OpenFlow定义了SDN控制转发的一种实现方式,即定义了控制平面与数据平面之间的南向接口。

图5 OpenFlow和SDN的关系

在所有实现SDN网络转控分离的技术中,OpenFlow是最为激进的技术。它完全抛弃了传统的路由交换协议,只要按照OpenFlow标准实现的交换机,就能够被控制器轻松管理。设备通过标准的OpenFlow协议,向控制器上报它所连接的通信主机的位置信息,当控制器掌握了网络中所有的通信节点位置信息后,便能够向设备下发名为流表的转发表项指导其转发。每条流表项提供了非常丰富的流量匹配条件,与同样丰富的转发动作形成一个简单的组合,能够十分灵活地实现各类流量的匹配及转发。OpenFlow具备的良好的可编程性,可以很方便地定义这种匹配和动作的组合,这使它成为了实现SDN的主流技术。可以说,SDN能够发展得如此迅猛,OpenFlow功不可没。

构建新型网络的新锐派,正是采用了这种集中控制的方式实现了VXLAN网络的控制平面。然而这种方式的革新对传统网络的冲击是巨大的,注定了这不会是一个平滑演进的过程。OpenFlow的易于实现,使原来处于领导地位的很多传统网络设备厂商,可能很容易在传统网络向新型网络转型的过程中,被其他小厂商拉回到起跑线上。于是,为了保住自己的先发优势,以传统网络设备厂商为代表的顽固派主导推出了各种松散控制的方式。

为了避免报文泛洪,这些松散控制的方式均是对传统路由交换协议进行的扩展,在协议报文中增加携带主机的寻址信息,利用现成的协议交互框架,实现信息在全网的同步。这种方式构建的VXLAN网络的控制平面和传统网络的控制平面并无本质区别,都是依赖设备之间的协议交互形成转发表项。目前应用较为广泛的松散控制模式采用MP-BGP协议的扩展,它被应用在名为EVPN(Ethernet Virtual Private Network,以太虚拟专用网络)的网络架构中。EVPN为了构建基于VXLAN的虚拟网络,新增了BGP EVPN协议族,并扩展了5种协议消息。利用BGP本身的协议交互架构,设备之间可以很方便地建立EVPN邻居,自动创建VXLAN隧道以及互相同步寻址信息。而BGP协议本身的路由反射器功能,还能极大的简化拓扑。更因为MP-BGP本身能够依靠MPLS标签建立VPN(这也是EVPN这个名字的由来),在EVPN中只需要将MPLS标签替换为VXLAN标签,就能够在云网络中方便地建立基于租户的专有云,天然迎合了火爆的公有云或虚拟专有云的市场需求。这使得EVPN在各种五花八门的松散控制模型中,成为了构建新型网络的首选方案。

集中控制方式还是松散控制方式

纯粹从技术的角度,很难说集中控制方式和松散控制方式谁能够百分之百优于对方。世界上没有最好的技术,只有最适合的技术。

松散控制模式的优势主要体现在网络健壮性和性能上。当网络中的某个节点故障时,只会影响节点本身,不会对其他节点造成影响。SDN作为一种新兴技术,其成熟度肯定是不如传统的路由交换协议的。虽然控制器可以依靠集群技术避免简单的单点故障(例如服务器宕机),但一些软件代码级别的复杂故障则无法依靠集群的主备倒换来规避。此外,建立一个分布式的控制平面所需要的设备性能显然比建立集中式的要小的多,也因此能够承载更大规模网络。更何况目前采用专用芯片支持大容量OpenFlow表项的成本较高,大部分厂商还是借用传统的IP/MAC表的资源来装载流表。这使得无论是从控制器的角度还是从网络设备的角度来说,流表规格都会是相对更加需要评估的问题。

回到软件定义网络的核心理念,集中控制模式的优势就非常明显。SDN控制器的开放平台,能够提供标准的北向Java API或Rest API接口供应用程序调用。用户能够以自身业务为驱动,开发出最适合自己的云平台或者APP,真正实现云为网生,网随云动。在性能方面,通过扩展控制器集群一定程度上可以满足大规模的组网需求。至于健壮性,则可以通过某种预先建立好的松散控制模型作为控制平面的备份来保证,当网络设备检测到控制器异常时,可以自动从控制器脱管并根据松散控制方式建立的转发表项转发数据。

SDN网络中的运维

一项技术的先进性,除了体现在能够提供更优质的使用体验之外,还体现在是否便于运维。不可否认SDN给传统网络带来了新的生命力,然而新技术落地的同时,也伴随着用户的顾虑——新型网络下的运维手段会不会有所缺失,会不会比原来更复杂?带着这个问题,我们先从传统数据中心网络运维的一个痛点说起。传统数据中心内部的流量模型往往涉及等价多路径。在多个等价的下一跳设备中,一旦有一台设备发生转发故障(例如因器件硬件故障导致的转发故障,但互联链路仍然正常),则无法迅速判断出哪一台设备存在故障,继而无法快速地旁路故障设备规避问题。SDN网络中的控制器因为有了全局视野,所以能够构造特定的业务报文,遍历探测所有转发路径,及时发现故障节点。

在这个软件定义一切的时代,有了控制器的SDN网络必将给业务部署以及运维带来更多的优势,使运维手段变得更加丰富。将来的网络工程师,不再需要在网络设备上输入命令行,而只需要开发个性化的软件并加载于控制器这个“大脑”就能完成任务。

技术在不断完善,将来的网络必将更加智能。让我们共同期待未来,并为人类的科技进步贡献力量。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多