EVPN解决方案技术白皮书关键词:EVPN ,VTEP, L3VNI,IRB摘要:本文介绍了EVPN的基本技术和典型应用。
缩略语:目录1 概述 (3)2 EVPN技术 (4)2.1 概念介绍 (4)2.2 EVPN控制面 (5)2.2.1 自动建立隧道、关联隧道 (5)2.2.2 地址同步 (6)2.2.3 外部路由同步 (7)2.2.4 VM迁移 (8)2.2.5 ARP抑制 (9)2.3 EVPN数据面 (10)2.3.1 VXLAN报文: (10)2.3.2 EVPN组网模型 (10)2.3.3 二层转发 (12)2.3.4 三层转发 (14)3 EVPN部署 (19)3.1 EVPN组网应用模型 (19)3.1.1 EVPN方案主推组网: (19)3.1.2 EVPN方案可选组网: (20)3.1.3 EVPN组网配置 (22)4总结 (27)1 概述随着企业业务的快速扩展需求,IT作为基础设施,快速部署和减少投入成为主要需求,云计算可以提供可用的、便捷的、按需的资源提供,成为当前企业IT建设的常规形态,而在云计算中大量采用和部署的计算虚拟化几乎成为一个基本的技术模式。
部署虚机需要在网络中无限制地迁移到目的物理位置,虚机增长的快速性以及虚机迁移成为一个常态性业务。
VxLAN网络技术是在传统物理网络基础上构建了逻辑的二层网络,是网络支持云业务发展的理想选择,是传统网络向网络虚拟化的深度延伸,提供了网络资源池化的最佳解决方式。
它克服了基于 VLAN 的传统限制,可为处于任何位置的用户带来最高的可扩展性和灵活性、以及优化的性能。
传统自学习方式构建VxLAN需要人工手动配置隧道,配置复杂。
地址同步需要依赖数据报文泛洪方式实现,产生大量泛洪报文,不适合大规模组网。
EVPN通过MP-BGP自动建立VxLAN隧道,自动同步MAC和IP地址,很好的解决了这些问题。
EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种二层VPN技术,控制平面采用MP-BGP通告EVPN路由信息,数据平面支持采用VxLAN封装方式转发报文。
租户的物理站点分散在不同位置时,EVPN可以基于已有的服务提供商或企业IP网络,为同一租户的相同子网提供二层互联;通过EVPN网关为同一租户的不同子网提供三层互联,并为其提供与外部网络的三层互联。
当前EVPN有正式的RFC以及相关草案,基于MPLS架构的已经有RFC7432。
EVPN定义了一套通用的控制面,但数据面可以使用不同的封装技术,他们的关系如下图:EVPN不仅继承了MP-BGP和VxLAN的优势,还提供了新的功能。
EVPN具有如下特点:➢简化配置:通过MP-BGP实现VTEP自动发现、VxLAN隧道自动建立、VxLAN 隧道与VxLAN自动关联,无需用户手工配置,降低网络部署难度。
➢分离控制平面与数据平面:控制平面负责发布路由信息,数据平面负责转发报文,分工明确,易于管理。
➢支持多归属站点的主备备份:当同一个站点通过多台VTEP接入VxLAN网络时,连接该站点的多条路径作为主备路径进行备份,以避免单点故障。
➢支持对称IRB(Integrated Bridging and Routing,集成的桥接和路由):MP-BGP同时发布二层MAC地址和三层路由信息,VTEP既可以进行二层转发,也可以进行三层路由。
这样,不仅可以保证流量采用最优路径转发,还可以减少广播流量。
2 EVPN技术2.1 概念介绍VSI(Virtual Switch Instance,虚拟交换实例):VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。
VSI可以看做是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机。
VSI与VXLAN一一对应。
VTEP:VTEP是一个隧道的端点。
在VXLAN网络里面,通常位于网络的边缘。
根据VTEP功能,VTEP可以划分为L2 VTEP和GW两种角色。
L2 VTEP是指只支持二层VXLAN转发功能的设备。
只能在相同VXLAN内做二层转发。
如果要做跨VXLAN或者访问外部IP网络等三层转发,需要VTEP支持GW(VXLAN GW或IPGW)功能。
此时VTEP也称为网关Gateway。
EVPN网络根据GW的部署方式,可以分为集中式网关和分布式网关两种组网形态。
如上图,如果是集中式网关,则VTEP为L2 VTEP,RR同时为GW。
如果是分布式网关,则VTEP为GW,RR为反射器。
VXLAN隧道:两个VTEP之间的点到点逻辑隧道。
VTEP为数据帧封装VXLAN 头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。
MAC-VRF:VTEP上一个EVI实例学习到的MAC虚拟路由转发表。
类似于IPVPN里面的IP虚拟转发表。
2.2 EVPN控制面2.2.1 自动建立隧道、关联隧道1. 邻居类型iBGP邻居: iBGP是指邻居与本地路由器位于同一AS。
部署iBGP时,为简化全连接配置,可以引入RR反射器。
所有Leaf都只和RR建立BGP对等体关系。
RR发现并接收VTEP发起的BGP连接后形成Client列表,将从某个VTEP收到的路由反射给其他所有的VTEP。
RR的部署位置可以是Spine,也可以是Leaf,还可以是独立出来的设备eBGP邻居:eBGP邻居:eBGP是指邻居与本地路由器位于不同AS。
部署eBGP 时,则不需要RR。
BGP会自动将从eBGP邻居收到的EVPN消息发送给其他eBGP和iBGP邻居,此时Spine相当于RR功能。
2. VXLAN隧道自动建立隧道建立:利用EVPN的BGP RR实现邻居发现,每个设备都通告自己的VXLAN 信息,每个VTEP设备都有全网的VXLAN信息以及VXLAN和下一跳的关系。
VTEP设备会和那些跟自己有相同VXLAN的下一跳自动建立VXLAN隧道。
EVPN 控制平面实现隧道自动建立,如上图:1) Spine设备实EVPN的BGP RR角色,Leaf设备实现EVPN的RR Client角色2) RR Client向RR发起注册(携带自身IP/VxLAN列表)3) RR转发收到的报文给所有其它邻居RR Client4) RR Client根据收到的报文中的IP/VxLAN列表,在有相同VxLAN id各VTEP之间自动创建VxLAN隧道,自动关联VxLAN隧道和VxLAN3. VXLAN和隧道自动关联隧道自动关联:VTEP设备会和那些跟自己有相同VXLAN的下一跳自动建立VXLAN隧道,并将此VXLAN隧道跟这些相同的VXLAN关联。
目前EVPN使用的是Ingress Replication,即头端复制。
所谓头端复制,就是在VXLAN转发实体里面存在一个需要复制到的远端VTEP设备隧道列表,此列表叫做BUM广播表。
对于每个VXLAN而言,所有这些建立并关联的VXLAN隧道就形成BUM广播表。
2.2.2 地址同步地址同步:利用EVPN 的MP-BGP路由协议完成MAC地址同步、主机路由同步两个功能。
因此,在EVPN网络里面,不需要将ARP请求泛洪到网络中。
地址同步流程,如上图:1) VM1上线,VTEP A把学习到VM1的MAC和主机路由通过BGP扩展协议向RR同步2) RR把接收到的路由更新同步给所有邻居(VTEP B&C)3) VTEP接收到BGP报文,把学习到的VM的MAC和IP地址添加到表项中,MAC放到相同VxLAN的L2表项中,路由放到L3表项中地址学习:本地MAC和ARP的学习仍然需要靠VTEP在数据层面完成,本地MAC 的学习可以靠以太报文的源MAC学习获得。
而ARP可以靠ARP或免费ARP等报文学习获得。
本地学到MAC和ARP后,EVPN控制面通过BGP邻居分发到其他VTEP 设备,形成EVPN 2类路由集中式网关:在集中式网关里面,二层VTEP需要将学习到的ARP通告给网关,在GW上需要下发ARP,并产生32位直连路由。
此路由的下一跳就是路由本身。
ARP里的MAC为主机或虚机的真实MAC。
从GW往VTEP的报文转发时,在VTEP上做二层MAC转发。
分布式网关:在分布式网关里,每一个分布式网关都会将学习到的ARP通告给其他网关。
在远端VTEP上,2类路由里面的IP会下发到VRF表形成32位主机路由,此路由的下一跳为通告此路由的VTEP设备。
报文转发时,从网关发出的报文内层MAC为对端VTEP设备的MAC,因此报文在对端VTEP上做三层转发。
2.2.3 外部路由同步EVPN网络构建的是一个私有网络,它也可以通过接入外网,实现跟外网通信的目的。
Board Leaf通过普通接口跟外网建立普通路由协议,学习路由,然后在Board Leaf上EVPN可以引入这些外部路由,进而通告到EVPN网络中,使其他VTEP也能学到这些外部路由。
这些路由的下一跳均指向通告此路由的Board Leaf。
当网络中存在多台Board Leaf时,多台Board Leaf都可以通告此路由,这样在远端还可以形成等价路由,以达到网络负载分担的目的。
2.2.4 VM迁移VM地址迁移:是指虚拟机或主机从其介入的VTEP或网关设备迁到数据中心网络的另一台VTEP或网关下。
如何使网络快速收敛的一种机制:∙迁移消息:新迁移到的VTEP或网关会重新感知到主机/虚拟机上线,会重新通告该MAC/IP路由,此路由跟迁移前通告的MAC/IP路由的区别在于在BGP update消息中携带了一种新的扩展团体:MAC Mobility扩展团体。
此扩展团体里面包含一个序列号。
∙消息更新:每次迁移,迁移序列号将递增,远端在收到一个比自己系列号更大的消息时,更新自己的MAC/IP路由消息,下一跳指向迁移后通告此路由的VTEP或GW。
∙消息撤销:原VTEP在收到此路由更新后,撤销之前通告的路由。
2.2.5 ARP抑制ARP抑制功能特点:∙泛洪抑制:为了避免广播发送的ARP请求报文占用核心网络带宽,VTEP 根据从BGP收到的EVPN 路由在本地建立ARP缓存表项。
∙ARP代答:后续当VTEP收到本站点内虚拟机请求其它虚拟机MAC地址的ARP请求时,优先根据本地存储的ARP表项进行代理回应。
∙ARP MISS:如果没有对应的表项,则将ARP请求泛洪到核心网。
∙特点:ARP泛洪抑制功能可以大大减少ARP泛洪的次数。
2.3 EVPN数据面2.3.1 VXLAN报文:VXLAN报文的封装格式为:在原始二层数据帧外添加8字节VXLAN头、8字节UDP头和20字节IP头。
其中,UDP头的目的端口号为VXLAN UDP端口号(缺省为4789)。
VXLAN头主要包括两部分:标记位:“I”位为1时,表示VXLAN头中的VXLAN ID有效;为0,表示VXLANID无效。