1. Overlay 网络
1.1 Overlay 技术概述
    Overlay 在网络技术领域,指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主。Overlay 技术是在现有的物理网络之上构建一个虚拟网络,上层应用只与虚拟网络相关。一个Overlay网络主要由三部分组成:
    边缘设备:是指与虚拟机直接相连的设备
    控制平面:主要负责虚拟隧道的建立维护以及主机可达性信息的通告
    转发平面:承载 Overlay 报文的物理网络

2 Overlay网络与物理网络的关系

在以往IT建设中,硬件服务器上运行的是虚拟层的计算,物理网络为了与虚拟服务器对接,需要网络自己进行调整,以便和新的计算层对接(如图1所示)。Overlay是在传统网络上虚拟出一个虚拟网络来,传统网络不需要在做任何适配,这样物理层网络只对应物理层的计算(物理机、虚拟化层管理网),虚拟的网络只对应虚拟计算(虚拟机的业务IP),如图2所示。

图 1 物理网络引入数据中心技术来适配虚拟计算

图 2 物理网络通过承接虚拟网络来适配虚拟计算

Overlay的技术路线,其实是从架构上对数据中心的建设模式进行了颠覆,对物理设备的要求降至最低,业务完全定义在层叠网络上。那么,这是否意味着将来数据中心使用Overlay网络不需要硬件支持而只需要软件定义就足够了呢?答案无疑是否定的。

以下讨论Overlay网络与物理网络的依存关系。由于VXLAN(Virtual eXtensible LAN)技术是当前最为主流的Overlay标准,以下VXLAN技术为代表进行具体描述。

1. 报文的封装与解封装

VXLAN的核心在于承载于物理网络上的隧道技术,这就意味着要对报文进行封装和解封装,因此需要硬件来加速处理。

在VXLAN网络中,用于建立VXLAN隧道的端点设备称为VTEP(VXLAN Tunneling End Point,VXLAN隧道终结点),封装和解封装在VTEP节点上进行。

在云数据中心,部分业务是不适合进行虚拟化的(如小机服务器,高性能数据库服务器),这些服务器会直接与物理交换机互联,而他们又必须与对应租户/业务的VXLAN网络互通,此时就必须要求与其互联的硬件交换机也能支持VXLAN协议,以接入VXLAN网络。

图 3 Overlay网络的三种构建模式

考虑到服务器接入的可以是虚拟交换机,也可以是物理交换机,因此存在三种不同的构建模式(如图3所示):其中网络Overlay方案中,所有终端均采用物理交换机作为VTEP节点;主机Overlay方案中,所有终端均采用虚拟交换机作为VTEP节点;混合Overlay方案中,既有物理交换机接入,又有虚拟交换机接入,且软件VTEP和硬件VTEP之间可以基于标准协议互通。

在网络Overlay方案和混合Overlay方案中,都需要有物理交换机设备支持VXLAN协议栈,并能与虚拟交换机构建的VTEP互通。由于在实际组网环境中,服务器种类很多,高吞吐高性能要求的业务一般都采用单独物理服务器甚至小机的硬件环境,而非虚拟化的x86服务器,这就没法使用vSwitch来接入VXLAN网络,只能让支持VXLAN的物理交换机来接入了。

2. 组播协议传播

VXLAN网络的MAC表与隧道终端的绑定关系要用组播协议传播,而大规格组播协议离不开物理网络设备的支持。

按照VXLAN的标准,每一个VTEP都需要了解其接入的终端MAC地址,同时还需要知道整网(该VXLAN实例中)其他VTEP下所有的终端MAC地址。只有这样,在本地的VTEP收到报文后需要转发时,才能根据目的MAC查询到需要送到远端的目的VTEP那里。

按照IETF中对VXLAN网络的定义,负责在网络中传播MAC地址和VTEP对应关系的机制,正是依托于物理网络中的组播协议。VTEP将本地的MAC地址表利用组播协议在整个组播中传播,从而使得整网中所有组播成员,也就是其他VTEP都知道本地的MAC地址表。当VTEP下的终端接入情况有所更改,如新增了MAC地址或者减少了MAC地址,也需要利用组播协议通知同一个实例下的所有VTEP。另外,当本地VTEP找不到目的MAC处于哪一个远端VTEP时,也需要发送组播报文来查找目的MAC主机所属的远端VTEP。

图 4 多个VTEP通过物理网络组播传递MAC表信息

如图4所示,多个VTEP需要在整网中传递VTEP下MAC地址信息,逻辑传递路线如绿色虚线所示。由于需要进行逻辑上的Full-Mesh连接,连接逻辑线路会达到N平方量级,因此实际组网中,VXLAN利用了物理网络的组播组,在建立好的组播组中加入VXLAN中所有VTEP成员,传递VTEP变更信息。在多用户多业务情况下,组播组要求与VXLAN数量息息相关。由于VXLAN网络规模的不断拓展(最大可达到16M个VXLAN网络),所需要的组播条目数会不断增加,这实际上对于物理网络承载组播处理能力和规格提出了要求。

由于标准VXLAN架构下使用组播协议,对物理网络组播数规格要求较大,因此H3C VXLAN解决方案基于SDN架构,通过引入全网的SDN Controller来实现VXLAN的管理和维护,使得VTEP之间的信息可以通过Controller来进行反射(如图5所示)。这样,VTEP的MAC地址表映射关系不再通过组播向全网其他VTEP传达,而是统一上报给控制器,由控制器统一下发给需要接受此消息的其他VTEP,由具体的VTEP执行转发机制。

