<hr/> 基于EVPN控制平面的SRv6解决方案是当下SRv6部署的最典型应用之一,可以简称为SRv6 EVPN。
为了支持基于SRv6的EVPN,在发布Type-x路由的同时,还需要通告其中一个或多个SRv6 Service SID,包括End.DX4等。通告SRv6 Service SID的目的在于将EVPN实例与SRv6 Service SID绑定,从而使EVPN流量通过SRv6数据平面转发。
根据CE接入方式及不同PE的互访诉求,EVPN有以下几种常见的部署方式。
EVPN E-LAN:适用于二层VPLS业务接入场景。
EVPN E-Line:适用于点到点的二层VPWS业务接入场景。
EVPN L3VPN:适用于三层VPN业务接入场景。
5.4.1 EVPN E-LAN over SRv6的工作原理
在典型的EVPN E-LAN业务中,PE需要部署EVI和BD,AC接口需要绑定BD,BD也需要绑定到EVI。此外,还需要为该EVPN实例中的所有PE配置相同的RT,用于实现业务MAC/IP路由的相互导入导出,进而实现多点到多点互联。
下面以单播和组播为例,介绍EVPN使用SRv6 BE路径承载报文的工作原理。
MAC学习与单播流量转发
在转发EVPN数据之前,EVPN实例需要通过控制平面来通告Type-2 MAC/IP路由,构建MAC转发表。PE节点学习MAC/IP路由的流程如下。
① CE1发起ARP请求,查询CE3的MAC地址。
② PE1从AC接口收到ARP请求报文以后,会执行如下动作。
② P设备收到报文,按照最长匹配原则查询IPv6路由转发表,最终匹配到IGP发布的SRv6 Locator路由A3:1::/96,按最短路径转发到PE3。
③ PE3收到报文,命中一个End.DT2U SID,PE3需要执行End.DT2U SID的指令。
图5-16 EVPN E-LAN over SRv6单播流量转发流程
组播分发树建立与BUM流量转发
如图5-17所示,组播分发树建立流程如下。
① 各个PE部署了BD与EVPN实例之后,互相发布Type-3集成组播路由,发布PE的Originator-IP、PMSI属性以及End.DT2M VPN SID信息,PE在本地生成End. DT2M类型的SID表项。
② 各个PE从其他PE接收到Type-3集成组播路由,找到与RT匹配的EVPN实例与BD,根据Originator-IP与VPN SID建立组播分发树。当有该EVPN下的BUM流量进来时,依据组播分发树的Originator-IP来复制组播流量。
图5-17 EVPN E-LAN over SRv6组播分发树建立流程
如图5-18所示,组播分发树建立好之后,就可以转发BUM流量,具体的转发流程如下。
① CE1向PE1发送一个二层广播报文,目的MAC地址可以为广播MAC地址、组播MAC地址或未知单播MAC地址。
② PE1从BD接口接收到BUM流量,根据已经建立好的组播分发树,复制BUM流量到所有叶子,发送给其他PE。
③ P节点收到流量,按照最长匹配原则查询IPv6路由转发表,匹配到IGP发布的Locator路由,按最短路径发送给PE2和PE3。
④ PE2和PE3收到流量,通过报文IPv6目的地址查找本地SID表,结果命中一个End.DT2M SID,PE2和PE3需要执行End.DT2M SID的指令。
图5-18 EVPN E-LAN over SRv6 BUM流量转发流程
在多归场景下,建立组播分发树之后,需要用到水平分割技术来实现BUM流量剪枝,防止BUM流量环路。下面以双归场景为例,具体描述水平分割相关的控制转发流程。如图5-19所示,CE2双归到PE2和PE3,CE3单归到PE3。现在CE2对外发送一份BUM流量。
控制表项建立流程如下。
① 双归场景下的PE2、PE3会为CE2多归接入的接口分配一个本地唯一的Arg.FE2标识。
② PE1接收到该路由信息时,PE1上没有同一ES的配置,该路由不做处理。
③ PE2接收到该路由信息时,PE2上有同一ES的配置,PE2保存PE3通告过来的Arg.FE2信息。在转发时,PE2将 Arg.FE2与 PE3的End.DT2M SID进行“Or”操作来修改本地的组播分发树目的地址为A3:1B::F3C2。
数据转发流程如下。
① 入口PE2节点在接收到BUM流量时,基于EVI形成的组播分发树复制流量给其他PE节点;其中,通告BUM流量给PE1时,目的地址是PE1的End.DT2M值;通告BUM流量给PE3时,目的地址是A3:1B::F3C2。
② PE1从网络侧接收到BUM流量时,PE1执行普通End.DT2M操作。
③ PE3上会预先形成一个泛洪剪枝表,以Arg.FE2为索引,查AC出接口。
PE3在接收到目的地址为A3:1B::F3C2的BUM流量时,使用目的地址的最后8 bit去查泛洪剪枝表,确定剪枝接口,最终PE3向除了Arg.FE2绑定的AC接口外的其他所有AC接口复制BUM流量,防止了BUM流量环路。
图5-19 CE双归场景EVPN E-LAN over SRv6 BUM流量转发流程
5.4.2 EVPN E-Line over SRv6的工作原理
EVPN E-Line在EVPN业务架构基础上提供了一种点到点的L2VPN服务方案。EVPN E-Line over SRv6分为单归场景、双归单活和双归双活场景。
如图5-20所示,EVPN E-Line over SRv6 BE的连接建立流程如下。
① PE1和PE2分别配置EVPL实例和EVPN VPWS实例。配置完成后,本地PE上将生成AC接口和EVPL实例的转发关联表项。
② PE1和PE2分别向对端发送Type-1以太自动发现路由,Type-1以太自动发现路由携带本地AC ID,以及类型为End.DX2的VPN SID,PE在本地生成End.DX2类型的SID表项,动作为解封装SRv6后把流量转发到对应AC接口。
③ PE1和PE2分别从对端收到Type-1以太自动发现路由,匹配RT以后,交叉到对应的EVPN VPWS实例,根据以太自动发现路由中的Ethernet Tag ID匹配EVPL实例中配置的远端AC ID,如果匹配成功,则下发EVPN E-Line转发表。
EVPN E-Line over SRv6 BE单归场景数据转发如图5-21所示,具体的转发流程如下。
① PE1根据流量入接口绑定的E-Line查找相应的EVPN E-Line转发表,得到SRv6 VPN SID,然后对原始报文进行SRv6封装,最后使用SRv6 VPN SID查询IPv6路由转发表,找到对应的出接口并转发流量。
② P节点收到流量,按照最长匹配原则查询IPv6路由转发表,匹配到IGP发布的Locator路由A2:1::/96,按最短路径转发给PE2。
③ PE2收到流量,通过报文IPv6目的地址查找本地SID表,结果命中一个End.DX2SID,PE2需要执行End.DX2 SID的指令。
图5-20 EVPN E-Line over SRv6 BE单归场景的路由发布流程
图5-21 EVPN E-Line over SRv6 BE单归场景数据转发流程
5.4.3 EVPN L3VPN over SRv6的工作原理
EVPN L3VPN over SRv6的数据转发方式与L3VPN over SRv6相同,二者的差别仅仅在于发布路由的方式不同。EVPN通过BGP EVPN地址族发送EVPN Type-5 IP前缀路由来通告VPN SID。
5.4.4 SRv6 EVPN的协议扩展
本节将详细介绍SRv6 EVPN主要类型路由的协议扩展及其发布过程。