设为首页收藏本站language 语言切换
查看: 2799|回复: 22
收起左侧

[分享] EVPN简介

[复制链接]
发表于 2024-5-27 08:05:42 | 显示全部楼层 |阅读模式
什么是EVPN?

EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种满足全业务需求的NVO (Network Virtualization Overlay) 解决方案,具有部署简单、扩展性强等优点。在控制平面,EVPN采用MP-BGP协议通告二层或三层可达性信息,通过生成的MAC地址表项和路由表项进行二/三层报文转发,以实现为用户提供L2VPN和L3VPN服务。在数据平面,EVPN支持VXLAN、SRv6或MPLS等多种报文转发方式,增加了网络部署的灵活性。


为什么需要EVPN?传统L2VPN技术在数据中心网络中面临的问题

随着数据中心业务日益增加,用户需求不断提高,数据中心的规模和功能日趋复杂,管理难度也越来越高。出于灾备、企业分支机构的多地部署、提升资源利用率等方面的考虑,企业可能在不同的物理站点部署自己的数据中心网络。于是,如何将这些数据中心站点互联起来、降低数据中心的管理成本、灵活扩充数据中心业务等成为企业数据中心亟待解决的问题。

传统的用于数据中心站点互联的L2VPN技术主要为VPLS(Virtual Private LAN Service,虚拟专用局域网服务)。VPLS的局限性在于:

站点间必须是MPLS网络。MPLS的配置较为复杂,维护工作量较大。

扩容困难。在VPLS网络中,为了避免环路,PE之间需要建立全连接。每次扩容新增站点时都需要在已有的所有站点PE上新增配置,以便与新增站点的PE建立连接。

控制平面通过数据帧泛洪来建立MAC地址表项,效率较低,并浪费网络带宽资源。

站点多归属接入(站点同时接入多个PE设备)时,多归属接入的多条链路中,仅有一条链路可以用来转发流量,无法在多条链路间进行负载分担,造成链路资源浪费。


由于VPLS存在上述局限性,使得VPLS无法满足大规模数据中心网络的业务需求。




 楼主| 发表于 2024-5-27 10:03:30 | 显示全部楼层
本帖最后由 白开心 于 2024-5-27 14:26 编辑

EVPN如何满足数据中心网络的需求

所示,EVPN将控制平面与数据平面分离。控制平面负责发布路由信息,数据平面负责转发报文,分工明确,易于管理。

控制平面:采用MP-BGP协议通告可达性信息,以建立报文转发通道(VXLAN隧道或PW),并学习MAC地址表项和IP路由表项。

数据平面:根据学习到的MAC地址表项或IP路由表项,通过控制平面建立的通道转发报文。数据平面支持多种报文封装技术,包括VXLAN、SRv6和MPLS等。

图1 EVPN协议框架


                               
登录/注册后可看大图

EVPN由RFC 7432(BGP MPLS-Based Ethernet VPN)定义。最初,EVPN的定位是用来替代VPLS的下一代L2VPN。灵活的MP-BGP控制平面、多样的数据平面,使得EVPN完美地解决了VPLS技术的问题:

数据平面支持VXLAN、SRv6和MPLS等报文封装方式,使得EVPN可以基于IPv4网络、IPv6网络、MPLS网络部署,增加了网络部署的灵活性。

通过部署路由反射器,可以避免设备全连接,降低网络部署和扩容的难度。同时,EVPN通过MP-BGP协议自动发现远端设备、自动与远端设备建立报文转发通道,无需用户手工配置,进一步降低了网络部署难度。

通过MP-BGP协议通告MAC地址信息,将站点网络间的MAC地址学习从数据平面转移到控制平面,使设备可以像管理路由一样灵活地管理MAC地址,减少了网络中的泛洪流量,节约网络带宽。

站点多归属接入时,EVPN支持多种冗余备份模式:

多活模式:多归属接入的多条链路都可以转发流量,流量在链路间进行负载分担,以提高链路利用率。