图 5 多个VTEP通过SDN Controller传递MAC表信息

可见,在SDN架构下,硬件形态的VTEP需要能够支持集中控制器下发的业务控制信息,同时基于Openflow进行流表转发。而传统硬件交换机不能支持上述特性,必须由新硬件设备来执行和完成的。

3. VXLAN网络互通

在传统L2网络中,报文跨VLAN转发,需要借助三层设备来完成不同VLAN之间的互通问题。VXLAN网络与传统网络、以及VXLAN网络的互通,必须有网络设备的支持。

VXLAN网络框架中定义了两种网关单元。

¡ VXLAN三层网关。用于终结VXLAN网络,将VXLAN报文转换成传统三层报文送至IP网络,适用于VXLAN网络内服务器与远端终端之间的三层互访;同时也用作不同VXLAN网络互通。如图6所示,当服务器访问外部网络时,VXLAN三层网关剥离对应VXLAN报文封装,送入IP网络;当外部终端访问VXLAN内的服务器时,VXLAN根据目的IP地址确定所属VXLAN及所属的VTEP,加上对应的VXLAN报文头封装进入VXLAN网络。VXLAN之间的互访流量与此类似,VXLAN网关剥离VXLAN报文头,并基于目的IP地址确定所属VXLAN及所属的VTEP,重新封装后送入另外的VXLAN网络。

图 6 VXLAN网络通过三层网关与传统网络互连

¡ VXLAN二层网关。用于终结VXLAN网络,将VXLAN报文转换成对应的传统二层网络送到传统以太网络,适用于VXLAN网络内服务器与远端终端或远端服务器的二层互联。如在不同网络中做虚拟机迁移时,当业务需要传统网络中服务器与VXLAN网络中服务器在同一个二层中,此时需要使用VXLAN二层网关打通VXLAN网络和二层网络。如图7所示,VXLAN 10网络中的服务器要和IP网络中VLAN100的业务二层互通,此时就需要通过VXLAN的二层网关进行互联。VXLAN10的报文进入IP网络的流量,剥掉VXLAN的报文头,根据VXLAN的标签查询对应的VLAN网络(此处对应的是VLAN100),并据此在二层报文中加入VLAN的802.1Q报文送入IP网络;相反VLAN100的业务流量进入VXLAN也需要根据VLAN获知对应的VXLAN网络编号,根据目的MAC获知远端VTEP的IP地址,基于以上信息进行VXLAN封装后送入对应的VXLAN网络。

图 7 VXLAN网络通过二层网关与传统二层网络互通

可见,无论是二层还是三层网关,均涉及到查表转发、VXLAN报文的解封装和封装操作。从转发效率和执行性能来看,都只能在物理网络设备上实现,并且传统设备无法支持,必须通过新的硬件形式来实现。

结束语

Overlay由于其简单、一致的解决问题方法,加上重新定义的网络可以进行软件定义,已经成为数据中心网络最炙手可热的技术方案。然而,它并不是一张完全由软件定义的网络,Overlay网络解决方案必定是一种软硬结合的方案,无论是从接入层VTEP混合组网的组网要求、组播或SDN控制层协议的支持,还是VXLAN网络与传统网络的互通来看,都需要硬件积极的配合和参与,必须构建在坚实和先进的物理网络架构基础上。。

参考:

基于多租户的云计算Overlay网络

1 云计算虚拟化网络的挑战与革新
在云中,虚拟计算负载的高密度增长及灵活性迁移在一定程度上对网络产生了压力,然而当前虚拟机的规模与可迁移性受物理网络能力约束,云中的业务负载不能与物理网络脱离。

ž 虚拟机迁移范围受到网络架构限制

由于虚拟机迁移的网络属性要求,其从一个物理机上迁移到另一个物理机上,要求虚拟机不间断业务,则需要其IP地址、MAC地址等参数维保持不变,如此则要求业务网络是一个二层网络,且要求网络本身具备多路径多链路的冗余和可靠性。传统的网络生成树(STPSpaning Tree Protocol)技术不仅部署繁琐,且协议复杂,网络规模不宜过大,限制了虚拟化的网络扩展性。基于各厂家私有的的IRF/vPC等设备级的(网络N:1)虚拟化技术,虽然可以简化拓扑简化、具备高可靠性的能力,但是对于网络有强制的拓扑形状限制,在网络的规模和灵活性上有所欠缺,只适合小规模网络构建,且一般适用于数据中心内部网络。而为了大规模网络扩展的TRILL/SPB/FabricPath/VPLS等技术,虽然解决了上述技术的不足,但对网络有特殊要求,即网络中的设备均要软硬件升级而支持此类新技术,带来部署成本的上升。

ž 虚拟机规模受网络规格限制

在大二层网络环境下,数据流均需要通过明确的网络寻址以保证准确到达目的地,因此网络设备的二层地址表项大小((即MAC地址表)),成为决定了云计算环境下虚拟机的规模的上限,并且因为表项并非百分之百的有效性,使得可用的虚机数量进一步降低,特别是对于低成本的接入设备而言,因其表项一般规格较小,限制了整个云计算数据中心的虚拟机数量,但如果其地址表项设计为与核心或网关设备在同一档次,则会提升网络建设成本。虽然核心或网关设备的MAC与ARP规格会随着虚拟机增长也面临挑战,但对于此层次设备能力而言,大规格是不可避免的业务支撑要求。减小接入设备规格压力的做法可以是分离网关能力,如采用多个网关来分担虚机的终结和承载,但如此也会带来成本的上升。

