EVPN原理
EVPN简介
- EVPN颠覆了传统L2VPN数据面学习MAC地址的方式,引入控制面学习MAC和IP指导数据转发,实现了转控分离。
- EVPN解决传统L2VPN的典型问题,实现双活、快速收敛、简化运维等价值。
- EVPN的控制平面采用MP-BGP,数据平面支持多种类型的隧道,例如MPLS、GRE隧道、SRv6。本课程以MPLS作为外层隧道转发技术进行讲解。
- 控制平面:PE之间交互BGP EVPN报文,传递MAC和IP地址。
- 数据平面:由IP隧道或MPLS标签转发路径组成数据转发路径。只负责数据转发,无需广播泛洪学习MAC地址。
EVPN基本术语
- ES(Ethernet Segment)代表用户站点(设备或网络)连接到PE的一组以太链路,使用ESI(Ethernet Segment Identifier)来表示。
- EVI(EVPN instance)代表一个EVPN实例,用于标识一个EVPN客户。
- MAC-VRF是PE上属于EVI的MAC地址表。
- RD(Route Distinguisher)是EVPN的唯一标识,用于区分EVI。
- RT(Route Target)用于控制EVPN路由的引入。
- DF(Designated Forwarder)用于在CE多归属场景下只转发一份BUM流量至CE。
- ESI Label是EVPN Type 1路由所携带的扩展团体属性。在多归场景下,用于实现快速收敛和水平分割。
- BUM(Broadcast、Unknown unicast、Multicast)Label是由Type 3路由携带,用于转发BUM流量。
- 单播Label由Type 2路由携带,用于转发单播流量。
EVPN工作流程

EVPN的工作流程分为两个阶段:
- 启动阶段:
- EVPN对等体交互EVPN Type 3路由建立BUM流量转发表。
- EVPN对等体交互Type 4路由完成ES发现和DF选举(在ES多归属场景下)。
- EVPN对等体交互Type 1路由,交互ESI标签,进而实现水平分割、别名等功能。
- 流量转发: CE侧流量触发PE通过Type 2路由通告MAC地址,该路由携带分配的标签信息,后续根据该标签执行单播流量转发。
EVPN表项简介
- EVPN维护三张表用于指导流量转发,他们是MAC-VRF表、BUM流量转发表和ES成员表。
- MAC-VRF表用于记录已知单播流量的转发。
- BUM流量转发表用于指导广播、未知单播和组播流量转发。
- ES成员表用于记录用户接入PE信息。
本地创建EVPN实例
- 在PE上创建EVPN实例,配置它的RD和RT。PE上本地将激活EVPN,产生MAC-VRF,其内容为空。
BUM流量转发表 (1)
- 配置PE之间对等体(Peer)关系。以PE1为例,它将发送Type 3路由发现邻居并分配标签。
BUM流量转发表 (2)
- PE2、PE3和PE4生成BUM流量转发表。
BUM流量转发表 (3)
- 这个过程中所有PE均发送Type 3类型路由,最终形成稳定的BUM流量转发表。
PE1 PE2 PE3 PE4 MAC-VRF EVI 1 MAC-VRF EVI 1 MAC-VRF EVI 1 MAC-VRF EVI 1 B
配置接口绑定EVPN实例
- CE双活接入PE。在PE上配置CE接入接口与EVPN实例绑定。从该接口进入的报文将进入EVPN实例。
配置CE接入接口ESI
- 在PE连接CE的接口配置ESI。PE会交互Type 4路由,传播ESI并进行DF选举。
DF选举 (1)
- 当CE多归到多个PE时,只能有1个PE向CE转发BUM流量,选出这个PE的过程被称为DF选举。
PE通过特定算法选举出DF。本例中假设PE2和PE3被选举为DF,则只允许PE2和PE3转发BUM流量给CE。
分发ESI标签:水平分割 (1)
- PE通过Type 1类路由分发ESI标签。ESI Label用于水平分割防止同一ES来的流量又绕回到该ES。
分发ESI标签:水平分割 (2)
- 此过程中所有PE均发送Type 1路由,生成完整的ES成员信息表。
EVPN启动阶段总结
- EVPN的启动阶段生成MAC-VRF、BUM流量转发表和ES成员信息表。此时MAC-VRF表项为空。
EVPN流量转发阶段
- EVPN流量转发阶段由CE侧用户流量发起开始。
- 用户CE1和CE2不感知PE设备的EVPN协议交互。
- 本例中CE1访问CE2业务流程如下:
- CE1发起广播ARP请求。请求CE2的MAC地址。
- CE2回复单播ARP响应。
- CE1向CE2转发流量。
本地MAC地址学习
- CE1访问CE2,首先发送ARP请求。PE1接收报文,生成本地MAC表条目。
CE发出的数据包不带任何标签,所以PE设备上MAC-VRF表中的入标签为NULL。
MAC地址通告 (1)
- PE1 EVPN将本地MAC地址条目生成Type 2路由,携带PE1设备分配的标签301。
MAC地址通告 (2)
- 远端的PE设备通过MP-BGP学习到EVPN路由,生成MAC表条目。
MAC地址通告 (3)
- EVPN支持CE多活接入PE。PE2感知直连CE1,刷新最优的MAC表条目,并生成和通告Type 2路由。
远端MAC地址学习
- 因PE1和PE2分配不同的MPLS标签,PE3和PE4分别有两条路径到达CE1。
ARP广播转发
- CE1发送的ARP请求达到PE1。PE1通过数据面学习到CE1的MAC地址,然后通过Type 2路由发送给所有邻居。
- 控制平面行为完成后,PE1将执行数据平面行为,即转发ARP广播请求。最后因PE3为DF,PE3转发ARP广播报文到CE2。
- 控制平面通告MAC地址
- PE1数据平面转发ARP报文
- PE3转发ARP报文
- PE1到PE3的ARP报文查询BUM流量转发表转发,携带103标签。PE3为DF,转发报文到Port3。
- PE1会将ARP报文基于BUM流量转发表转发给所有成员。
- PE1到PE4的流量携带标签104。PE4根据标签确认是BUM流量,因PE4为非DF,丢弃报文。
- 由于PE1和PE2属于相同ES,PE1到PE2的流量同时携带ESI标签202和BUM标签102。PE2接收到报文发现有标签202,则丢弃该报文。
-
CE2单播回复ARP应答。PE3首先本地学习CE2的MAC地址,然后触发EVPN控制面行为,即发送Type 2路由。
-
PE3查询MAC地址表转发单播报文到PE1,最后PE1转发ARP报文到CE1。
-
CE2回复单播ARP应答。PE3通过数据面学习到CE2的MAC地址,生成本地MAC-VRF表项。
-
PE3生成并通告Type 2路由。其他PE接收PE3发出的Type 2路由,刷新本地MAC表项。
-
PE4的接口属于ESI 2,因此刷新更优的MAC地址表。同时生成和发布Type 2路由。
-
PE3通过负载分担算法找出下一跳(如:PE1)发送报文,携带标签301。PE1接收报文后向Port1转发。
-
PE3根据报文目的MAC为1-1-1查MAC-VRF表,发现下一跳有两个选择:PE1和PE2。
-
PE3通过负责分担算法找出一条路径(例如PE1)发送。
-
PE1接收ARP应答后查询MAC-VRF,将报文从Port1发出

浙公网安备 33010602011771号