第十章 EVPN
10.1 VPLS的问题
- 流量无法负载分担,只能使用主备方式
- 收敛速度慢,收敛速度与MAC地址数量有关系
- VPLS只能通过流量触发Mac地址学习
10.2 EVPN概念
- ES:代表是用户站点连接的一组以太网链路,每个链路通过ESI标识。双活场景下,用户连接的链路ESI要配置相同。
- ESI 由10B组成,标识方式多种,1B Type+9B 值,通过16进制表示
- 标识方式:0000.0000.0000.0000.0000
- ESI的种类:Type 0是手工配置
- Type 0:ESI的值由管理员手工配置
- Type 1:当PE和CE之间使用LACP时,ESI的值为:CE LACP System MAC address (6 Byte) + CE LACP Port Key (2 Byte) + 0x00 (1 Byte)
- Type 2:Auto generated by MSTP
- Type 3: System MAC + Local Discriminator
- Type 4: Router ID + Local Discriminator
- Type 5: AS Number + Local Discriminator
- EVI:EVPN实例,用于区分用户的,与MPLS IP VPN 实例类似
- MAC-VRF:属于EVI的MAC地址表
- RD、RT:与MPLS IP VPN实例中配置的一致
- DF:多归场景下,CE多归到不同的PE,这些PE连接相同的ES,其中选举出一个DF(指定的转发者),只能由制定转发者向CE转发BUM帧
- 使用到的标签:
- ESI标签,由Type 1路由携带,发布给所有的PE对等体,链接相同ES的PE保留该标签。用于水平分割。
- BUM标签,由Type 3路由携带,用于转发BUM流量
- 单播标签,由Type 2路由携带,用于已知单播报文的转发。
10.3 EVPN的路由
10.3.1(Type 1) Ethernet A-D Route
以太网自动发现路:用于别名、批量撤销MAC地址、水平分割、多活指示,实现快速收敛,水平分割,负载分担。两种类型:
- ES类型:快速收敛,水平分割
- 快速收敛:通过发布type1路由给其他的PE,涉及到本端的 ESI和PE地址的路由均进行删除。
- 水平分割:通过通告ESI Label给到相同的ESI的PE设备,对端PE设备使用该标签进行封装报文,当收到本地发布的ESI标签的报文,不向对应的ESI进行转发。
- EVI类型:别名
- 本端PE收到相同ES成员列表中的其他PE发来的2类路由,触发向所有PE发送EVI类型的1类路由,实现告知对方到达本ES存在多条路径。对端保存该1类路由中携带的负载分担的标签(单播标签)。
- 1类路由的数据结构:
- Update 报文中的MP-Reach-NLRI属性携带
- RD值,存在两种情况:
- ES路由携带:格式是IPv4:0,如x.x.x.x:0
- EVI路由携带:EVPN实例中配置的RD值
- ESI:路由产生者连接的以太网链路标识
- E-Tag-ID:表示VLAN ID
- MPLS Label字段:
- ES路由中该字段全为0
- EVI路由中该字段是用于负载分担的标签。
- RD值,存在两种情况:
- Update 报文中扩展团体属性:
- ERT值
- ESI label标签:用于水平分割
- Update 报文中的MP-Reach-NLRI属性携带
10.3.2 (Type 2) MAC/IP Advertisement Route
MAC/IP路由,主要用于通告MAC地址,MAC/IP地址绑定,MAC地址的移动性,通告单播标签
- 2类路由的数据结构
- Update MP-Reach-NLRI属性中:
- ESI:ESI值
- 携带二层标签,用于支持2层转发
- 携带三层标签,用于支持3层转发
- 扩展团体属性
- MAC Mobility:用于支持虚拟机迁移,通过其中的序列号来判断2类路由的新旧,序列号越大越新
- ERT值
- Update MP-Reach-NLRI属性中:
- 功能:根据2类路由及携带的标签形成MAC-VRF表项。
10.3.3(Type 3) Inclusive Multicast Route
集成组播路由,主要用于通告BUM标签,用于构建BUM流量转发表,用于BUM流量转发。
- 路由的数据结构:
- Update携带的MP-Reach-NLRI属性:
- RD值
- PE设备上配置的EVPN的源IP地址
- PMSI属性:
- BUM标签(与VXLAN类似)
- IP地址(EVPN的源IP地址)
- 隧道类型(6,头端复制、MLDP)
- 扩展团体属性:ERT值
- Update携带的MP-Reach-NLRI属性:
- 路由的作用:用于隧道和PE的主动发现,根据接收到的3类路由进行BUM表项的构建。
10.3.4(Type 4) Ethernet Segment Route:
以太网段路由,主要用于ES成员的自动发现,进行DF选举。
- 路由的数据结构:
- Uptate 报文中MP-Reach-NLRI属性:
- RD值:实例下配置的RD值
- ESI:PE所属的链路的ESI值
- IP地址以及前缀(PE的EVPN源地址)
- 扩展团体属性:
- ERT
- ES-Import Route Target:其中ES-import字段最低bit位标记为0,表示是多活场景。
- Uptate 报文中MP-Reach-NLRI属性:
- 路由的作用:通过发布4类路由,相互学习4类路由,(多归场景)仅保留本端连接的ESI相同的4类路由。形成ES成员信息表,进行DF选举。
10.3.5 (Type 5) Prefix Route
用于支持L3VPN,通告路由条目前缀信息。
- 路由的数据结构:
- Update MP-Reach-NLRI属性:
- RD:EVPN实例配置的RD
- ESI值:
- E-tag-ID:VLAN ID
- IP前缀和前缀长度
- 网关地址:该路由的网关地址
- 3层标签:用于3层业务通信。
- 扩展团体属性:ERT值
- Update MP-Reach-NLRI属性:
10.4 EVPN的工作流程
分为两个阶段:
- 启动阶段:
- EVPN对等体交互EVPN Type 3路由建立BUM流量转发表。
- EVPN对等体交互Type 4路由完成ES发现和DF选举(在ES多归属场景下)。
- EVPN对等体交互Type 1路由,交互ESI标签,进而实现水平分割、别名等功能。
- 流量转发阶段:
- CE侧流量触发PE通过Type 2路由通告MAC地址,该路由携带分配的标签信息,后续根据该标签执行单播流量转发。
10.5 EVPN的表项
- MAC-VRF表项:已知单播表项,
- 由MAC地址:可以通过报文触发学习,也可以通过EVPN路由学习。
- ESI:MAC地址链接的ESI
- 下一跳(port):该MAC地址的出接口或者是远端PE的IP地址
- 单播标签:从Type 2路由学习而来,如果为空,标识该MAC地址是PE本地ES的MAC地址。
- BUM流量转发表:用于BUM流量转发
- 由Peer(PE的地址)和BUM标签组成
- BUM标签是PE生成的3类路由携带,并发送给其他的PE,其他PE收到该3类路由,生成对应的BUM流量转发表项。
- ES成员信息表:用于DF选举
- 组成:序号、ESI、成员(通过PE的IP地址标识)、标签(水平分割标签),
- 4类路由和1类路由共同组成。
10.6 DF选举
PE连接CE的设备的接口是UP状态才会参与DF选举。
- 多归场景下,CE设备多归属到多个PE设备,PE设备会接收到其他PE设备发布的4类路由(以太网段路由),从中提取源IP地址,形成成员信息表。
- PE将给每个其他PE的IP地址进行排序,序号从0开始,IP地址小的序号小。
- 进行DF选举:
- 基于接口的进行DF选举,则选择IP地址小的(序号为0的)作为该ESI的DF
- 如果是基于VLAN选举DF,则通过取余公式(V mode N)的余数来决定选择哪个序号的成员作为DF设备。
- V表示VLAN ID
- N表示多归属的PE的数量
10.7 EVPN接入服务模式
在PE上配置EVPN进行接入EVPN网络,有以下几种
- 基于接口(Port Based):
- 通过物理接口绑定EVPN实例实现。
- 只能用于二层业务
- 通过接口来区分用户,比较占用物理接口资源
- 基于VLAN(VLAN Based):
- 通过物理接口的子接口绑定不同的VLAN,不同的VLAN绑定不同的BD域,不同的BD域绑定不同的EVPN实例
- 用于二层业务和三层业务
- 不同的EVPN实例区分用户,占用较多的EVPN实例的资源
- VLAN Bundle模式:
- 一个VPN实例可以绑定多个用户,用户通过不同的VLAN进行区别。
- 用于二层业务和三层业务
- 所有的用户都使用相同的MAC地址表,需要保证MAC地址唯一。
- VLAN-Aware Bundle模式:
- 一个EVPN实例可以绑定多个用户,不同用户通过VLAN划分,一个EVPN实例可以绑定多个BD域,绑定时,需要对BD域设置不同的BD-tag,BD-tag字段将加入到EVPN路由的1,2,3类中的Ethernet-Tag-ID字段中。
- 用于二层业务和三层业务
- 所有的用户可以通过BD域的不同,使用独立的MAC地址表。