ž 网络隔离/分离能力限制

当前的主流网络隔离技术为VLAN(或VPN),在大规模虚拟化环境部署会有两大限制:一是VLAN数量在标准定义中只有12个比特单位,即可用的数量为4000个左右,这样的数量级对于公有云或大型虚拟化云计算应用而言微不足道,其网络隔离与分离要求轻而易举会突破4000;二是VLAN技术当前为静态配置型技术(只有EVB/VEPA的802.1Qbg技术可以在接入层动态部署VLAN,但也主要是在交换机接主机的端口为常规部署,上行口依然为所有VLAN配置通过),这样使得整个数据中心的网络几乎为所有VLAN被允许通过(核心设备更是如此),导致任何一个VLAN的未知目的广播数据会在整网泛滥,无节制消耗网络交换能力与带宽。

对于小规模的云计算虚拟化环境,现有的网络技术如虚拟机接入感知(VEPA/802.1Qbg)、数据中心二层网络扩展(IRF/vPC/TRILL/FabricPath)、数据中心间二层技术(OTV/EVI/TRILL)等可以很好的满足业务需求,上述限制不成为瓶颈。然而,完全依赖于物理网络设备本身的技术改良,目前看来并不能完全解决大规模云计算环境下的问题,一定程度上还需要更大范围的技术革新来消除这些限制,以满足云计算虚拟化的网络能力需求。在此驱动力基础上,逐步演化出Overlay的虚拟化网络技术趋势。

2 Overlay虚拟化网络的技术标准及比较
2.1 Overlay技术形态
Overlay在网络技术领域,指的是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主(如图2所示)。其实这种模式是以对传统技术的优化而形成的。早期的就有标准支持了二层Overlay技术,如RFC3378(Ethernet in IP),就是早期的在IP上的二层Overlay技术。并且基于Ethernet over GRE的技术,H3C与Cisco都在物理网络基础上发展了各自的私有二层Overlay技术——EVI(Ethernet Virtual Interconnection)与OTV(Overlay Transport Virtualization)。EVI与OTV都主要用于解决数据中心之间的二层互联与业务扩展问题,并且对于承载网络的基本要求是IP可达,部署上简单且扩展方便。

图2 Overlay网络模型

随着云计算虚拟化的驱动,基于主机虚拟化的Overlay技术出现,在服务器的Hypervisor内vSwitch上支持了基于IP的二层Overlay技术,从更靠近应用的边缘来提供网络虚拟化服务,其目的是使虚拟机的部署与业务活动脱离物理网络及其限制,使得云计算的网络形态不断完善。(如图3所示)主机的vSwitch支持基于IP的Overlay之后,虚机的二层访问直接构建在Overlay之上,物理网不再感知虚机的诸多特性,由此,Overlay可以构建在数据中心内,也可以跨越数据中心之间。

图3 hypervisor支持的二层Overlay

2.2 Overlay如何解决当前的主要问题
针对前文提出的三大技术挑战,Overlay在很大程度上提供了全新的解决方式。

ž 针对虚机迁移范围受到网络架构限制的解决方式

Overlay是一种封装在IP报文之上的新的数据格式,因此,这种数据可以通过路由的方式在网络中分发,而路由网络本身并无特殊网络结构限制,具备良性大规模扩展能力,并且对设备本身无特殊要求,以高性能路由转发为佳,且路由网络本身具备很强的的故障自愈能力、负载均衡能力。采用Overlay技术后,企业部署的现有网络便可用于支撑新的云计算业务,改造难度极低(除性能可能是考量因素外,技术上对于承载网络并无新的要求)。

ž 针对虚机规模受网络规格限制的解决方式

虚拟机数据封装在IP数据包中后,对网络只表现为封装后的的网络参数,即隧道端点的地址,因此,对于承载网络(特别是接入交换机),MAC地址规格需求极大降低,最低规格也就是几十个(每个端口一台物理服务器的隧道端点MAC)。当然,对于核心/网关处的设备表项(MAC/ARP)要求依然极高,当前的解决方案仍然是采用分散方式,通过多个核心/网关设备来分散表项的处理压力。(另一种更分散的方式便是虚拟网络路由服务方式,详见后文描述)。

ž 针对网络隔离/分离能力限制的解决方式

针对VLAN数量4000以内的限制,在Overlay技术中引入了类似12比特VLAN ID的用户标识,支持千万级以上的用户标识,并且在Overlay中沿袭了云计算“租户”的概念,称之为Tenant ID(租户标识),用24或64比特表示。针对VLAN技术下网络的TRUANK ALL(VLAN穿透所有设备)的问题,Overlay对网络的VLAN配置无要求,可以避免网络本身的无效流量带宽浪费,同时Overlay的二层连通基于虚机业务需求创建,在云的环境中全局可控。

2.3 Overlay主要技术标准及比较
目前,IETF在Overlay技术领域有如下三大技术路线正在讨论,为简单起见,本文只讨论基于IPv4的Overlay相关内容(如图4所示)。