单活模式:多归属接入的多条链路中只有一条用来转发流量,不同链路间主备备份,以提高流量转发的可靠性。

除此之外,EVPN还可以通过MP-BGP协议通告三层可达性信息,为用户提供L3VPN业务。L2VPN和L3VPN业务同时通过EVPN来承载,统一了L2VPN和L3VPN的控制信令协议。

配置简单、易于扩容、部署灵活、节约带宽等特点,使得EVPN可以很好地满足大规模数据中心网络的需求,并广泛应用于数据中心网络。随着EVPN技术的不断发展和推进,EVPN在园区接入网络、广域网、运营商网络中也具有一定的应用。


板凳 2024-5-27 10:03:30 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 07:48:41 | 显示全部楼层
本帖最后由 白开心 于 2024-5-28 09:06 编辑

EVPN与VPLS的对比
1.png
地板 2024-5-28 07:48:41 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 09:21:41 | 显示全部楼层
EVPN支持哪些组网方式?

根据数据平面封装方式的不同,EVPN支持如下几种组网方式:


EVPN VXLAN:数据平面采用VXLAN封装。

EVPN VXLAN网络的边缘设备称为VTEP(VXLAN Tunnel End Point,VXLAN隧道端点),EVPN的相关处理均在VTEP上完成。EVPN VXLAN通过在VTEP间建立VXLAN隧道,透明传输二层数据报文,实现不同站点间的二层互联。

通过在EVPN VXLAN网络中部署EVPN网关,可以实现为同一租户的不同子网提供三层互联,并为其提供与外部网络的三层互联。

图2 EVPN VXLAN网络示意图


                               
登录/注册后可看大图


EVPN VPLS:数据平面采用MPLS封装,用来实现用户站点网络的多点间二层互通。

EVPN VPLS组网中,服务提供商网络侧设备PE间通过MP-BGP协议建立EVPN PW、学习MAC地址表项,并通过查找MAC地址表转发报文,以实现多点间的二层互通。

图3 EVPN VPLS网络示意图


                               
登录/注册后可看大图


EVPN VPWS:数据平面采用MPLS封装,用来实现用户站点网络的点到点二层互通。

EVPN VPWS组网中,用户网络侧设备CE通过AC(Attachment Circuit,接入电路)接入服务提供商网络侧设备PE,PE间通过MP-BGP协议建立EVPN PW,在PE上将AC与EVPN PW关联,即可沿着本端CE—>本端AC—>本端PE—>EVPN PW—>远端PE—>远端AC—>远端CE的路径实现点到点二层互通。

图4 EVPN VPWS网络示意图


                               
登录/注册后可看大图


EVPN VPLS over SRv6:数据平面采用SRv6封装,用来实现用户站点网络的多点间二层互通。

EVPN VPLS over SRv6与EVPN VPLS类似,不同之处在于EVPN VPLS over SRv6组网中,PE之间建立的虚拟连接为SRv6隧道。


EVPN VPWS over SRv6:数据平面采用SRv6封装,用来实现用户站点网络的点到点二层互通。

EVPN VPWS over SRv6与EVPN VPWS类似,不同之处在于EVPN VPWS over SRv6组网中,PE之间建立的虚拟连接为SRv6隧道。


5# 2024-5-28 09:21:41 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 09:22:42 | 显示全部楼层
EVPN如何工作?下文以MPLS封装方式的EVPN VPLS为例说明EVPN的工作过程。
网络架构

图5所示,EVPN VPLS网络主要包括如下几个组成部分:


CE(Customer Edge,用户网络边缘):直接与服务提供商网络相连的用户网络侧设备。


PE(Provider Edge,服务提供商网络边缘):与CE相连的服务提供商网络侧设备。PE主要负责EVPN VPLS业务的接入,完成报文从用户网络到核心网、从核心网到用户网络的映射与转发。


