1、Overlay网络技术原理介绍0102网络虚拟化的发展网络虚拟化的发展Overlay基本概念与分类基本概念与分类目录目录03VXLAN技术基础技术基础22数据中心虚拟化起源数据中心虚拟化起源 所谓虚拟化,本身就是一个广义的通用术语,保罗万象。 虚拟化是一种资源管理技术,本质是从物理到逻辑的映射,是物理资源的复用或融合。 特点:仿真、透明 实现 风格:模拟、伪装 起源:分时 共享1950s 1960s 1970s1980s 1990s 1998 19992001 20032004 2005 2006 2007 2008 2009 2010 2014虚拟虚拟内存机虚拟路 由转发VTLRAID以太网
2、VLAN通道X86虚拟化Data CoreESXiVmotion虚拟SANXEN虚拟 服务 器Invista微软Metro ClusterSAN弹性卷控计算制器云Hype vSphe虚拟 交换系统r-VreKVMFCoEVDSOpen FlowvSwitVXL chAN23虚拟化技术分类虚拟化技术分类 虚拟化技术按实现方法, 可以分类为:池化、抽 象、分区。 按照技术领域来划分, 可以分为:网络、存储、 服务器(计算)虚拟化 ,其中计算虚拟化是虚拟化剂。化技术发展最重要的催网络虚拟化24存储虚拟化服务器虚拟化虚拟内存vSwitchFCOEUCSVXLANNVGREVPLS VLANTRILLS
3、PBRAID阵列虚拟化虚拟磁带库LUNx86虚拟化大型机虚拟化 时分共享计算虚拟化业务的发展计算虚拟化业务的发展25 计算虚拟化业务经历了由单一到多元、分散到统一、由集中到分布,由局限于设备的虚拟化到整体数据中心云化,最后再由云服务各行各业的过程。 云计算的出现极大推动了计算虚拟化技术的提升,也促进了其他虚拟化技 术的发展。 1959年6月,Chirstopher首次提出计算虚拟化概念。 1965年,IBM发布首款操作系统虚拟化技术 1974年, Popek和Goldberg正式定义虚拟机。 1998年,Vmware将虚拟化技术引入x86架构。 1999年,第一个商业化IaaS平台LoudCl
4、oud出现. 2000年 ,SaaS兴起。 2004年,Google发布MapReduce论文,大数据基石Hadoop出现。 2005年,亚马逊推出AWS,公有云业务进入蓬勃发展。计算虚拟化面临的挑战计算虚拟化面临的挑战26 随着计算虚拟化发展,DC内大量部署的虚拟机提供云服务。部署虚拟机需 要在网络中无限制地迁移,虚拟机数量和增长速度也远超物理服务器,给 计算虚拟化带来了新的挑战。 虚拟机迁移范围受到网络架构限制虚拟机迁移范围受到网络架构限制 迁移的不中断性限制了网络是二层 传统的STP等部署繁琐,配置复杂,并且网络规模不能过大,限制了虚拟化的网络扩展性 各厂家私有的设备级虚拟化技术(如IR
5、F)虽然可以简化拓扑,单只能一般适合于数据中心内部网络计算虚拟化面临的挑战计算虚拟化面临的挑战27 虚拟机规模受网络规格限制虚拟机规模受网络规格限制 在二层网络环境下,MAC地址表成为决定了云计算环境下虚拟机的规模 上限的瓶颈,限制了整个云计算数据中心的虚拟机数量。 虚拟化业务虚拟化业务的的网络隔离网络隔离/分离能力限制分离能力限制 VLAN数量在标准定义中只有12个比特单位,即可用的数量为4K,这样 的数量级对于公有云或大型虚拟化云计算应用而言微不足道网络虚拟化技术概述网络虚拟化技术概述28 什么是网络虚拟机化: 可以构建出虚拟的网络链路或网络节点的技术,无论是二层的、大二层 的、三层的,还
6、是多虚一、一虚多,都属于网络虚拟化技术。 网络虚拟化的分层: 数据平面、控制平面、管理平面 网络虚拟化的优点:可扩展性、灵活性、安全性、构建逻辑分区 网络虚拟化从来不是单独发展的,而是和服务器虚拟化、存储虚拟化并列发 展的,为解决计算虚拟化面临的挑战,发展出了多种新的网络虚拟化技术, 网络虚拟化进入高速发展期。网络虚拟化技术的发展网络虚拟化技术的发展29 计算虚拟化面临的挑战,要求网络虚拟化能够以较低成本提供一个拥有充足隔离能力的透明大二层网络。 STP:部署繁琐,无法构建跨三层的二层网络,规模有限 IRF:简化网络拓扑,强制要求拓扑,只能用于数据中心内部 EVB:包括VEB、VEPA等部分,
7、只能解决虚拟机网络接入的问题。 802.1Qbh:需要专门芯片支持,厂商限制严重,也只能解决接入层。 Trill:引入了L2 ISIS做为寻址协议,在内外层Ethernet报头之间引入了TRILL报头,使用NickName作为转发标识,用于报文在TRILL网络中的寻址转发,MAC in MAC,落地情况一般,收敛慢,缺乏运维经验。 SPB:同样使用L2 ISIS做为寻址协议,MAC in MAC,负载均衡需要预 配置,缺乏运维经验。 需要一种新的网络虚拟化技术来满足计算虚拟化告诉发展带来的需求。0102网络虚拟化网络虚拟化Overlay基本概念与分类基本概念与分类目录目录03VXLAN技术基础
8、技术基础1010Overlay技术的出现技术的出现1011Overlay在网络技术领域,是一种网络架构上叠加的虚拟化技术模式,其大体框架是对 基础网络不进行大规模修改的条件下,实现应用在网络上的承载,并能与其它网络业 务分离,并且以基于IP的基础网络技术为主。Overlay网络是指建立在已有网络上的虚拟网,逻辑节点和逻辑链路构成了Overlay网络。Overlay网络是具有独立的控制和转发平面,对于连接在Overlay边缘设备之外的 终端系统来说,物理网络是透明的。Overlay网络的出现是为了实现已有网络所不能提供的功能和服务Overlay网络是 物理网络向云和虚拟化的深度延伸,使云资源池化
9、能力可以摆脱物理网络的重重 限制,是实现云网融合的关键。Overlay技术基本概念技术基本概念Overlay 网络网络物理承载网络物理承载网络主机主机Overlay 边缘设备Overlay 边缘设备Overlay 控制平面承载网络 控制平面数据平面Payload封装 Overlay 边缘设备边缘设备Overlay数据报文的封装/解封装 节点,决定了Overlay网络的规模 Overlay 控制平面控制平面 服务发现1012 地址通告和映射 隧道管理 Overlay 数据平面数据平面 提供数据封装,基于承载网络传输Overlay技术解决的问题技术解决的问题1013 针对虚机迁移范围受到网络架构限
10、针对虚机迁移范围受到网络架构限制制的解的解决决方式方式 Overlay把二层报文封装在IP报文之上,因此,只要网络支持IP路由可达就可以部署Overlay网络,而IP路由网络本身已经非常成熟,且在网络结构上没有特殊要求。而 且路由网络本身具备良好的扩展能力,很强的故障自愈能力和负载均衡能力。 针对虚机规模受网络规格限制的解针对虚机规模受网络规格限制的解决决方式方式 虚拟机数据封装在IP数据包中后,对网络只表现为封装后的网络参数,即隧道端点的地址,因此,对于承载网络(特别是接入交换机),MAC地址规格需求极大降低。 针针对对网络隔离网络隔离/分离能力限制的分离能力限制的解解决方式决方式 针对VL
11、AN只能支持数量4K以内的限制,在Overlay技术中扩展了隔离标识的位数, 可以支持高达16M的用户,极大扩展了隔离数量。Overlay技术的功能要求技术的功能要求1014 较低成本的构建跨越三层的大二层,通过隧道实现跨三层的二层互联。 感知虚拟机。接入交换机/隧道端点交换机与虚拟机机直连或通过TOR交换 机间接感知到虚拟机。 充足的网络或虚拟子网标识数量。 租户隔离:虚机的MAC藏在帧内部,不通逻辑2层网络或子网之间是隔离的, 在不同的租户内,实现IP MAC地址复用。 经过隧道封装,减轻物理交换机的MAC地址表压力,只需要学习隧道端点IP MAC地址信息。 对虚拟机透明:虚拟机感知不到隧
12、道封装。 可实现细粒度的负载均衡。Overlay网络类型网络类型物理设备vDeviceVMVM VMvDeviceVMVM VM虚拟设备vDeviceVMVM VMDB/Controller物理设备虚拟设备物理设备网络网络Overlay:1015 路由器或交换机作为Overlay网络的 边缘设备 服务器无需支持Overlay 通过控制协议来实现网络构建和扩展虚拟设备主机主机Overlay: 虚拟设备(vDevice)作为Overlay网络的边缘设备 适用于服务器全虚拟化的场景, 不能接入非虚拟化服务器混合混合Overlay: 混合组网,物理设备、虚拟设备 作为Overlay网络的边缘设备 可接
13、入各种形态的服务器主流主流Overlay技术技术1016名称名称支持者支持者方案简述方案简述产品形式产品形式网络虚拟网络虚拟化方式化方式数据新增数据新增报头长度报头长度技术特点技术特点VXLANCisco、VMware、HP、Citrix、 RedHat、BroadcomL2 over UDPCisco: N1000V BCM: Trident2 其 他 : OpenvSwitchVXLAN报头24 bit VNI50Byte不改变L2L4报文结构,现有网络设备即可支持多路径负载均衡。NVGRE微软、HP、Broadcom、Dell、Emulex、IntelL2 over GRE微软: Hyp
14、er-V vSwitchBCM: TridentEmulex: 网卡 其 他 : OpenvSwitchNVGRE报头24 bit VSI42Byte问题:改变了GRE报文 头,需要升级网络设备 才能支持多路径负载均 衡。STTNicira(被VMware收购)无状态TCPvSwitchSTT报头 64 bit Context ID5876Byte问题:改变了TCP报文 头,当前无商用芯片支 持,仅VMware纯虚拟 化环境可用,产业生态 脆弱。Cisco也不支持0102网络虚拟化网络虚拟化Overlay基本概念与分类基本概念与分类目录目录03VXLAN技术基础技术基础1017VXLAN技术基
15、本概念技术基本概念VTEPVTEP VXLAN虚拟可扩展局域网(Virtual Extensible Lan),是Overlay技术的一种,通过隧道机制在现有网络上构建一个叠加的网络从而绕过现有VLAN标签的限制VTEPVTEPVTEPVTEPV XV XLLAANN网络1018NetworkVXLAN技术基本概念技术基本概念1019 VTEP VXLAN Tunnel End Point 虚拟扩展本地网络隧道终结节点 上行方向将虚拟机(服务器)产生的数据封装到UDP包头内发送出去,下行方向将收到的VXLAN报文解封装后发给虚拟机(服务器) VTEP之间建立了两点之间的隧道(VTEP可以为软件
16、、硬件服务器或者网路设备、隧 道是无状态的) VNI VXLAN Network Identifier 虚拟扩展本地网络标示符 VNI取代VLAN用来表示不同的VXLAN网络 VNI是一个24位进制表示,可以扩展到2的24次方个网段20VXLAN的报文结构的报文结构(一一)标记标记位位RRRRIRRR保留保留未用未用(24位)位)VXLAN ID(24位)位)保留保留未用未用(8 位)位)20外层外层MAC 头头外层外层IP头头外层外层UDP 头头VXLAN头头原始二层报文原始二层报文基本格式:基本格式:L2oUDP封装报头开销50字节UDP目的端口为已知端口4798,源端口可按流分配,标准5
17、元组方式有利于IP网络转发过程中进行负载分担VXLAN标签标签标志位(8bits),一个有效的VXLAN网络ID(VNI),第5个bit的I标志位必 须设置为1,余下的7个bit的标志位是保留的,必须设置为0VXLAN网络ID(VNI),长24bit,用于标识一个单独的VXLAN网络14字节20字节8字节8字节VXLAN的报文结构的报文结构(二二)外层三层包头外层三层包头 外层ip包头的ip地址为隧道两端的VTEP设备地址,如果Hypervisor承担了VTEP工作则为服务 器网卡地址,如果VTEP为接入交换机,则IP地址为出端口上的 IP地址或者三层接口地址、loopback地址外层二层包头
18、外层二层包头 外层二层包头为报文在普通网络中做二、三层转发的MAC地址(目的mac为目的VTEP设备的 硬件mac或者三层网关的MAC)新添加的VXLAN包头原始报文2121外层外层MAC 头头外层外层IP头头外层外层UDP 头头VXLAN头头原始二层报文原始二层报文VXLAN报文举例报文举例2122VXLAN GW和和VXLAN IP GW网络设备支持VXLAN报文的封装与解封装,并根据内层报文的IP头部进行三层转发VXLAN GW支持VXLAN报文的封装与解封装,并根据内层报文的MAC头部进行二层转发,实现VXLAN与VLAN 的互通leafleafSpineSpineleafrouter
19、leafrouter1、ingress VTEP设 备将报文封装成 VXLAN报文VXLAN IP GW2 、核心设备做为 VXLAN IP GW, 终结VXLAN报文并进行L3转发3 、egress VTEP 设备 将VXLAN 报文解封装, 实现VXLAN与VLAN的互通VVXXLLAANN网络Network2123VXLAN 网络互通需求网络互通需求VXLAN 二层二层/三层网关:三层网关:传统L2网络中,报文跨VLAN转发,需要借助VLAN Mapping或者L3 设备来完成不同VLAN之间的互通问题,VXLAN网络同样需要解决:VXLAN和VLAN之间如何互通,这个是解决VXLAN虚
20、拟网络和传统物理网络之间如何通信的问题VXLAN和VXLAN之间如何互通,这个是解决VXLAN网络内部不同租户如何互通的问题VXLAN L2GatewayVLANVLAN 100VXLAN 10VXLAN L3GatewayVXLAN 202124VXLAN 10VXLAN IDVLAN ID10100VXLAN IDVXLAN ID1020VXLANVXLAN 二层网关:二层网关: 最简单的实现应该是一个Bridge设备 仅仅完成VXLAN到VLAN的转换,包含VXLAN到VLAN的1:1、N:1转换 实体形态可以是vSwitch、交换机VXLANVXLANVXLAN 三层网关:三层网关:
21、实现可以是一个Router设备,支持 跨VXLAN三层转发 实体形态可以是vRouter、交换机、 路由器VXLAN 集中式网关集中式网关LeafLeafSpineLeafVXLANNetworkservervsi-interface 1010.0.0.1VSI/VXLAN 10VSI/VXLAN 10vsi-interface 2020.0.0.110.0.0.10server20.0.0.10 集中集中式式VXLAN IP网关网关进行二层VXLAN业务终结对内层封装的IP报文进行三层转发VXLAN IP网关功能由VXLAN对应的三层虚接口(VSI虚接口)承担2125VXLAN 分布式网关分
22、布式网关LeafLeafSpineLeafserverVXLANNetworkvsi-interface 1010.0.0.1VSI/VXLAN 10VSI/VXLAN 10vsi-interface 2020.0.0.1server10.0.0.1020.0.0.10 分布式分布式VXLAN IP网关网关所有的分布式VXLAN IP网关上都需要创建VSI虚接口不同网关上的相同VSI虚接口配置相同的网关IP地址vsi-interface 1010.0.0.1VSI/VXLAN 10VSI/VXLAN 10vsi-interface 2020.0.0.1vsi-interface 1010.0.
23、0.1VSI/VXLAN 10VSI/VXLAN 10vsi-interface 2020.0.0.12126VXLAN的控制平面的控制平面2127外层源/目的 mac外层802.1q标 签外层目的IP 地址外层源IP地 址外层UDP包 头VXLAN标签原始数据 包 VXLAN的控制平面实现方式分的控制平面实现方式分为为3类类 自学习模式利用泛洪/广播机制来实现VXLAN网络的建立 基于SDN Controller的集中式模式SDN Controller作为控制平面,通过下发流表指导VTEP的转发 路由协议扩展模式通过扩展ISIS(类EVI)、BGP(EVPN)协议来实现VXLAN网络的建立V
24、TEP设备转发时需要哪些信息?VXLAN的控制平面的控制平面自学习模式一自学习模式一LeafLeafLeafvswitchVM1VM2serverVTEP IP 10.0.0.1VTEP IP 10.0.0.2 指定指定VXLAN ID映映射到一个射到一个IP组组播组播组,此,此VXLAN的的VTEP都加入都加入该该组播组播组组,通过通过flooding和和learning机机制制完完成成学学习习如图,VM server属于同一个VXLAN 10 加入特定组播组239.1.1.1SpineSpine1)VM发送ARP 报文请求server 的地址2 ) VTEP 将 报 文 进 行 VXLAN
25、 封装 , 在组播 组239.1.1.1里广播3)同一个VXLAN的VTEP收到ARP请求后,学习对端VTEP的地址,并生成VTEP 上的MAC 地址表,并将VTEP报 文解封装后广播到相关接口MAC地址地址VTEP地址地址VM mac10.0.0.1VXLANNetwork2128VXLAN的控制平面的控制平面自学习模式二自学习模式二Leaf-BSpineSpineLeaf-CvswitchVM1VM2serverLeaf-AVTEP IP 10.0.0.1VTEP IP 10.0.0.26)Leaf-A将报文进 行VXLAN 解封装后 发给VM1 , 并且学 习对端VTEP 的IP, 生
26、成VTEP上的MAC地 址表5)Leaf-C查看MAC地址表, 将报文封装成VXLAN报文后, 单播发送给Leaf-AMAC地址地址VTEP地址地址VM mac10.0.0.14)server收到ARP报 文,回应ARP请求MAC地址地址VTEP地址地址server mac10.0.0.2VXLANNetwork2129VXLAN的控制平面的控制平面基于基于Controller方式方式Leaf-ASpineSpineController VXLAN app未知报文1 ) Leaf-A收到未知报文 通过packet in报文将报文 发给controllerVM1 基于基于SDN Controll
27、er方式方式的的控制控制平平面和面和地地址学习址学习SDN Controller与所有VXLAN ED设备建立连接(通过OpenFlow协议),通过SDN Controller给各VXLAN ED部署下发流表来进行VXLAN的转发2)Controller上学习MAC地址表并和Leaf-A 地址对应MAC 地址地址VTEP地址地址VM mac10.0.0.1Leaf-BLeaf-C3)controller下发流 表给VTEP指导转发4)controller将学习 到的MAC与VTEP对 应关系同步到其他 VTEP注:通过云业务平台在创建VM的时候直接将VM MAC地址表(包括与VTEP IP地址
28、的对应关系)通知SDNcontroller,这样controller一直有整网的VM MAC地址表VXLANNetwork2130VXLAN的控制平面的控制平面基于基于ISIS协议协议(一一)ENDCENDCENDC基于基于ISIS扩展协议的控制平面和扩展协议的控制平面和mac地址学习地址学习基于EVI邻居发现协议,通过ISIS扩展协议来实现控制平面和MAC地址学习VXLAN网络启用ENDP协议,核心设备作为ENDS设备、接入设备作为ENDC设备,ISIS扩展协议来完成MAC的发布和回收ENDSENDSVXLANNetwork2131VXLAN的控制平面的控制平面基于基于ISIS协议协议(二二
29、)Leaf-BSpineLeaf-CvswitchVM1VM2serverVTEP IP 10.0.0.1VTEP IP 10.0.0.21)VTEP学习到VM MAC之后通过ISIS扩展协议通告 给其他VTEP设备Leaf-A2)同一个域内的VTEP设备收 到ISIS报文,学习VM MAC和 对应的VTEP地址MAC地址地址VTEP地址地址VM mac10.0.0.1Spine设备作为ENDS设备、接入设备(VTEP)作为ENDC设备,ENDC设备向ENDS设备发起注册(包括VXLAN ID、VTEP ID、network ID)ENDS发送应答包括所有ENDC设备信息,建立VXLAN控制平
30、面SpineVXLANNetwork2132优势:优势:标准化:控制面使用EVPN,属于标准协议灵活:使用MP-BGP完成地址同步,更灵活控制地址发布规则SpineSpineLeafLeafLeafEVPN地址同步地址同步EVPN地址同步地址同步VXLAN隧道建立隧道建立VXLANNetworkVXLAN的控制平面的控制平面基于基于EVPN协议协议2133VXLAN的数据平面的数据平面(一一)隧道机制隧道机制源和目的VTEP之间建立隧道,负责报文的VXLAN封装和解封装VTEP为虚拟机数据包分装了层层包头,这些新包头只会在报文到目的VTEP时才会解封装,中间路径网络设备 只会根据外层包头的目的
31、地址进行转发,对于转发路径上的网络设备,一个VXLAN报文就是一个普通IP报文leafleafSpineSpineleafleafTunnelV XV XLLAANN网络Network2134VXLAN的数据平面的数据平面(二二)Leaf-BserverVTEP IP 10.0.0.1Leaf-AVTEP IP 30.0.0.1Leaf-CMACVTEP地址地址A10.0.0.1MACVTEP地址地址B30.0.0.1在VTEP设备上进行VXLAN的封装解封装,根据MAC地址表(对应有对端的VTEP IP地址)转发,以虚拟机的二层转发/同一个VXLAN为例SpineSpineMAC BIP 2
32、0.0.0.2mac Bmac A20.0.0.220.0.0.1MAC AIP 20.0.0.1VM2VXLAN2135Networkmac Bmac A20.0.0.220.0.0.130.0.0.110.0.0.1外层UDP包头VXLAN标签mac Bmac A 20.0.0.220.0.0.1VXLAN的基本配置的基本配置1.创建创建VSI和和VXLAN 使能L2VPN功能 创建VSI,并进入VSI视图 创建VXLAN,并进入VXLAN视图注:在一个注:在一个VSI下只能创建一个下只能创建一个VXLAN不同不同VSI下创建的下创建的VXLAN,其,其VXLAN ID不能相同不能相同21
33、36Switch l2vpn enableSwitch vsi vsi-nameSwitch vxlan vxlan-id2.创建创建VXLAN隧道隧道 配置VXLAN隧道的全局源地址2137 创建模式为VXLAN隧道的Tunnel接口 配置隧道的源端地址或源接口 配置隧道目的地址Switch source ipv4-address | interface-type interface-number Switch interface tunnel tunnel-number mode vxlanSwitch tunnel global source-address ip-addressVXLA
34、N的基本配置的基本配置Switch destination ipv4-addressSwitch tunnel tunnel-number flooding-proxy 21383.关联关联VXLAN与与VXLAN隧道隧道 进入VSI视图 进入VXLAN视图 配置VXLAN与VXLAN隧道关联VXLAN的基本配置的基本配置Switch vsi vsi-nameSwitch vxlan vxlan-idVXLAN的基本配置的基本配置21394. 配置配置AC与与VSI关联关联 进入二层以太网接口视图或二层聚合接口视图 创建以太网服务实例,并进入以太网服务实例视图 配置以太网服务实例的报文匹配规则
35、 将以太网服务实例与VSI关联Switch interface interface-type interface-numberSwitch-interface service-instance instance-idSwitch-interface-srv encapsulationdefault|untagged|s-vid vlan-id Switch-interface-srv xconnect vsi vsi-name access-mode ethernet| vlan VXLAN的基本配置的基本配置21405. 配置集中式配置集中式VXLAN IP网关网关 创建VSI虚接口,并进入
36、VSI虚接口视图 配置VSI虚接口的IP地址 进入VXLAN所在VSI视图 为VSI指定网关接口Switch interface vsi interface-numberSwitch-vsi-int ip address ip-address mask | mask-length sub Switch vsi vsi-nameSwitch-vsi gateway vsi-interface vsi-interface-idSwitch vsi vsi-name21416. 配置分布式配置分布式VXLAN IP网关网关 创建VSI虚接口,并进入VSI虚接口视图 配置VSI虚接口为分布式网关接口 进入VXLAN所在VSI视图 为VSI指定网关接口Switch interface vsi interface-numberVXLAN的基本配置的基本配置Switch-vsi-int distributed-gateway localSwitch-vsi gateway vsi-interface vsi-interface-id谢谢聆听!