ž VXLAN。VXLAN是将以太网报文封装在UDP传输层上的一种隧道转发模式,目的UDP端口号为4798;为了使VXLAN充分利用承载网络路由的均衡性,VXLAN通过将原始以太网数据头(MAC、IP、四层端口号等)的HASH值作为UDP的号;采用24比特标识二层网络分段,称为VNI(VXLAN Network Identifier),类似于VLAN ID作用;未知目的、广播、组播等网络流量均被封装为组播转发,物理网络要求支持任意源组播(ASM)。

ž NVGRE。NVGRE是将以太网报文封装在GRE内的一种隧道转发模式;采用24比特标识二层网络分段,称为VSI(Virtual Subnet Identifier),类似于VLAN ID作用;为了使NVGRE利用承载网络路由的均衡性,NVGRE在GRE扩展字段flow ID,这就要求物理网络能够识别到GRE隧道的扩展信息,并以flow ID进行流量分担;未知目的、广播、组播等网络流量均被封装为组播转发。

ž STT。STT利用了TCP的数据封装形式,但改造了TCP的传输机制,数据传输不遵循TCP状态机,而是全新定义的无状态机制,将TCP各字段意义重新定义,无需三次握手建立TCP连接,因此称为无状态TCP;以太网数据封装在无状态TCP;采用64比特Context ID标识二层网络分段;为了使STT充分利用承载网络路由的均衡性,通过将原始以太网数据头(MAC、IP、四层端口号等)的HASH值作为无状态TCP的源端口号;未知目的、广播、组播等网络流量均被封装为组播转发。

VXLAN NVGRE SST

图4 三种数据详细封装

这三种二层Overlay技术,大体思路均是将以太网报文承载到某种隧道层面,差异性在于选择和构造隧道的不同,而底层均是IP转发。如表1所示为这三种技术关键特性的比较:VXLAN和STT对于现网设备对流量均衡要求较低,即负载链路负载分担适应性好,一般的网络设备都能对L2-L4的数据内容参数进行链路聚合或等价路由的流量均衡,而NVGRE则需要网络设备对GRE扩展头感知并对flow ID进行HASH,需要硬件升级;STT对于TCP有较大修改,隧道模式接近UDP性质,隧道构造技术属于革新性,且复杂度较高,而VXLAN利用了现有通用的UDP传输,成熟性极高。总体比较,VLXAN技术相对具有优势。

表1 IETF三种Overlay技术的总体比较

IETF讨论的Overlay技术,主要聚焦在数据转发层面的实现上,控制层面并无涉及,因此在基本实现上依赖于不同厂家的控制层面设计,IETF讨论稿《draft-pfaff-ovsdb-proto-02.pdf》则针对Open vSwitch提供了一种控制管理模型的建议(如图5所示),但在细节实现上仍不是很明确。

图5 IETF draft讨论的OVS管理方式

3 多租户的Overlay网络架构
3.1 数据中心虚拟化网络的发展阶段
随着虚拟化技术在数据中心、云计算中的不断深入应用,伴随着网络技术的发展,数据中心的二层组网结构出现了阶段性的架构变化(如图6所示)。

图6 阶段性网络与虚拟化的匹配

ž 分层结构化网络

早期的数据中心网络,虚拟化需求非常少,并没有强烈的大二层技术要求,多是面向一定的业务应用系统构建网络模块,并且规模一般不大,性能要求也不高。数据中心使用多层架构,网关层面比较低,业务的二层访问基本可以在网络模块内解决,只需要通过基础的生成树技术来支撑模块内的二层网路可靠性运行即可。

ž 扁平化网络

随着虚拟化在X86架构服务器上的流行及广泛部署,模块化的数据中心网络结构已经不能满足虚拟机大范围迁移要求,而生成树协议的复杂性也严重影响大规模网络的稳定运行。由此网络本身技术出现适应虚拟化的变革,包含TRILL/FabricPath/VSS/vPC/IRF等新的技术出现并大量部署,同时为了使得网络进一步感知虚让你因为机的业务生命周期,IEEE还制订了802.1Qbg(即VEPA技术)与802.1BR来配合二层网络技术增强对虚拟机的感知能力。为了保证网络的高性能业务要求,出现了应对高密虚拟化云计算环境的CLOS网络架构。

ž Overlay网络虚拟化

当进入云计算时代,云的业务需求与网络之间出现了前文提到的挑战,网络技术再次发生变革,以Overlay的虚拟化方式来支撑云与虚拟化的建设要求,并实现大规模的多租户能力,网络进入Overlay虚拟化架构阶段。

3.2 Overlay网络的组成模式
Overlay的本质是L2 Over IP的隧道技术,在服务器的vSwitch、物理网络上技术框架已经就绪,并且从当前的技术选择来看,虽然有多种隧道同时实现,但是以L2 over UDP模式实现的VXLAN技术具备较大优势,并且在ESXi和Open vSwitch、当前网络的主流芯片已经实现,预计会成为主流的Overlay技术选择,因此后文的Overlay网络均参考VXLAN相关的技术组成描述,其它NVGRE、STT等均类似。

Overlay网络架构有多种实现,就纯大二层的实现,可分为主机实现方式和网络实现方式;而在最终实现Overlay与网络外部数据连通的连接方式上,则更有多种实现模式,并且对于关键网络部件将有不同的技术要求。

3.2.1 基于主机的Overlay虚拟化网络

(如图7所示)目前的虚拟化主机软件在vSwitch内支持VXLAN,使用VTEP(VXLAN Tunnel End Point)封装和终结VXLAN的隧道。

图7 基于主机的Overlay虚拟化网络

