学习目标:了解VPLS,能利用工作过程解释清楚EVPN的三张表及四种路由。
一.前言
- VPLS称为虚拟专用局域网业务(Virtual Private LAN Service),是公用网络中提供的一种点到多点的L2VPN业务。
- VPLS存在无法实现负载分担、网络部署困难等缺点,无法满足L2VPN灵活部署和CE多归属场景下提升链路利用率等需求,EVPN(Ethernet Virtual Private Network,以太网虚拟私有网络)解决了以上问题。
- EVPN在RFC7432中被定义,它引入控制平面用于控制MAc地址的学习。随着EVPN的不断扩展,EVPN不仅支持L2VPN,同时支持L3VPN。
- EVPN被广泛用于不同的场景,如广域网、数据中心和园区网。
二.EVPN背景与基本术语
1.VPLS简介
- VPLS是一种基于以太网的二层VPN技术,它在MPLS网络上提供了类似LAN的业务,允许用户可以从多个地理位置接入网络、相互访问。
- 实现VPLS,需要以下三个步骤:创建隧道和PW、创建VS1、绑定PW和AC到VS1。
2.VPLS基本工作原理:创建隧道和PW
- 完整的实现VPLS,首先在PE1和PE2之间建立一个承载隧道,然后创建PW(Pseudo-Wire,伪线),用于承载不同企业客户的业务。
3.VPLS基本工作原理:创建VSI
- VSl(Virtual switch Instance,虚拟机交换实例)是为每一个VPLS单独划分的一个虚拟交换处理单元。VSI用于存放独立的MAC地址表和执行转发,并负责终结PW。
4.VPLS基本工作原理:绑定PW和AC到VSI
- AC(Attachment circuit,接入电路)指CE与PE之间的链路。绑定PW和AC到VSI后,VSI就像一个交换机一样工AC作,记录不同接口学习的MAC地址,并生成MAC地址表项:
- VPLS三种常见的创建PW的方式:
- 静态手工配置,配置量大。
- 通过LDP信令创建(Martini)。
- 通过BGP信令创建(Kompella)。
5.VPLS的报文转发过程
- VPLS模拟交换机,MAC地址学习依靠数据平面泛洪,没有控制平面参与。
- 转发行为由查询MAC地址表决定,如果MAC地址表有记录则查表转发,没有记录则泛洪转发。
6.VPLS的问题
(1)单活接入导致流量分担不均
- VPLS在CE双归接入PE存在环形拓扑的时候,同交换机的破环技术(STP)思路一样,采用阻塞一个端口方式形成无环的转发路径。因此VPLS接入形成了一种主备的模式。
- 由于CE和PE之间只有一条链路转发数据,且PE与PE之间的链路无法形成多路径,可能造成部分链路拥塞。
(2)故障收敛速度慢
- PE3在感知到链路故障后会向对端PE发送MAC-Withdraw报文,通知删除PE3相关MAC地址。同时PE4将备份链路升级为Active。对端PE1接收到撤销报文后将清除MAC地址,重新学习MAC地址。故障收敛时间与MAC地址数量强相关。
7.EVPN简介
- EVPN颠覆了传统L2VPN数据面学习MAC地址的方式,引入控制面学习MAC和IP指导数据转发,实现了转控分离。
- EVPN解决传统L2VPN的典型问题,实现双活、快速收敛、简化运维等价值。
- EVPN的控制平面采用MP-BGP,数据平面支持多种类型的隧道,例如MPLS、GRE隧道、SRv6。本文以MPLS作为外层隧道转发技术进行讲解。
8.EVPN基本术语
- ES(Ethernet Segment)代表用户站点(设备或网络)连接到PE的一组以太链路,使用ESI(Ethernet Segment dentifier)来表示。
- 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路由携带,用于转发单播流量。
(1)ES和ESI
- ES代表用户站点(设备或网络)连接到PE的一组以太链路,使用ESI来表示。
- ESI总长度为10个字节,且在全网范围内唯一。
- 同一ES双归的两个PE配置的ESI必须相同。例如PE1和PE2上配置相同的ESI为1(此处数值仅为方便理解)。
(2)ESI的格式
(3)EVI和MAC-VRF
- EVI代表一个EVPN实例,用于标识一个EVPN客户。
- MAC-VRF是PE上属于EVI的MAC地址表。
(4)RD和RT
- RD是EVPN实例的唯一标识,用于区分EVI。
- RT作用是给路由打标签,用于控制EVPN路由的引入。
三.EVPN工作原理
1.EVPN路由简介与交互流程
(1)EVPN路由
- EVPN定义了一种新的BGP NLRl(Network Laver Reachable Information)来承载所有的EVPN路由,被称为EVPN NLRI。
- EVPN NLRI被MP-BGP携带。MP-BGP支持多协议扩展,定义EVPN的AFl(Address Family ldentifier)是25,SAFISubsequent Address Familyldentifier)是70.
关于MP-BGP的相关知识可以点击博主写的《BGP 全网最详解》的MP-BGP章节进行详细了解。
(2)EVPN四种类型路由的作用
-
RFC7432中定义了EVPN的Type 1~Type 4共4类路由。随着EVPN协议的发展,越来越多的路由被新定义。
-
首先介绍EVPN四种类型的路由。
(3)EVPN工作流程
- EVPN的工作流程分为两个阶段:
- 启动阶段:
- EVPN对等体交互EVPN Type 3路由建立BUM流量转发表。
- EVPN对等体交互Type 4路由完成ES发现和DF选举(在ES多归属场景下)。
- EVPN对等体交互Type 1路由,交互ESI标签,进而实现水平分割、别名等功能。
- 流量转发:CE侧流量触发PE通过Type2路由通告MAC地址,该路由携带分配的标签信息,后续根据该标签执行单播流量转发。
(4)EVPN表项简介
- EVPN维护三张表用于指导流量转发,他们是MAC-VRF表、BUM流量转发表和ES成员表。
- MAC-VRF表用于记录已知单播流量的转发。
- BUM流量转发表用于指导广播、未知单播和组播流量转发。
- ES成员表用于记录用户接入PE信息。
- 接下来将介绍这三张表的生成过程和作用。
(5)案例解释三张表及四种路由
a.本地创建EVPN实例
- 在PE上创建EVPN实例,配置它的RD和RT。PE上本地将激活EVPN,产生MAC-VRF,其内容为空。
b.Type3路由
i.BUM流量转发表
- 配置PE之间对等体(Peer)关系。以PE1为例,它将发送Type 3路由发现邻居并分配标签。
- 然后PE2、PE3和PE4生成BUM流量转发表。
- 然后这个过程中所有PE均发送Type 3类型路由,最终形成稳定的BUM流量转发表。
ii.配置接口绑定EVPN实例
- CE双活接入PE。在PE上配置CE接入接口与EVPN实例绑定。从该接口进入的报文将进入EVPN实例。
c.Type4路由
i.配置CE接入接口ESI
- 在PE连接CE的接口配置ESI。PE会交互Type4路由,传播ESI并进行DF选举。
ii.DF选举
- 当CE多归到多个PE时,只能有1个PE向CE转发BUM流量,选出这个PE的过程被称为DF选举。
- PE通过特定算法选举出DF。本例中假设PE2和PE3被选举为DF,则只允许PE2和PE3转发BUM流量给CE。
d.Type1路由
i.分发ESI标签:水平分割
- PE通过Type 1类路由分发ESI标签。ESILabel用于水平分割防止同一ES来的流量又绕回到该ES。
ii.成员信息表
- 此过程中所有PE均发送Type 1路由,生成完整的ES成员信息表。
e.EVPN启动阶段总结
- EVPN的启动阶段生成MAC-VRF、BUM流量转发表和ES成员信息表。此时MAC-VRF表项为空。
f.EVPN流量转发阶段
- EVPN流量转发阶段由CE侧用户流量发起开始。
- 用户CE1和CE2不感知PE设备的EVPN协议交互。
- 本例中CE1访问CE2业务流程如下:
g.Tpye2路由
i.本地MAC地址学习
- CE1访问CE2,首先发送ARP请求。PE1接收报文,生成本地MAC表条目。
ii.MAC地址通告
- PE1 EVPN将本地MAC地址条目生成Type 2路由,携带PE1设备分配的标签301。
- 远端的PE设备通过MP-BGP学习到EVPN路由,生成MAC表条目。
- EVPN支持CE多活接入PE。PE2感知直连CE1,刷新最优的MAC表条目,并生成和通告Type2路由。
iii.远端MAC地址学习
- 因PE1和PE2分配不同的MPLS标签,PE3和PE4有两条路径到达CE1。
iiii.MAC-VRF表项
- CE2回复单播ARP应答。PE3通过数据面学习到CE2的MAC地址,生成本地MAC-VRF表项。
- PE3生成并通告Type 2路由。其他PE接收PE3发出的Type 2路由,刷新本地MAC表项。
(6)总结:EVPN解决双活带来的问题
- Type 1路由携带的ESI解决CE侧环路问题。Type 4路由实现DF选举,解决广播流量向CE发送多份的问题。
(7)总结:EVPN实现负载分担
(8)总结:EVPN故障快速收敛
- PE3检测到CE2链路故障,首先删除自己本地MAC表项,然后通过Type 1路由通告所有PE撤销该ES相关的所有MAC地址。
2.EVPN接入原理
(1)EVPN接入概述
- 在EVPN网络边缘的PE设备上可以部署多个EVPN实例(EVI,EVPN Instance),每个EVPN实例可以连接一个或者多个用户网络。EVPN支持通过多种服务模式来接入用户网络:
(2)Port Based模式
- Port Base模式是一种整个接口接入业务的方式,即连接用户网络的物理接口直接绑定普通EVPN实例,且该接口不创建子接口。此种服务模式只能用于承载二层业务。
(3)VLAN Based模式
- 在VLAN Based模式下,连接用户网络的物理接口划分成不同子接口,每个子接口关联不同的VLAN目加入不同的广播域BD(Bridge Domain)。每个广播域BD会与单独的一个EVPN实例进行绑定。此种服务模式可以用于承载二层业务或三层业务。本例有User1和User2,分别使用不同的子接口接入。
(4)VLAN Bundle模式
- 在VLAN Bundle模式下,一个EVPN实例可以连接多个用户,不同用户间使用VLAN进行划分,而该EVPN实例会绑定到一个广播域BD上。此类型服务模式中,接入同一个EVPN实例的不同用户共用同一个MAC转发表,因此需要网络中用户的MAC地址唯一。此种服务模式可以用于承载二层业务或三层业务。
(5)VLAN-Aware Bundle模式
- 在VLAN-Aware Bundle模式下,一个EVPN实例可以连接多个用户,不同用户间使用VLAN进行划分绑定不同的BD。此类型服务模式中,接入同一个EVPN实例的不同用户分别使用独立的与BD对应的MAC转发表(以BD-tag标识)。
四.跨域EVPN
1.跨域EVPN简介
- 一般的EVPN的体系结构都是在一个自治系统(Autonomous System,AS)内运行,任何EVPN的路由信息都是只能在一个AS内按需扩散,没有提供AS内的VPN信息向其他AS扩散的功能。在一些复杂场景下,可能存在企业拥有多个AS,这就需要扩展现有EVPN体系框架,提供一种跨域(Inter-As)的EVPN。
- 跨域的EVPN借鉴跨域MPLS VPN的方式,也有三种:
- OptionA
- OptionB
- OptionC
想了解有关MPLS VPN的跨域知识请阅读博主写的《MPLS L3VPN跨域 详解》。
2.OptionA
- 跨域的EVPN-0ptionA中PE和ASBR之间建立EVPN邻居关系,ASBR之间不需要运行EVPN。
- ASBR之间采用创建多个子接口并绑定VPN的方式实现IP路由传递。
- OptionA的域内流量有两层标签,域间流量无标签。
3.OptionB
- 跨域的EVPN-OptionB中PE和ASBR之间建立EVPN邻居关系,ASBR之间也建立EVPN邻居关系。
- ASBR在收到MAC/IP路由后,修改下一跳为自己,并重新分配标签发给跨域的ASBR。
- OptionB的域内流量有两层标签,域间流量有一层EVPN标签
4.OptionC
- 跨域的EVPN-Optionc中site1和Site2的PE间建立端到端的BGP LSP。
- PE1和PE2建立EVPN邻居关系。ASBR不感知MAC/IP路由。
- OptionC的域内流量有三层标签,域间流量有两层标签(EVPN和BGP标签)。
五.EVPN的典型应用场景
1.在广域网的应用
2.在数据中心的应用
- 在云数据中心采用EVPN的NVO(Network Virtualization Overlay)解决方案(RFC8365)。
- 推荐数据平面使用VXLAN封装,控制平面使用EVPN,构建灵活的数据中心Overlay网络。
3.在园区网的应用
- 园区虚拟化园区网络解决方案与云数据中心相同,采用EVPN的NVO解决方案(RFC8365)
- 在不同的底层组网上使用VXLAN封装与控制平面EVPN结合,构建灵活的园区overlay网络。
4.在SD-WAN的应用
六.EVPN的基本配置
与“EVPN”相关的实验博主会更新在“数据中心”专栏里面,请持续关注。