AC(Attachment Circuit,接入电路):PE上,连接CE的物理电路或虚拟电路,仅PE设备可以感知到AC的存在。


EVPN PW(Pseudowire,伪线):两个PE之间的虚拟双向连接。


ES(Ethernet Segment,以太网段):CE连接到PE的链路,通过ESI(Ethernet Segment Identifier,以太网段标识符)唯一标识。为了支持多归属接入,EVPN引入了ES的概念。当一个站点通过多条链路接入到EVPN网络时,这些链路构成一个ES,具有相同的ESI。PE通过MP-BGP协议通告ES信息,以便在多归属链路上实现主备备份或负载分担。


VSI(Virtual Switch Instance,虚拟交换实例):PE上提供二层交换服务的虚拟实例,可以理解为PE上的一台虚拟交换机,每个VSI为一个EVPN VPLS网络提供二层转发服务。

图5 EVPN VPLS网络架构图


                               
登录/注册后可看大图

6# 2024-5-28 09:22:42 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 14:22:56 | 显示全部楼层
EVPN工作机制综述

在EVPN网络中,若要实现站点网络间的二层互通、并实现不同VSI的流量隔离,则需要解决如下问题:


PE从站点网络和核心网接收到报文后,能够识别报文所属的VSI。


PE能够学习用户的MAC地址表项,并为不同VSI维护独立的MAC地址表项。


在PE之间建立报文转发通道(EVPN VPLS组网中为EVPN PW),以便站点网络的用户报文在核心网中透明传递。


PE接收到报文后,判断报文所属的VSI,在该VSI内查找MAC地址表项,并根据表项查找结果转发报文。

控制平面上,EVPN扩展了MP-BGP协议,通过BGP EVPN路由发布可达性信息,以建立报文转发通道、学习MAC地址表项。由此可见,BGP EVPN路由是EVPN协议的重要组成部分。

下文中,将首先介绍BGP EVPN路由,其次介绍PE识别报文所属VSI的方法,然后介绍控制平面通过BGP EVPN路由建立报文转发通道、学习MAC地址表项的过程,以及数据平面在站点网络之间转发报文的过程。EVPN还定义一些工作机制,以更好地支持站点多归属接入,本节的最后将介绍EVPN站点多归属的工作机制。


7# 2024-5-28 14:22:56 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 14:23:27 | 显示全部楼层
BGP EVPN路由

为了支持EVPN,MP-BGP在L2VPN地址族下定义了新的子地址族——EVPN地址族,并为该地址族定义了EVPN NLRI(Network Layer Reachability Information,网络层可达性信息),即BGP EVPN路由。EVPN子地址族使用的地址族编号为:AFI=25,SAFI=70。

BGP EVPN路由主要包括:


Ethernet Auto-discovery Route:以太网自动发现路由,用来在站点多归属组网中通告ES信息。


MAC/IP Advertisement Route:MAC/IP发布路由,用来通告MAC地址和主机路由信息(即ARP信息和ND信息)。


Inclusive Multicast Ethernet Tag Route:包含性组播以太网标签路由,又称为IMET路由,用来通告PE信息,以便自动发现远端PE,并自动在本地PE和远端PE之间建立EVPN PW。


Ethernet Segment Route:以太网段路由,用来通告ES及其连接的PE信息,以便通过同一ES连接相同的PE之间彼此互相发现,并从中选举出负责转发泛洪流量的DF(Designated Forwarder,指定转发者)。


IP Prefix advertisement route:IP前缀路由,以IP前缀的形式通告BGP IPv4单播路由或BGP IPv6单播路由,通常用来实现EVPN网络与外部网络的三层互通。目前,仅EVPN VXLAN网络支持该路由。


8# 2024-5-28 14:23:27 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 14:23:59 | 显示全部楼层
识别报文所属的VSI本地站点内接收到报文的识别