VXLAN运行在UDP上,物理网络只要支持IP转发,则所有IP可达的主机即可构建一个大范围二层网络。这种vSwitch的实现,屏蔽了物理网络的模型与拓扑差异,将物理网络的技术实现与计算虚拟化的关键要求分离开来,几乎可以支持以太网在任意网络上的透传,使得云的计算资源调度范围空前扩大。

特别的,为了使得VXLAN Overlay网络更加简化运行管理,便于云的服务提供,各厂家使用集中控制的模型,将分散在多个物理服务器上的vSwitch构成一个大型的、虚拟化的分布式Overlay vSwitch(如图8所示),只要在分布式vSwitch范围内,虚拟机在不同物理服务器上的迁移,便被视为在一个虚拟的设备上迁移,如此大大降低了云中资源的调度难度和复杂度。

图8 分布式Overlay vSwitch

基于主机的Overlay网络数据流量出入物理网络,需要实现VXLAN的Overlay流量与传统的以太网数据流量之间的封装与解封装过程,而执行这个过程操作的功能点,被称为Overlay/VXLAN Gateway(如图9所示)。因为VXLAN网络的VTEP功能点本身就是VXLAN的封装与解封装隧道点,因此VXLAN Gateway首先需要具备VTEP功能,形态可以是vSwitch、物理交换机等,只是对于网络中的虚机或其它设备地址表项的处理有所差异。

图9 Overlay Gateway(VXLAN)

VXLAN Ovelay网络与物理网络连通有以下三种组网方案(如图10所示)。

ž 方案一:Overlay虚拟化网络+vSwitch GW+vRouter

Overlay的vSwitch本身具备隧道的封装与解封装能力,因此,H3C提供一种虚拟路由器来配合这种基本方式。将在硬件路由器中运行的软件vSR(基于H3C Comware平台的路由软件包)作为虚拟机运行在主机中,提供Overlay网络的虚拟路由功能(即vRouter能力),vRouter的接口同时连接到VXLAN的网络和VLAN基本功能的物理网络。从vSwitch接收到的VXLAN数据包被解除封装后,进入vRouter路由接口,可以被路由到外部网络;反之,vRouter接收到外部网络的数据可以进入VXLAN网络。

该方案的好处是:涉及Overlay的功能均在主机虚拟化环境vSwitch实现,并且虚拟路由功能使得Overlay网络部署更加灵活,极大降低外部物理网络要求。

ž 方案二:Overlay虚拟化网络+vSwitch GW+pRouter

本方案使用服务器中的vSwitch专门用作VXLAN的Gateway功能,而数据的路由功能,则由外部网络物理路由器承担。该方案除了不具备虚拟路由能力,Overlay的功能也都在主机虚拟化环境vSwitch实现,同时可以支持虚机与非虚拟化的物理服务器之间的二层数据通信要求。

ž 方案三:Overlay虚拟化网络+pSwitch GW+pRouter

当物理交换机支持VXLAN功能,则pSwitch与vSwicth可以实现Overlay的统一虚拟化组网,物理交换机执行VXLAN Gateway功能,不仅可以实现Overlay网络在物理网络上的终结,也可以支持虚机与非虚拟化服务器的混合组网业务,因为基于物理实现(物理交换机+物理路由器),整体网络可以达到极高性能。

图10 VXLAN Overlay网络与物理网络的连通方案

3.2.2 基于物理网络的Overlay虚拟化

(如图11所示)该方案在网络架构上与TRILL/FabricPath等技术类似,但是因为对于非VTEP要求的网络只需要IP转发,它比TRILL/FabricPath构建的成本更低,技术要求也更加简单,同时也容易构建多个数据中心之间的网络连接。

为了解决网络对虚拟机的感知与自动化控制,结合IEEE的802.1Qbg/VEPA技术,可以使得网络的Overlay与计算虚拟化之间产生关联,这样既可以保持服务器内部网络的简化,使用基本的VEPA,利用外部网络强化来保证高能力的控制要求,又在物理网络Overlay的虚拟化基础上增强了虚机在云中大范围调度的灵活性。

图11 物理网络的Overlay+VEPA

3.3 基于Overlay网络的多租户与网络服务——H3Cloud云网融合路线
对于计算资源丰富的数据中心,Overlay网络使得虚拟机不再为物理网络所限制,但是对于网络的L4-L7深度服务,在云计算环境下需求更为强烈,资源动态调度的计算环境,需要动态可调度的网络服务支撑。因此将传统的L4-L7服务转换为可云化的、可动态调度的服务资源,成为Overlay网络环境下的必须集成框架(如图12所示)。H3C基于Comware V7软件平台的L4-L7产品系列,可在虚拟化网络环境下资源化,以虚拟服务单元运行,分别提供对应路由器、防火墙、负载均衡、深度防御的vSR/vRouter、vFW、vLB、vIPS,利用数据中心计算资源与Overlay网络集成,提供等同于传统的L4-L7网络服务能力。

图12 Overlay网络集成服务虚拟化

在Overlay环境下的虚拟化网络服务,必须具备灵活的可分配性、可扩展性及可调度性,因此,自动化的编排组织能力显得非常重要(如图13所示)。除了将虚拟服务资源化,还要具备业务逻辑的组合关联,这些与物理网络L4-L7服务的固定配置管理不同,所有的网络服务资源也是在计算池中,要实现相应的业务关联和逻辑,难以通过物理网络实现,在Overlay网络的连通与编排下则相对易于实现。这种集成思路也将是H3C服务虚拟化的主要模式。

