1 概述
1.1 产生背景
随着企业业务的快速扩展,IT作为基础设施,其快速部署和高利用率成为主要需求。云计算可以为之提供可用的、便捷的、按需的资源提供,成为当前企业IT建设的常规形态,而在云计算中大量采用和部署的虚拟化几乎成为一个基本的技术模式。部署虚拟机需要在网络中无限制地迁移到目的物理位置,虚机增长的快速性以及虚机迁移成为一个常态性业务。传统的网络已经不能很好满足企业的这种需求,面临着如下挑战:
· 虚拟机迁移范围受到网络架构限制
虚拟机迁移的网络属性要求,当其从一个物理机上迁移到另一个物理机上,虚拟机需要不间断业务,因而需要其IP地址、MAC地址等参数维持不变,如此则要求业务网络是一个二层网络,且要求网络本身具备多路径多链路的冗余和可靠性。传统的网络生成树(STP,Spaning Tree Protocol)技术不仅部署繁琐,且协议复杂,网络规模不宜过大,限制了虚拟化的网络扩展性。基于各厂家私有的IRF/vPC等设备级的(网络N:1)虚拟化技术,虽然可以简化拓扑、具备高可靠性,但是对于网络有强制的拓扑形状,在网络的规模和灵活性上有所欠缺,只适合小规模网络构建,且一般适用于数据中心内部网络。而为了大规模网络扩展的TRILL/SPB/FabricPath/VPLS等技术,虽然解决了上述技术的不足,但对网络有特殊要求,即网络中的设备均要软硬件升级,而支持此类新技术会带来部署成本的大幅度上升。
· 虚拟机规模受网络规格限制
在大二层网络环境下,数据流均需要通过明确的网络寻址以保证准确到达目的地,因此网络设备的二层地址表项大小(即MAC地址表),成为决定了云计算环境下虚拟机的规模上限,并且因为表项并非百分之百的有效性,使得可用的虚机数量进一步降低。特别是对于低成本的接入设备而言,因其表项一般规格较小,限制了整个云计算数据中心的虚拟机数量,但如果其地址表项设计为与核心或网关设备在同一档次,则会提升网络建设成本。虽然核心或网关设备的MAC与ARP规格会随着虚拟机增长也面临挑战,但对于此层次设备能力而言,大规格是不可避免的业务支撑要求。减小接入设备规格压力的做法可以是分离网关能力,如采用多个网关来分担虚机的终结和承载,但如此也会带来成本的巨幅上升。
· 网络隔离/分离能力限制
当前的主流网络隔离技术为VLAN(或VPN),在大规模虚拟化环境部署会有两大限制:一是VLAN数量在标准定义中只有12个比特单位,即可用的数量为4K,这样的数量级对于公有云或大型虚拟化云计算应用而言微不足道,其网络隔离与分离要求轻而易举会突破4K;二是VLAN技术当前为静态配置型技术(只有EVB/VEPA的802.1Qbg技术可以在接入层动态部署VLAN,但也主要是在交换机接主机的端口为常规部署,上行口依然为所有VLAN配置通过),这样使得整个数据中心的网络几乎为所有VLAN被允许通过(核心设备更是如此),导致任何一个VLAN的未知目的广播数据会在整网泛滥,无节制消耗网络交换能力与带宽。
上述的三大挑战,完全依赖于物理网络设备本身的技术改良,目前看来并不能完全解决大规模云计算环境下的问题,一定程度上还需要更大范围的技术革新来消除这些限制,以满足云计算虚拟化的网络能力需求。在此驱动力基础上,逐步演化出Overlay网络技术。
1.2 技术优点
Overlay是一种叠加虚拟化技术,主要具有以下优点:
· 基于IP网络构建Fabric。无特殊拓扑限制,IP可达即可;承载网络和业务网络分离;对现有网络改动较小,保护用户现有投资。
· 16M多租户共享,极大扩展了隔离数量。
· 网络简化、安全。虚拟网络支持L2、L3等,无需运行LAN协议,骨干网络无需大量VLAN Trunk。
· 支持多样化的组网部署方式,支持跨域互访。
· 支持虚拟机灵活迁移,安全策略动态跟随。
· 转发优化和表项容量增大。消除了MAC表项学习泛滥,ARP等泛洪流量可达范围可控,且东西向流量无需经过网关。
2 Overlay技术介绍
2.1 Overlay的概念介绍
Overlay在网络技术领域,是一种网络架构上叠加的虚拟化技术模式,其大体框架是对基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业务分离,并且以基于IP的基础网络技术为主(如图1所示)。
· Overlay网络是指建立在已有网络上的虚拟网,逻辑节点和逻辑链路构成了Overlay网络。
· Overlay网络是具有独立的控制和转发平面,对于连接在overlay边缘设备之外的终端系统来说,物理网络是透明的。
· Overlay网络是物理网络向云和虚拟化的深度延伸,使云资源池化能力可以摆脱物理网络的重重限制,是实现云网融合的关键。
图1 Overlay网络概念图
2.2 Overlay的解决方法
针对前文提到的三大挑战,Overlay给出了完美的解决方法。
· 针对虚机迁移范围受到网络架构限制的解决方式
Overlay把二层报文封装在IP报文之上,因此,只要网络支持IP路由可达就可以部署Overlay网络,而IP路由网络本身已经非常成熟,且在网络结构上没有特殊要求。而且路由网络本身具备良好的扩展能力,很强的故障自愈能力和负载均衡能力。采用Overlay技术后,企业不用改变现有网络架构即可用于支撑新的云计算业务,极方便用户部署。
· 针对虚机规模受网络规格限制的解决方式
虚拟机数据封装在IP数据包中后,对网络只表现为封装后的网络参数,即隧道端点的地址,因此,对于承载网络(特别是接入交换机),MAC地址规格需求极大降低,更低规格也就是几十个(每个端口一台物理服务器的隧道端点MAC)。当然,对于核心/网关处的设备表项(MAC/ARP)要求依然极高,当前的解决方案仍然是采用分散方式,通过多个核心/网关设备来分散表项的处理压力。
· 针对网络隔离/分离能力限制的解决方式
针对VLAN只能支持数量4K以内的限制,在Overlay技术中扩展了隔离标识的位数,可以支持高达16M的用户,极大扩展了隔离数量。
2.3 Overlay的技术标准
IETF在Overlay技术领域提出VXLAN、NVGRE、STT三大技术方案。大体思路均是将以太网报文承载到某种隧道层面,差异性在于选择和构造隧道的不同,而底层均是IP转发。VXLAN和STT对于现网设备而言对流量均衡要求较低,即负载链路负载分担适应性好,一般的网络设备都能对L2-L4的数据内容参数进行链路聚合或等价路由的流量均衡,而NVGRE则需要网络设备对GRE扩展头感知并对flow ID进行HASH,需要硬件升级;STT对于TCP有较大修改,隧道模式接近UDP性质,隧道构造技术属于革新性,且复杂度较高,而VXLAN利用了现有通用的UDP传输,成熟性极高。
所以总体比较,VLXAN技术具有更大优势,而且当前VLXAN也得到了更多厂家和客户的支持,已经成为Overlay技术的主流标准,所以本文的后续介绍均以VXLAN技术作为标准进行介绍,NVGRE、STT则不再赘述。
VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术,具体封装的报文格式如图2所示。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联功能,主要应用于数据中心网络。
图2 VXLAN报文
VXLAN在原始二层数据帧外添加:
· 20字节IP头,目的IP为隧道对端VTEP地址或组播地址。
· 8字节UDP头,UDP头的目的端口号缺省为4789。源端口可按流分配;为了使VXLAN充分利用承载网络路由的均衡性,VXLAN通过将原始以太网数据头(MAC、IP、四层端口号等)的HASH值作为UDP的号。
· 8字节VXLAN头:
Flags:“I”位为1时,表示VXLAN头中的VXLAN ID有效;
“I”位为0时,表示VXLAN ID无效。其他位保留未用(为0)。
VXLAN ID:用来标识一个VXLAN网络,长度为24比特。
VXLAN具有如下特点:
· 使用24位的标识符,更多可支持16M个VXLAN,解决了传统二层网络VLAN资源不足的问题。
· 基于IP网络组建大二层网络,使得网络部署和维护更加容易,并且可以好地利用现有的IP网络技术,例如利用等价路由负载分担。
· 只有边缘设备需要进行VXLAN处理,VXLAN业务对网络中间设备透明,只需根据IP头转发报文,降低了网络部署的难度和费用。
根据客户不同组网需求,Overlay的网络部署分为以下三种组网模型,如图3所示。
图3 Overlay的网络部署图
网络Overlay的隧道封装在物理交换机完成。这种Overlay的优势在于物理网络设备性能转发性能比较高,可以支持非虚拟化的物理服务器之间的组网互通。它的缺点就是现网设备大都不支持VXLAN, 需要大批量更换设备。
主机Overlay隧道封装由虚拟设备完成,不用增加新的网络设备即可完成Overlay部署,可以支持虚拟化的服务器之间的组网互通。它纯粹由服务器实现Overlay功能,对现有网络改动不大,但是可能存在转发瓶颈。
混合Overlay是Network Overlay和Host Overlay的混合组网,可以支持物理服务器和虚拟服务器之间的组网互通。它融合了两种Overlay方案的优点,既可以发挥硬件GW的转发性能,又尽可能的减少对于现有网络的改动。
3 Overlay技术实现
3.1 Overlay网络基础架构
Overlay网络的基础架构如图4所示:
图4 Overlay网络的基础架构
· VM(Virtual Machine,虚拟机)
在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通。
两个VXLAN 可以具有相同的MAC地址,但一个段不能有一个重复的MAC地址。
· VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)
VXLAN的边缘设备,进行VXLAN业务处理:识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装VXLAN报文等。
VXLAN通过在物理网络的边缘设置智能实体VTEP,实现了虚拟网络和物理网络的隔离。VTEP之间建立隧道,在物理网络上传输虚拟网络的数据帧,物理网络不感知虚拟网络。VTEP将从虚拟机发出/接受的帧封装/解封装,而虚拟机并不区分VNI和VXLAN隧道。
· VNI(VXLAN Network Identifier,VXLAN网络标识符)
VXLAN采用24比特标识二层网络分段,使用VNI来标识二层网络分段,每个VNI标识一个VXLAN,类似于VLAN ID作用。VNI占用24比特,这就提供了近16M可以使用的VXLANs。VNI将内部的帧封装(帧起源在虚拟机)。使用VNI封装有助于VXLAN建立隧道,该隧道在第3层网络之上覆盖率第二层网络。
· VXLAN隧道
在两个VTEP之间完成VXLAN封装报文传输的逻辑隧道。业务入隧道进行VXLAN头、UDP头、IP头封装后,通过三层转发透明地将封装后的报文转发给远端VTEP,远端VTEP对其进行出隧道解封装处理。
· VSI(Virtual Switching Instance,虚拟交换实例)
VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。
3.2 Overlay网络部署需求
3.2.1 VXLAN 对基础承载网络的需求
· MTU
VXLAN需要增加50字节用于封装VM发出的报文,需要更大的IP网络端到端的MTU。
· VXLAN 卸载
由于VXLAN加入了新的VXLAN报文头,VXLAN网络报文不能再利用网卡的硬件卸载能力,这会导致支持VXLAN的vSwitch进一步占用CPU。
3.2.2 VXLAN 网络和传统网络互通的需求
为了实现VLAN和VXLAN之间互通,VXLAN定义了VXLAN网关。VXLAN上同时存在VXLAN端口和普通端口两种类型端口,它可以把VXLAN网络和外部网络进行桥接和完成VXLAN ID和VLAN ID之间的映射和路由,和VLAN一样,VXLAN网络之间的通信也需要三层设备的支持,即VXLAN路由的支持。同样VXLAN网关可由硬件和软件来实现。
当收到从VXLAN网络到普通网络的数据时,VXLAN网关去掉外层包头,根据内层的原始帧头转发到普通端口上;当有数据从普通网络进入到VXLAN网络时,VXLAN网关负责打上外层包头,并根据原始VLAN ID对应到一个VNI,同时去掉内层包头的VLAN ID信息。相应的如果VXLAN网关发现一个VXLAN包的内层帧头上还带有原始的二层VLAN ID,会直接将这个包丢弃。
如图5所示。VXLAN网关更简单的实现应该是一个Bridge设备,仅仅完成VXLAN到VLAN的转换,包含VXLAN到VLAN的1:1、N:1转换,复杂的实现可以包含VXLAN Mapping功能实现跨VXLAN转发,实体形态可以是vSwitch、TOR交换机。
如图5所示。VXLAN路由器更简单的实现可以是一个Switch设备,支持类似VLAN Mapping的功能,实现VXLAN ID之间的Mapping,复杂的实现可以是一个Router设备,支持跨VXLAN转发,实体形态可以是vRouter、TOR交换机、路由器。
图5 VXLAN网关和VXLAN路由简单实现
3.2.3 VXLAN 网络安全需求
同传统网络一样,VXLAN网络同样需要进行安全防护。
VXLAN网络的安全资源部署需要考虑两个需求:
· VXLAN和VLAN之间互通的安全控制
传统网络和Overlay网络中存在流量互通,需要对进出互通的网络流量进行安全控制,防止网络间的安全问题。针对这种情况,可以在网络互通的位置部署VXLAN防火墙等安全资源,VXLAN防火墙可以兼具VXLAN网关和VXLAN路由器的功能。
· VXLAN ID对应的不同VXLAN域之间互通的安全控制
VM之间的横向流量安全是在虚拟化环境下产生的特有问题,在这种情况下,同一个服务器的不同VM之间的流量可能直接在服务器内部实现交换,导致外部安全资源失效。针对这种情况,可以考虑使用重定向的引流方法进行防护,又或者直接基于虚拟机进行防护。
网络部署中的安全资源可以是硬件安全资源,也可以是软件安全资源,还可以是虚拟化的安全资源。
3.3 Overlay网络虚机位置无关性
通过使用MAC-in-UDP封装技术,VXLAN为虚拟机提供了位置无关的二层抽象,Underlay网络和Overlay网络解耦合。终端能看到的只是虚拟的二层连接关系,完全意识不到物理网络限制。
更重要的是,这种技术支持跨传统网络边界的虚拟化,由此支持虚拟机可以自由迁移,甚至可以跨越不同地理位置数据中心进行迁移。如此以来,可以支持虚拟机随时随地接入,不受实际所在物理位置的限制。
所以VXLAN的位置无关性,不仅使得业务可在任意位置灵活部署,缓解了服务器虚拟化后相关的网络扩展问题;而且使得虚拟机可以随时随地接入、迁移,是网络资源池化的更佳解决方式,可以有力地支持云业务、大数据、虚拟化的迅猛发展。
3.4 分布式网关
分布式网关把分布在多台主机的单一OVS逻辑上组成一个“大”交换机,原来每个OVS需要分别配置,而现在OVS分布式网关可在控制器管理界面集中配置、管理。
分布式网关通过控制器创建和维护,当一个OVS分布式网关被创建时,每一个主机会创建一个隐藏的OVS与分布式网关连接。
分布式网关主要具备以下几个功能:
· 可以实现OVS集中管理的功能,在控制器管理界面对OVS集中配置管理,无需对每个OVS单独配置、管理。
· OVS分布式网关可以通过流表实现VXLAN的二三层转发。
· 虚拟机迁移时可以使得虚拟机网络端口状态在从一个主机移到另一个主机时保持不变,这样就能支持对虚拟机持续地统计监控并促进安全性监控。
· 虚拟机迁移后,不需要重新配置网关等网络参数,部署简单、灵活。
OVS分布式网关通过流表实现VXLAN二三层转发的流程如下:
3.4.1 VXLAN上行
在OVS上送packet in报文到控制器,控制器通过packet in报文生成上行转发流表,并下到OVS主机上,详细步骤如下:
1. 控制器通过OpenFlow通道收到packet in报文。
2. 判断上送的IP 报文的IP-MAC为真实的;若非真实,丢包,不进行后续处理。
3. 报文中源端口在全局端口表中为vport端口;报文中源端口在全局端口表中配置为隧道口,进行VXLAN下行转发处理,不进行后续处理。
4. 报文中源端口所在vNetwork的类型为VXLAN;源端口所在vNetwork的类型为VLAN,进行VLAN转发,不进行后续处理。
5. 根据目的IP查询目的端口。
6. a)查询到目的端口,目的端口在同一主机上的VXLAN二层转发,根据源端口IP和MAC,目的端口的IP和MAC,以及入端口,生成主机内转发流表;
b)查询到目的端口,目的端口在同一主机上的VXLAN三层转发,根据源端口IP和MAC,目的端口的IP和MAC,替换源MAC为虚MAC,目的MAC为目的端口真实MAC,以及入端口,生成主机内转发流表;
c)查询到目的端口,目的端口在不同主机上的VXLAN二层转发,根据源端口IP和MAC,目的端口的IP和MAC,目的端口所在主机的VTEP IP,以及入端口,生成主机内转发流表;
d)查询到目的端口,目的端口在不同主机上的VXLAN三层转发,根据源端口IP和MAC,目的端口的IP和MAC,替换源MAC为虚MAC,目的MAC为目的端口真实MAC,目的端口所在主机的VTEP IP,以及入端口,生成主机内转发流表。
e)在源端口所在的Router内,查询目的IP,所在的子网网段属于Router,则进行丢表处理;
f)没有查询到目的端口,曾查询物理网关的MAC 和VTEP IP,把目的MAC替换成网关MAC,源MAC替换成虚MAC,生成转发流表。
7. 下发流表到OVS上。
8. 把首包直接发送到目的端口上。
3.4.2 VXLAN下行
在OVS上送packet in报文到控制器,控制器通过packet in报文生成下行转发流表,并下到OVS主机上,详细步骤如下:
1. 控制器通过OpenFlow通道收到packet in报文.
2. 判断上送的IP 报文的IP-MAC为真实的;IP-MAC不是真实的,丢包不进行后续处理。
3. 收取端口不是vport类型;若报文中源端口在全局端口表中配置为vport,进行上行转发处理,不进行后续处理。
4. 入端口类型为隧道口;若入端口类型为uplink,进行VLAN下行流处理,不进行后续处理。
5. 根据目的IP查找目的端口。
6. 查找到目的端口,把目的MAC替换为真实MAC。目的MAC、VNI和OUTPUT,生成转发流表;没有查询到目的端口,丢包不进行后续处理。
7. 下发流表到OVS上。
8. 把首包直接发送到目的端口上。
3.5 Overlay网络流表路由
· ARP代答
对于虚拟化环境来说,当一个虚拟机需要和另一个虚拟机进行通信时,首先需要通过ARP的广播请求获得对方的MAC地址。由于VXLAN网络复杂,广播流量浪费带宽,所以需要在控制器上实现ARP代答功能。即由控制器对ARP请求报文统一进行应答,而不创建广播流表。
ARP代答的大致流程:控制器收到OVS上送的ARP请求报文,做IP-MAC防欺骗处理确认报文合法后,从ARP请求报文中获取目的IP,以目的IP为索引查找全局表获取对应MAC,以查到的MAC作为源MAC构建ARP应答报文,通过Packetout下发给OVS。
3.5.1 Overlay网络到非Overlay网络
Overlay网络到非Overlay网络的流表建立和路由发布如图6所示:
图6 Overlay网络到非Overlay网络的流表建立和路由发布
创建VM的时候,会同时分配IP和MAC信息。然后VM发送ARP请求报文,该报文会通过Packet-in被上送到控制器。控制器做IP-MAC防欺骗处理确认报文合法后,通过ARP代答功能构建ARP应答报文并通过Packet-out下发。
VM收到从ARP应答报文后,封装并发送IP首包。OVS收到IP首报后发现没有对应流表,就将该IP首包通过Packet-in上送控制器。控制器通过OpenFlow通道收到Packet-in报文后,判断上送的IP 报文的IP-MAC为真实的。然后根据报文中的目的IP查询目的端口,将IP首包直接发送到目的端口,同时生成相应流表下发OVS。若没有查询到目的端口,曾查询物理网关的MAC 和VTEP IP,把目的MAC替换成网关MAC,源MAC替换成虚机MAC,生成转发流表下发OVS, IP首包也同时被packet out到OVS匹配流表转发。
流表下发到OVS后,而后续的IP报文就会根据OVS上的流表进行转发,而不再需要上送控制器。
从overlay网络到非overlay网络的路由处理需要用户首先在网管上预配置路由协议引入静态路由,然后控制器创建subnet并通过Netconf将subnet静态路由下发到GW,更终由GW将overlay子网路由发布到非overlay网络。
3.5.2 非Overlay网络到Overlay网络
非Overlay网络到Overlay网络的流表建立和路由发布如图7所示:
图7 非Overlay网络到Overlay网络的流表建立和路由发布
创建VM的时候,会同时分配IP、 MAC和UUID等信息。VM上线时会触发OVS发送Port Status消息上送控制器,该消息携带VM MAC信息。控制器根据VM MAC查找IP等相关信息,然后携带VM的相关信息通知GW虚机上线,VM的相关信息主要包括:VM的IP地址,VM在虚拟网络中所属的VXLAN,VM连接的OVS IP,OVS的datapath ID。
GW首先根据OVS IP检查OVS和GW之间是否已经存在一条可用的隧道。如果已存在,则直接使用找到的隧道,并修改隧道上的VM引用计数。如果不存在,则在预创建的隧道中选择一条可用的隧道,并根据OVS IP修改隧道的目的地址。
控制器根据VM上线消息中携带的数据,构造物理机向VM转发报文时使用的流表表项,并下发到VM所在VNI对应网关分组中的所有GW。流表表项的内容如下:
Match Field:入接口VM所属VNI对应的VPN绑定的三层口,目的IP为VM的IP
Action:Remark 目的MAC为OVS MAC,Remark源MAC为GW的MAC,指定出接口为GW与OVS之间的隧道口
从非overlay网络到overlay网络的路由处理是通过传统路由协议,将非虚拟化网络服务器对应子网发布到VXLAN-GW。此路由不引入到虚拟化网络。路由协议由用户手动配置。
3.6 Overlay网络转发流程
· 报文所属VXLAN识别
VTEP只有识别出接收到的报文所属的VXLAN,才能对该报文进行正确地处理。
VXLAN隧道上接收报文的识别:对于从VXLAN隧道上接收到的VXLAN报文,VTEP根据报文
中携带的VNI判断该报文所属的VXLAN。
本地站点内接收到数据帧的识别:对于从本地站点中接收到的二层数据帧,VTEP通过以太网服务实例(Service Instance)将数据帧映射到对应的VSI, VSI内创建的VXLAN即为该数据帧所属的VXLAN。
· MAC地址学习
本地MAC地址学习:指本地VTEP连接的本地站点内虚拟机MAC地址的学习。本地MAC地址通过接收到数据帧中的源MAC地址动态学习,即VTEP接收到本地虚拟机发送的数据帧后,判断该数据帧所属的VSI,并将数据帧中的源MAC地址(本地虚拟机的MAC地址)添加到该VSI的MAC地址表中,该MAC地址对应的出接口为接收到数据帧的接口。
远端MAC地址学习:指远端VTEP连接的远端站点内虚拟机MAC地址的学习。远端MAC学习时,VTEP从VXLAN隧道上接收到远端VTEP发送的VXLAN报文后,根据VXLAN ID判断报文所属的VXLAN,对报文进行解封装,还原二层数据帧,并将数据帧中的源MAC地址(远端虚拟机的MAC地址)添加到所属VXLAN对应VSI的MAC地址表中,该MAC地址对应的出接口为VXLAN隧道接口。
3.6.1 Overlay网络到非Overlay网络
Overlay网络到非Overlay网络的转发流程如图8所示:
图8 Overlay网络到非Overlay网络的转发流程
虚拟机构造发送到物理机的报文,目的MAC为OVS的MAC,目的IP为要访问的物理机的IP,报文从虚拟机的虚拟接口发出。
OVS接收到虚拟机发送的报文,根据报文中的目的IP匹配OVS上的流表表项。匹配到流表表项后,修改报文的目的MAC为VX-GW的MAC,源MAC为OVS的MAC,并从指定的隧道接口发送。从指定的隧道接口发送报文时,会在报文中添加VXLAN头信息,并封装隧道外层报文头信息。
VX-GW从隧道口接收到VXLAN隧道封装报文,隧道自动终结,得到内层报文。在VX-GW上已配置VNI和VPN的映射关系,根据隧道报文的VNI信息,确定对应的VPN。在指定的VPN中,根据内层报文的目的IP按照FIB(非流表)进行报文三层转发,从出接口发送的报文为普通报文,其目的MAC为物理机MAC,源MAC为GW MAC,源IP为虚拟机IP,目的IP为物理机IP。
报文按照传统网络的转发方式继续转发。物理机接收到VX-GW转发的报文,实现虚拟机到物理机的访问。
3.6.2 非Overlay网络到Overlay网络
非Overlay网络到Overlay网络的转发流程如图9所示:
图9 非Overlay网络到Overlay网络的转发流程
物理机构造发送到虚拟机的报文,在传统网络中通过传统转发方式将报文转发到VX-GW。VX-GW接收该报文时,报文的目的MAC为VX-GW的MAC,目的IP为虚拟机的IP地址,从物理机发送出去的报文为普通报文。
VX-GW接收报文,根据报文的入接口VPN,目的IP和目的MAC匹配转发流表。匹配到流表后,修改报文的目的MAC为OVS的对应全局MAC(00163FAAAAA),源MAC为GW的MAC,并从指定的VXLAN隧道口发送。从隧道口发送报文时,根据流表中的信息添加VXLAN头信息,并对报文进行隧道封装。从GW发送报文为封装后的Overlay报文。
OVS接收到报文后,隧道自动终结。根据报文VNI和目的IP匹配转发流表。匹配到流表后,修改报文目的MAC为虚拟机MAC,修改报文源MAC为OVS的MAC,并从指定的端口发送。从OVS发送的报文为普通报文。
根据报文的目的MAC,虚拟机接收到物理机发送的报文,实现物理机到虚拟机的访问。
3.7 Overlay网络虚机迁移
在虚拟化环境中,虚拟机故障、动态资源调度功能、服务器主机故障或计划内停机等都会造成虚拟机迁移动作的发生。虚拟机的迁移,需要保证迁移虚拟机和其他虚拟机直接的业务不能中断,而且虚拟机对应的网络策略也必须同步迁移。
虚拟机迁移及网络策略如图11所示:
图10 虚拟机迁移及网络策略跟随
网络管理员通过虚拟机管理平台下发虚拟机迁移指令,虚拟机管理平台通知控制器预迁移,控制器标记迁移端口,并向源主机和目的主机对应的主备控制器分布发送同步消息,通知迁移的VPort,增加迁移标记。同步完成后,控制器通知虚拟机管理平台可以进行迁移了。
虚拟机管理平台收到控制器的通知后,开始迁移,创建VM分配IP等资源并启动VM。启动后目的主机上报端口添加事件,通知给控制器,控制器判断迁移标记,迁移端口,保存新上报端口和旧端口信息。然后控制器向目的主机下发网络策略。
源VM和目的执行内存拷贝,内存拷贝结束后,源VM关机,目的VM上线。源VM关机后,迁移源主机上报端口删除事件,通知给控制器,控制器判断迁移标记,控制器根据信息删除旧端口信息并同时删除迁移前旧端口对应的流表信息。
主控制器完成上述操作后在控制器集群内进行删除端口消息的通知。其他控制器收到删除端口信息后,也删除本控制器的端口信息,同时删除对应端的流表信息。源控制器需要把迁移后新端口通知控制器集群的其他控制器。其他控制器收到迁移后的端口信息,更新端口信息。当控制器重新收到Packet-in报文后,重新触发新的流表生成。
3.8 Overlay网关高可靠性
Overlay网关的高可靠性原理如图11所示:
图11 Overlay网关高可靠性
网关组中网关的VTEP IP和GW VMAC 相同,均通过路由协议对内网发布VTEP IP对应路由。
网关组内部,采用无状态转发设计,所有网关信息同步。
在处理OVS发往GW的流量时,动态选择GW组中的一个GW,可以很好地起到负载分担的作用。
网关故障后,流量切换到分组内其它网关,保证业务平滑迁移。
网关与内外网设备连接,采用聚合或ECMP方式,某链路故障,网关自动切换链路,无需人工干预。单个网关设备采用双主控,原主控故障,新主控接管设备管理,所有处理网关自动完成。转发层面和控制层面分离, VCF Controller不感知,网关上流量转发不受影响。
3.9 Overlay网关弹性扩展升级
受制于芯片的限制,单个网关设备支持的租户数量有限,控制器能够动态的将不同租户的隧道建立在不同的Overlay网关上,支持Overlay网关的无状态分布,实现租户流量的负载分担。
如图12所示,Overlay网络可以支持Overlay网关随着租户数量增加的扩充,当前更大可以支持超过64K个租户数量,从而提供一个具有弹性扩展能力的Overlay网络架构。
图12 Overlay网络弹性扩展
3.10 Overlay网络安全部署
如图13所示,Overlay网络的安全部署有三种模式,这三种模式既可以独立部署,也可以配合部署:
图13 Overlay网络的安全部署
· 旁挂部署
主要形态:硬件安全资源。
安全资源旁挂在核心/汇聚设备旁侧(部分安全资源也可选作为L3网关)。
安全资源关注VXLAN<->VLAN的安全访问控制。
· 服务器侧部署
主要形态:软件安全资源。
安全资源以VM形态部署在服务器内部,可以作为其他VM的网关。
如果安全资源支持VXLAN,可以完成VXLAN<->VLAN的安全访问控制。
全硬件VXLAN方案不推荐使用。
· 专用安全区部署
主要形态:软件或硬件安全资源。
安全资源集中部署在某一个TOR设备下,重点关注不同VXLAN ID之间互访的安全控制。
如果安全资源支持VXLAN,就直接配置VXLAN ID的互访策略。
如果安全资源不支持VXLAN,需要TOR完成VXLAN到VLAN的转换,然后安全资源上配置不同VLAN互访的安全策略。
4 Overlay典型应用
Overlay控制平面架构可以有多种实现方案,例如网络设备之间通过协议分布式交互的方式。而基于VCF控制器的集中式控制的实现方案,以其易于与计算功能整合的优势,能够更好地使网络与业务目标保持一致,实现Overlay业务全流程的动态部署,在业界逐步成为主流的Overlay部署方案。
H3C的VCF架构同时支持网络Overlay、主机Overlay和混合Overlay三种组网模型。
4.1 Overlay网络组网策略
现实组网部署的时候,需要针对客户需求以及客户已有资源进行针对性、差异化的Overlay网络部署。下文将对三种Overlay网络的部署策略进行简要的介绍说明,以供读者参考。
4.1.1 网络Overlay
· 定位
网络Overlay组网里的服务器可以是多形态也无需支持Overlay功能,所以网络Overlay的定位主要是网络高性能、与Hypervisor平台无关的Overlay方案。
· 面向客户
网络Overlay主要面向对性能敏感而又对虚拟化平台无特别倾向的客户群。该类客户群的网络管理团队和服务器管理团队的界限一般比较明显。
· 交付产品
交付产品主要有:多形态的Overlay Gateway、H3C Overlay Controller(可选)。
4.1.2 主机Overlay
· 定位
主机Overlay不能接入非虚拟化服务器,所以主机Overlay主要定位是配合VMAWRE、Microsoft等主流Hypervisor平台的overlay方案。
· 面向客户
主机Overlay主要面向已经选择了商用虚拟化平台并且希望部署主机Overlay的客户。
· 交付产品
交付产品主要有:多形态的Overlay Gateway和H3C Overlay Controller(可选)。
4.1.3 混合Overlay
· 定位
混合Overlay组网灵活,既可接入多形态的服务器,还可以兼顾高性能,所以混合Overlay的主要定位是Overlay整体解决方案,它可以为客户提供自主化、多样化的选择。
· 面向客户
混合Overlay主要面向愿意接受部署H3C vSwitch,同时又希望部署网络厂商的专业网络管理和Overlay Controller管理系统的客户。
· 交付产品
交付产品主要有:H3C vSwitch、多形态的Overlay Gateway和H3C Overlay Controller。
4.2 网络Overlay典型组网
网络Overlay将硬件设备作为Overlay网络的边缘设备和网关设备,Overlay功能纯粹由硬件进行实现,通过控制协议来实现网络构建和扩展
当前网络Overlay大多通过使用SR-IOV技术来满足客户的高性能和硬件资源高利用率的需求,同时还可以借此达到不依赖虚拟化平台的目的。
4.2.1 SR-IOV技术简介
SR-IOV (Single-Root I/O Virtualization)技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV规范的目标是在绕过虚拟机参与数据迁移过程中实施标准化,为每个虚拟机提供独立内存空间、中断和Direct Memory Access (DMA)流。SR-IOV架构的设计允许一个I/O设备支持多个虚拟功能,同时将每个功能的硬件成本降至更低。
使用SR-IOV技术的设备具有以下优点:
· 高性能
VM的网络IO性能等效物理网卡,同时可以降低CPU和延迟,提高网络吞吐量。
· 硬件利用率高
通过SR-IOV技术可以将一个硬件设备虚拟化大量VF网卡,可以大大提高硬件资源的利用率。
· 不依赖虚拟化平台
从虚拟机环境直接访问硬件,流量可以绕过vSwitch,VXLAN网络不再依赖于虚拟化平台厂商,可以由网络厂商主导。
4.2.2 典型组网
网络Overlay的交换机和路由器等物理设备作为Overlay网络的边缘设备和网关设备,它的隧道封装在物理设备完成,同时还可以通过部署VCF Controller来实现集中控制的功能。它的典型组网如图14所示:
图14 网络Overlay典型组网
该组网方案:
· 使用全硬件VXLAN网络方案,TOR交换机实现VXLAN网络VTEP。
· 利用SR-IOV网卡,让虚拟机直接绑定物理网卡虚拟化出来的VF,网络IO绕过vSwitch直接到TOR交换机,不再依赖于虚拟化平台。
· VXLAN VTEP/GW可以自由选择分布式控制或集中式控制,若选择集中式控制方案需部署VCF Controller。
该组网方案有以下优点:
· 更高的网卡和VXLAN性能。
· 通过TOR实现QOS、ACL,比软件vSwitch具备更高的性能。
· 不依赖虚拟化平台,客户可以有更高的组网自由度。
· 可以根据需要自由选择部署分布式或者集中式控制方案。
· 控制面实现可以由H3C高可靠的SDN Controller集群实现,提高了可靠性和可扩展性,避免了大规模的复杂部署。
· 网关组部署可以实现流量的负载分担和高可靠性传输。
· 支持分布式网关功能,使虚机迁移后不需要重新配置网关等网络参数,部署简单、灵活。
4.3 主机Overlay典型组网
主机Overlay主要利用泛洪或广播机制实现网络构建和扩展,它将虚拟设备作为Overlay网络的边缘设备和网关设备,Overlay功能纯粹由服务器来实现,它的典型组网如图15所示:
图15 主机Overlay典型组网
该组网方案:
· 使用物理服务器的vSwitch实现VXLAN网络VTEP。
· VXLAN VTEP/GW可以自由选择分布式控制或集中式控制,若选择集中式控制方案需部署VCF Controller。
· 客户已有VMware、Microsoft等主流Hypervisor平台,vSwitch由原Hypervisor平台管理,VCF Controller配合Hypervisor平台管理多形态Gateway。
该组网方案有以下优点:
· 适用于服务器虚拟化的场景,成本较低。
· 可以配合客户已有的VMware、Microsoft等主流Hypervisor平台,保护客户已有投资。
· 可以根据需要自由选择部署分布式或者集中式控制方案。
· 控制面实现可以由H3C高可靠的SDN Controller集群实现,提高了可靠性和可扩展性,避免了大规模的复杂部署。
· 网关组部署可以实现流量的负载分担和高可靠性传输。
· 支持分布式网关功能,使虚机迁移后不需要重新配置网关等网络参数,部署简单、灵活。
4.4 混合Overlay典型组网
混合Overlay将虚拟设备作为Overlay网络的边缘设备,将物理设备作为Overlay网络的网关设备,它的典型组网如图16所示:
图16 混合Overlay典型组网
该组网方案:
· 部署H3C 自主vSwitch。 H3C vSwitch也可以根据客户需求基于Linux KVM、VMware vSphere、Microsoft Hyper-V等平台部署。
· VXLAN VTEP和GW统一集中管理。
· 核心设备主要提供VXLAN网关功能,支持VXLAN报文的封装与解封装,并根据内层报文的IP头部进行三层转发,支持跨VXLAN之间的转发,支持VXLAN和传统VLAN之间的互通。
· vSwitch主要提供虚拟化VXLAN隧道封装功能,支持VM接入Overlay网络,支持VXLAN报文的封装与解封装,支持跨VXLAN之间的转发。此时vSwitch连接的物理交换机无需支持VXLAN功能。
· 物理接入网络设备主要提供VXLAN隧道封装功能,支撑物理服务器接入Overlay网络,支持VXLAN报文的封装与解封装,并根据内层报文的MAC头部进行二层转发。
该方案具有如下优点:
· 支持软硬件形态的边缘设备,灵活组网部署。
· 可以支持虚机与非虚拟化的物理服务器之间的二层数据互通。
· 高性能物理设备,提升了网络的整体性能。
· 控制面实现由H3C高可靠的SDN Controller集群实现,提高了可靠性和可扩展性,避免了大规模的复杂部署。
· 支持分布式网关功能,使虚机迁移后不需要重新配置网关等网络参数,部署简单、灵活。