PE将连接本地站点的三层接口或以太网服务实例(Service Instance)与VSI关联。PE从三层接口或以太网服务实例接收到报文后,查找与其关联的VSI,该VSI即为该报文所属的VSI。

图6所示,VM 1属于VLAN 2,在PE上配置以太网服务实例1匹配VLAN 2的报文,将以太网服务实例1与VSI A绑定,则PE接收到VM 1发送的报文后,可以判定该报文属于VSI A。

图6 报文所属VSI的识别


                               
登录/注册后可看大图

EVPN PW接收报文的识别

EVPN在PE间建立报文转发通道(即EVPN PW)时,会为EVPN PW分配用以标识VSI实例的MPLS标签。从EVPN PW上接收到的报文,PE根据报文中携带的MPLS标签可以判断该报文所属的VSI。


9# 2024-5-28 14:23:59 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-29 07:59:05 | 显示全部楼层
控制平面建立EVPN PW和学习MAC地址

图7所示,PE之间通过BGP EVPN路由自动建立EVPN PW的过程为:

(1) PE为每个VSI实例分配两个MPLS标签(即PW标签),分别用于转发已知单播报文和BUM(Broadcast/Unknown unicast/Unknown Multicast,广播/未知单播/未知组播)报文。

(2) 本端PE通过MAC/IP发布路由将转发已知单播报文的MPLS标签通告给远端PE;通过IMET路由将转发已知单播报文和BUM报文的MPLS标签(即IMET MPLS label)通告给远端PE。该路由中携带VPN Target属性。

(3) 远端PE接收到MAC/IP发布路由或IMET路由后,将路由中的VPN Target属性与本地的Import Target进行匹配,如果一致则根据路由中携带的PE地址、MPLS标签等信息建立一条单向的虚拟连接。

(4) 当两端的PE间建立了两条方向相反的单向虚拟连接,则EVPN PW建立完成。

图7 建立EVPN PW和学习MAC地址过程示意图


                               
登录/注册后可看大图

PE上MAC地址学习分为两部分:


本地MAC地址学习:PE接收到本地CE发送的报文后,判断该报文所属的VSI,并将报文中的源MAC地址(本地CE的MAC地址)添加到该VSI的MAC地址表中,该MAC地址的出接口为接收到报文的AC。


远端MAC地址学习:PE通过MAC/IP发布路由将本地学习的MAC地址通告给远端PE。远端PE接收到该信息后,将MAC添加到对应的VSI的MAC地址表中,该MAC地址的出接口为两个PE之间的EVPN PW。


11# 2024-5-29 07:59:05 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-29 08:54:45 | 显示全部楼层
数据平面转发报文

PE从AC接收到单播报文后,若在报文所属VSI的MAC地址表内可以查找到报文目的MAC匹配的MAC地址表项(如CE 1访问CE 3),则该报文为已知单播报文;否则,该报文为未知单播报文。已知单播报文、BUM(Broadcast/Unknown unicast/Unknown Multicast,广播/未知单播/未知组播)报文的转发方式有所不同。

已知单播报文的转发过程为:

(1) 本端PE在报文所属VSI的MAC地址表内查找到匹配的MAC地址表项后:

如果表项的出接口为EVPN PW,则为报文封装MPLS标签,通过EVPN PW将封装MPLS标签后的报文转发给远端PE。

如果表项的出接口为连接本地CE的AC,直接通过该AC将报文转发给本地CE。

(2) 远端PE从EVPN PW接收到封装MPLS标签后的报文后,将其解封装,恢复为原始报文,然后在报文所属的VSI内查找MAC地址表,通过表项的出接口将报文转发给本地站点。

BUM报文的转发过程为:

(1) 本端PE从AC接收到BUM报文后,在报文所属的VSI内泛洪该报文,即将其发送给除接收AC外的所有其它AC,并查找该VSI内所有用于转发BUM流量的IMET MPLS label,为报文分别封装这些IMET MPLS label标签后,将该报文泛洪给所有远端PE。