图13 基于Overlay虚拟化网络的服务编排

H3C云计算解决方案核心的架构是云网融合。在当前的特色方案系列均充分利用了云计算与物理网络融合、结合的特点,如:

ž VEPA——提供网络计算自动化的感知关联与自动化部署;

ž FCoE——统一交换的计算、存储网络;

ž DRX——基于H3C LB与虚拟机管理平台关联的虚机资源动态扩展;

ž PoC(Point of Cloud)——借助云端网络连通云计算中心与路由器集成X86虚拟化计算部件的统一云分支扩展;

ž 分级云——通过层级化网络构建纵向层次化云架构。

针对云计算即将进入Overlay阶段,H3C的技术路线目标是在H3Cloud架构中进一步实现Overlay虚拟化网络的融合(如图14所示)。新一阶段的云网融合,不仅包含分布式的Overlay、多租户的虚拟化网络,还将不断集成逐步产品化的虚拟网络服务部件(目前已经可提供vSR/vFW的服务部件),而对于原有的VEPA/FCoE/DRX/PoC/分级云等方案,将在基于Overlay的虚拟化网络架构下重新构建和集成,实现技术演进和延续的完整性。

图14 云网融合:H3Cloud从物理网络到Overlay虚拟网络的集成

4 结束语
Overlay的网络架构是物理网络向云和虚拟化的深度延伸,云的资源化能力可以脱离物理网络的多种限制,但两个网络本身却是需要连通交互才能实现云的服务能力,随着技术的发展,主机的Overlay技术也将向硬件化发展,并逐步会成为物理网络的一部分。但Overlay尚没有深度成熟,还需要较长时间发展和应用,其中的问题会逐步暴露和解决。

百家:云计算网络,没那么简单
数据中心虚拟化成为了趋势,通过服务器虚拟化提高资源利用率,同时降低单位能耗。但是,随着数据中心虚拟化程度的不断提高、虚拟化服务器规模的不断扩大,带来了巨大的管理压力。这就孕育了云计算诞生的条件。在大规模虚拟化的基础上,实现了自动化管理和集中化管理,就是云计算的基本模型。这一点在互联网行业尤其重要。

一、 互联网云计算对网络的需求

互联网行业数据中心的基本特征就是服务器的规模偏大。进入云计算时代后,其业务特征变得更加复杂,包括:虚拟化支持、多业务承载、资源灵活调度等(如图1所示)。与此同时,互联网云计算的规模不但没有缩减,反而更加庞大。这就给云计算的网络带来了巨大的压力。

图1. 互联网云计算的业务特点

l 大容量的MAC表项和ARP表项

虚拟化会导致更大的MAC表项。假设一个互联网云计算中心的服务器有5000台,按照1:20的比例进行虚拟化,则有10万个虚拟机。通常每个虚拟机会配置两个业务网口,这样这个云计算中心就有20万个虚拟网口,对应的就是需要20万个MAC地址和IP地址。云计算要求资源灵活调度,业务资源任意迁移。也就是说任意一个虚拟机可以在整个云计算网络中任意迁移。这就要求全网在一个统一的二层网络中。全网任意交换机都有可能学习到全网所有的MAC表项。与此对应的则是,目前业界主流的接入交换机的MAC表项只有32K,基本无法满足互联网云计算的需求。另外,网关需要记录全网所有主机、所有网口的ARP信息。这就需要网关设备的有效ARP表项超过20万。大部分的网关设备芯片都不具备这种能力。

l 4K VLAN Trunk问题

传统的大二层网络支持任意VLAN的虚拟机迁移到网络的任意位置,一般有两种方式。方式一:虚拟机迁移后,通过自动化网络管理平台动态的在虚拟机对应的所有端口上下发VLAN配置;同时,还需要动态删除迁移前虚拟机对应所有端口上的VLAN配置。这种方式的缺点是实现非常复杂,同时自动化管理平台对多厂商设备还面临兼容性的问题,所以很难实现。方式二:在云计算网络上静态配置VLAN,在所有端口上配置VLAN trunk all。这种方式的优点是非常简单,是目前主流的应用方式。但这也带来了巨大的问题:任一VLAN内如果出现广播风暴,则全网所有VLAN内的虚拟机都会受到风暴影响,出现业务中断。

l 4K VLAN上限问题

云计算网络中有可能出现多租户需求。如果租户及业务的数量规模超出VLAN的上限(4K),则无法支撑客户的需求。

l 虚拟机迁移网络依赖问题

VM迁移需要在同一个二层域内,基于IP子网的区域划分限制了二层网络连通性的规模。

二、 互联网云计算网络为什么选择Overlay

针对互联网云计算对网络提出的这些挑战,H3C选择了基于VXLAN技术的Overlay网络架构来构建自己的云计算网络解决方案。

1. Overlay如何应对云计算网络的挑战

首先,Overlay的核心是重新构建一个逻辑网络平面,其技术手段的关键是采用隧道技术实现L2oIP的封装。通过隧道实现各虚拟机之间的二层直连。这样网络只看见Overlay边缘节点的MAC地址,物理网络学习到的MAC表项非常有限,现有接入交换机32K的MAC表项足以满足需求(如图2所示)。对应的Overlay边缘节点实现基于会话的地址学习机制,也就是说只学习有交互流量的虚拟机MAC地址。这样也严格限制了边缘节点的地址表项。

图2. Overlay网络如何应对云计算网络的挑战

其次,Overlay网络仅仅是一个逻辑上的二层直连网络。其依赖的物理网络,是一个传统的路由网络。这个路由网络是一个三层到边缘的网络。也就是说二层广播域被缩小到极致。这样,网络风暴潜在的风险大幅度降低。同时,对于一些需要依赖二层广播的协议报文,例如:ARP报文,Overlay网络通过ARP代理等方式实现协议的内容透传,不会影响协议报文的正常运作。

再次,针对4K VLAN上限问题,Overlay网络通过L2oIP的封装字段,提供24bits长度的隔离ID,最大可以支持16M租户或业务。

最后,针对网络虚拟化问题。Overlay网络本身就是一个从物理网络中抽离的逻辑网络,通过名址分离使得内层IP地址完全作为一个寻址标签,不再具备路由功能,可以实现不同subnet之间二层互通,保证二层网络的连通性不受IP地址段的限制。

2. H3C为什么选择VXLAN

从Overlay网络出现开始,业界陆续定义了多种实现Overlay网络的技术,主流技术包括:VXLAN、NVGRE、STT、Dove等(如图3所示)。

图3 Overlay主流技术概览

从标准化程度进行分析,DOVE和STT到目前为止,标准化进展缓慢,基本上可以看作是IBM和VMware的私有协议。因此,从H3C的角度来看无法选择这两种技术。

从技术的实用性来看,XLAN和NVGRE两种技术基本相当。其主要的差别在于链路Hash能力。由于NVGRE采用了GRE的封装报头,需要在标准GRE报头中修改部分字节来进行Hash实现链路负载分担。这就需要对物理网络上的设备进行升级改造,以支持基于GRE的负载分担。这种改造大部分客户很难接受。相对而言,VXLAN技术是基于UDP报头的封装,传统网络设备可以根据UDP的源端口号进行Hash实现链路负载分担。这样VXLAN网络的部署就对物理网络没有特殊要求。这是最符合客户要求的部署方案,所以VXLAN技术是目前业界主流的实现方式。

3. VXLAN为什么选择SDN

VXLAN的标准协议目前只定义了转发平面流程,对于控制平面目前还没有协议规范,所以目前业界有三种定义VXLAN控制平面的方式。

¡ 方式1:组播。由物理网络的组播协议形成组播表项,通过手工将不同的VXLAN与组播组一一绑定。VXLAN的报文通过绑定的组播组在组播对应的范围内进行泛洪。简单来说,和VLAN方式的组播泛洪和MAC地址自学习基本一致。区别只是前者在三层网络中预定义的组播范围内泛洪,而后者是在二层网络中指定VLAN范围内泛洪。这种方式的优点是非常简单,不需要做协议扩展。但缺点也是显而易见的,需要大量的三层组播表项,需要复杂的组播协议控制。显然,这两者对于传统物理网络的交换机而言,都是巨大的负荷和挑战,基本很难实现。同时,这种方式还给网络带来大量的组播泛洪流量,对网络性能有很大的影响。

¡ 方式2:自定义协议。通过自定义的邻居发现协议学习Overlay网络的拓扑结构并建立隧道管理机制。通过自定义(或扩展)的路由协议透传Overlay网络的MAC地址(或IP地址)。通过这些自定义的协议可以实现VXLAN控制平面转发表项的学习机制。这种方式的优点是不依赖组播,不存在大量的组播泛洪报文,对网络性能影响很小。缺点是通过邻居发现协议和路由协议控制所有网络节点,这样网络节点的数量就受到协议的限制。换句话说,如果网络节点的数量超过一定范围,就会导致对应的协议(例如路由协议)运行出现异常。这一点在互联网行业更加明显,因为互联网行业云计算的基本特征就是大规模甚至超大规模。尤其是在vSwitch上运行VXLAN自定义路由协议,其网络节点数量可以达到几千甚至上万个,没有路由协议可以支持这种规模的网络。

¡ 方式3:SDN控制器。通过SDN控制器集中控制VXLAN的转发,经由Openflow协议下发表项是目前业界的主流方式。这种方式的优点是不依赖组播,不对网络造成负荷;另外,控制器通过集群技术可以实现动态的扩容,所以可以支持大规模甚至超大规模的VXLAN网络。当然,SDN控制器本身的性能和可靠性决定了全网的性能和可靠性,所以如何能够提高控制器的性能和可靠性就是核心要素。

三、 VXLAN Fabric网络架构的优势

云计算网络一直都有一个理念:Network as a Fabric,即整网可以看作是一个交换机。通过VXLAN Overlay可以很好地实现这一理念——VXLAN Fabric(如图4所示)。

图4 VXLAN Fabric网络架构

Spine和Leaf节点共同构建了Fabric的两层网络架构,通过VXLAN实现Spine和Leaf之间的互联,可以看做是交换机的背板交换链路。Spine节点数量可以扩容,最大可以达到16台。Leaf节点数量也可以平滑扩容。理论上只要Spine节点的端口密度足够高,这个Fabric可以接入数万台物理服务器。

另外,通过VXLAN隧道可以实现安全服务器节点的灵活接入。这些安全服务节点可以集中部署在一个指定区域,也可以灵活部署在任意Leaf节点下。通过Service Chain技术实现任意两个虚拟机之间可以通过任意安全服务节点互联。保证网络中虚拟机业务的安全隔离和控制访问。同理,Fabric的出口节点也可以部署在任意位置,可以灵活扩展。