(2) 远端PE从EVPN PW接收到封装IMET MPLS label的报文后,将其解封装,恢复为原始报文,然后将其发送给该EVPN PW所属VSI内的所有AC。

图8 报文转发过程示意图


                               
登录/注册后可看大图

12# 2024-5-29 08:54:45 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-29 10:06:24 | 显示全部楼层
多归属(EVPN multihoming)多归属简介

EVPN多归属是指一个站点通过不同的以太网链路接入EVPN网络中的多台PE,接入的多台PE组成冗余备份组,该站点的流量在多台PE间进行负载分担。利用多归属技术可以避免PE单点故障造成EVPN网络通信中断,从而提高EVPN网络的可靠性。

EVPN多归属的网络模型如图9所示,其中:


站点CE 1接入的多台PE组成冗余备份组。


接入冗余备份组中不同PE的一组链路,组成一个ES,它们具有相同的ESI。


通过ES接入冗余备份组的站点,称为多归属站点。

图9 EVPN多归属组网


                               
登录/注册后可看大图

EVPN多归属支持如下两种冗余备份模式:


多活模式:用来实现负载分担。该模式下,冗余备份组中的多台PE均可以转发流量,CE之间存在多条可达链路,形成负载分担。


单活模式:用来实现主备备份。该模式下,冗余备份组中仅有一台PE转发流量,该PE故障后,流量可以切换到冗余备份组中的另一台PE上,使得流量转发不中断。

多归属引入的问题

站点多归属接入引入了如下问题:


冗余备份组中的PE如何互相发现,即PE如何发现哪些PE和它连接着同一个ES?


在多活模式下,冗余备份组中的多台PE均可以转发BUM流量,如何避免站点同时收到多份BUM流量?


在单活模式下,如何确定冗余备份组中的哪台PE负责转发流量?


站点多归属接入PE时,在网络拓扑中引入了环路,如何避免流量转发环路?

下文将逐一讲解EVPN针对上述问题的解决方法。

ES路由,实现冗余备份组中的PE互相发现

冗余备份组中的PE通过以太网段路由(ES路由)实现互相发现,其过程为:

(1) 冗余备份组中的PE设备之间互相发送以太网段路由,该路由中携带ES的ESI值、ES连接的PE信息(如IP地址、优先级等)。

(2) PE接收到以太网段路由后,如果路由中携带的ESI值与本地相同,则PE记录发送该路由的PE信息,以便生成连接到同一ES的所有PE的列表。

DF选举,确定流量转发者

在多活模式下,CE 1双归属接入PE 1和PE 2,当CE 2向 CE 1发送泛洪流量时,为了避免PE 1和PE 2均转发泛洪流量至CE 1而造成网络资源浪费,EVPN引入了DF选举机制。DF选举是指从冗余备份组中选举一个PE作为DF(Designated Forwarder,指定转发者),负责将泛洪流量转发到本地站点,其它PE作为BDF(Backup DF,备份DF),不会向本地CE转发泛洪流量。

图10 DF选举示意图


                               
登录/注册后可看大图


在单活模式下,EVPN也是通过DF选举,选择出负责转发流量的PE设备(即DF设备)。

水平分割,避免流量转发环路

EVPN多归属中组网中可能会出现环路和报文重复接收等问题。如图11所示,多活冗余备份模式下,CE 1发送泛洪报文到BDF,BDF将报文发送给DF,若DF再次将报文泛洪到CE 1,则会形成环路。

图11 EVPN多归属水平分隔示意图


                               
登录/注册后可看大图

EVPN多归属引入了水平分割机制来解决上述问题,即PE接收到同一冗余备份组内的其它PE发送的泛洪流量后,不再向本地具有相同ESI标识的ES转发泛洪流量,从而避免环路和报文重复接收等问题。


13# 2024-5-29 10:06:24 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-31 09:30 , Processed in 0.088641 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表