简而言之,VXLAN Fabric构建了一个灵活的、稳定的、可扩展的Overlay网络。这个网络可以有效地解决云计算对网络的挑战,是云计算网络发展的趋势。
————————————————
原文链接:https://blog.csdn.net/zhaihaifei/article/details/74340428

(转载)Overlay网络的更多相关文章

  1. Overlay网络技术之vxvlan

    了解云计算数据中心网络架构的过程中,看到这么一篇不错的关于大二层技术overlay的文章,转载分享给大家! 一. 传统网络面临的问题 随着企业业务的快速扩展需求,IT做为基础设施,快速部署和减少投入成 ...

  2. Overlay网络与物理网络的关系

    编者按:无论是云计算还是SDN都把注意力集中在数据中心网络的建设上,各种解决方案层出不穷,其中以VMware为代表的软件厂商提出Overlay网络方案后,为数据中心网络的发展提出了新的思路.那么Ove ...

  3. Docker 新网络 overlay 网络

    Overlay网络是指在不改变现有网络基础设施的前提下,通过某种约定通信协议,把二层报文封装在IP报文之上的新的数据格式. 这样不但能够充分利用成熟的IP路由协议进程数据分发,而且在Overlay技术 ...

  4. 准备 overlay 网络实验环境 - 每天5分钟玩转 Docker 容器技术(49)

    为支持容器跨主机通信,Docker 提供了 overlay driver,使用户可以创建基于 VxLAN 的 overlay 网络.VxLAN 可将二层数据封装到 UDP 进行传输,VxLAN 提供与 ...

  5. 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)

    上一节我们搭建好实验环境,配置并运行了consul,今天开始创建 overlay 网络. 在 host1 中创建 overlay 网络 ov_net1: -d overlay 指定 driver 为 ...

  6. sdn学习-1(概念:Underlay网络和Overlay网络)

    随着云计算.大数据.移动互联网等新技术的普及,部署大量虚拟机成为一种必然趋势.解决这些虚拟机迁移问题理想的方案是在传统单层网络(Underlay)基础上叠加(Overlay)一层逻辑网络,将网络分成两 ...

  7. overlay网络隔离实验失败记录

    按照 https://www.cnblogs.com/CloudMan6/p/7341487.html进行操作,实验结果与老师文章中的正好相反,不同 overlay 网络中的主机可以通信,验证部分见下 ...

  8. 050、创建overlay网络(2019-03-15 周五)

    参考https://www.cnblogs.com/CloudMan6/p/7280787.html   在host01中创建overlay网络 ov_net1   在下面的例子中可以看到,我们在ho ...

  9. 049、准备overlay网络实验环境(2019-03-14 周四)

    参考https://www.cnblogs.com/CloudMan6/p/7270551.html   为了支持容器跨主机通信,Docker提供了overlay driver,使用户可以创建基于Vx ...

  10. docker应用-5(使用overlay 网络进行容器间跨物理主机通信)

    同一个主机上的Docker容器之间通信 docker 引擎会在主机上增加一个docker0网卡,该网卡具有双重身份: 1.从容器视角,网桥(交换机)身份docker0 对于运行在同一个主机上的各个容器 ...

随机推荐

  1. CSS 数学函数与容器查询实现不定宽文本溢出跑马灯效果

    在许久之前,曾经写过这样一篇文章 -- 不定宽溢出文本适配滚动.我们实现了这样一种效果: 文本内容不超过容器宽度,正常展示 文本内容超过容器的情况,内容可以进行跑马灯来回滚动展示 像是这样: 但是,之 ...

  2. 安装pytorch报错 ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device

    windos安装,报错如下 看了不少回答,大概是缓存和内存满了 我的C盘只给了70G,然后意外发现只剩下3G多了,先用系统自带的清理工具清理了一下,然后腾讯电脑管家"工具箱"中的& ...

  3. JS的有关递归的知识点(数据无限级联的实现)

    所用测试数据: 1 const data = [ 2 { 3 "area_id": 5, 4 "name": "广东省", 5 " ...

  4. 让启动的jar包能打断点

    java  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar rbpsems-web-2.0.0-SNAP ...

  5. 自己写的垃圾shell

    #!/bin/bash echo -e "deb https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe mul ...

  6. python 获取docker容器内存使用率

    # -*- encoding: utf-8 -*- from subprocess import Popen, PIPE, STDOUTimport time def Run_Cmd(cmd): # ...

  7. 清理Linux系统无效的或者损坏的包

    参考:解决Linux的 [有1 个软件包没有被完全安装或卸载] 问题    ubuntu中卸载没有安装完全的软件包    Ubuntu安装.基本命令和常见故障处理 1. 1 apt-get insta ...

  8. MAC怎么快速截图

    ​ 1.截取全屏 按住[command][shift][3]这三个键即可截取全屏. ​ 编辑 2.截取某区域 按住[command][shift][4]. ​ 编辑 3.截图完成 在电脑桌面能找到截图 ...

  9. Software_programming_automation_selenium

    10:52:37 Table 获取 tr list 注意会无法正常遍历获取. 修正后正常 1 public SelectionCriteriaPage checkSpecifyTag(int coun ...

  10. mysql拼接多条字段

    转 未合并情况 SELECTa.id,b.name AS "role"FROM sys_user aINNER JOIN sys_user_role c ON a.id=c.use ...