EVPN 并非一种协议,而是一种在Overlay网络中利用多协议边界网关协议 (MP-BGP) 作为控制平面的解决方案。此外,EVPN 还采用虚拟可扩展局域网 (VXLAN) 封装作为Overlay网络的数据平面。
那为什么这么说呢,下面我们从几个方面来看。
EVPN 控制平面
多协议 BGP (Multi-Protocol BGP,MP-BGP) 是 BGP-4 的扩展,允许 BGP speakers将包括IPv4/6、VPNv4和MAC地址在内的各种地址类型的网络层可达信息 (NLRI) 编码到 BGP update消息中。
MP-BGP update消息中携带的 MP_REACH_NLRI 路径属性 (PA) 包括地址系列标识符 (AFI) 和后续地址系列标识符 (SAFI) 属性。AFI 和 SAFI 的组合决定了所携带的NLRI语义。例如,AFI-25 (L2VPN) 与 SAFI-70 (EVPN) 定义了基于 MP-BGP 的 L2VPN 解决方案,该解决方案利用以太网 VPN (EVPN) 解决方案在 IPv4 路由基础设施上以多点方式扩展广播域。
BGP update消息中携带的 BGP EVPN 路由类型 (BGP RT) 描述了所通告的 EVPN NLRI类型。除了使用 IP 前缀路由 (EVPN RT 5) 发布 IP 前缀信息外,BGP EVPN 还使用 MAC 通告路由 (EVPN RT 2) 来通告主机的 MAC/IP 地址可达性信息。虚拟网络标识符 (VNI) 描述了所通告的 MAC/IP 地址所属的 VXLAN 段。
在这两种基本路由类型中,BGP EVPN可以利用包容性多播路由(EVPN RT 3)为第2层广播、未知单播和多播(BUM)流量创建共享交付树,以便加入入口复制隧道。此解决方案无需底层网络支持多播。而对于BUM流量,另一种选择是使用支持多播的底层网络。
虽然 EVPN RT 3 用于为 BUM 流量构建多播树,但租户路由多播 (TRM) 解决方案在发送方和接收方之间提供特定于租户的多播转发。TRM 基于多播 VPN(BGP AFI:1/SAFI:5 - Ipv4/Mcast-VPN)。TRM 使用 MVPN Source Active A-D 路由(MVPN RT 5)发布多播流源地址和组)。
使用 BGP EVPN 的原生多宿主解决方案,我们可以在租户系统 (TS) 和两个或多个 VTEP 交换机之间建立端口通道。从 TS 的角度来看,传统的端口通道是通过将一组以太网链路捆绑为单个逻辑链路来部署的。在多宿主 VTEP 交换机上,这些链路与称为以太网段 (ES) 的逻辑端口通道接口相关联。
EVPN 利用 EVPN 以太网段路由 (EVPN RT 4) 作为成员单元之间的信令机制,以指示它们连接到哪些以太网段。此外,VTEP 交换机使用此 EVPN RT 4 为广播、未知单播和多播 (BUM) 流量选择指定转发器 (DF)。
当在一组 VTEP 交换机上启用 EVPN 多宿主时,所有本地 MAC/IP 通告路由都包含 ES 类型和 ES 标识符。EVPN 多宿主解决方案采用 EVPN 以太网 AD 路由 (EVPN RT 1) 实现快速收敛。利用 EVPN RT 1,VTEP 交换机可以通过在 MP-UNREACH-NLRI 路径属性中描述 ESI 值来一次性撤回通过故障 ES 学习到的所有 MAC/IP 地址。
与基于生成树协议 (STP) 的网络依赖基于泛洪和学习的被动数据平面学习模型不同,EVPN fabric采用主动控制平面学习模型。在 EVPN fabric中,租户系统之间的数据路径是在数据交换之前建立的。值得注意的是,如果不启用 ARP 抑制,本地 VTEP 交换机将泛洪 ARP 请求消息。但是,远程 VTEP 交换机不会从 VXLAN 封装的帧中学习源 MAC 地址。
BGP EVPN 提供了多种方法来过滤可达性信息。例如,我们可以根据 BGP 路由目标 (BGP RT) 建立导入/导出策略,也可以使用前缀列表或 BGP 路径属性(如 BGP 自治系统编号)等元素部署入口/出口过滤器。此外,BGP、OSPF 和 IS-IS 都支持对等身份验证。
EVPN 数据平面
虚拟可扩展局域网 (VXLAN) 是一种封装方案,支持在第 3 层网络上扩展广播域/VLAN。执行封装/解封装的交换机或主机称为 VXLAN 隧道端点 (VTEP)。VTEP 将本地租户系统 (TS) 发起的以太网帧封装在外部 MAC 和 IP 报头中,后跟一个目标端口为 4789 的 UDP 报头,源端口根据有效负载计算得出。UDP 报头和原始以太网帧之间是 VXLAN 报头,使用 VXLAN VNI描述 VXLAN 段。
VTEP 设备为 VN 内连接分配第 2 层 VNI (L2VNI),为 NV 间连接分配第 3 层 VNI (L3VNI)。每个 VXLAN 段都有唯一的 L2VNI,但租户特定的 VN 间通信有一个公共 L3VNI。此外,VXLAN 通用协议扩展 (VXLAN-GPE) 使leaf交换机能够将组策略信息添加到数据包中。
EVPN 构建模块
上图分为了四个域:1)服务抽象 - 广播域,2) Overlay控制平面,3)Overlay数据平面,4)路由传播。这些域由具有跨域依赖关系的多个组件组成。
服务抽象 - 广播域:VLAN
广播域 (BD) 是一个逻辑网络段,其中所有连接的设备共享同一子网,并且可以通过广播和单播消息相互访问。虚拟局域网 (VLAN) 可以被视为 BD 的抽象。当我们创建一个新的 VLAN 并将访问/中继接口与其关联时,交换机会开始根据本地租户系统发出的接收帧构建源 MAC 地址的地址表。租户系统可以是转发组件,例如防火墙和负载平衡器,连接到一个或多个特定于租户的虚拟网络。
服务抽象-广播域:EVPN实例
EVPN 实例由第 2 层虚拟网络标识符 (L2VNI) 标识。除了 L2VNI,EVPN 实例还具有唯一的路由区分符 (RD),允许不同租户和 BGP 路由目标 (BGP RT) 之间的地址重叠,以实现 BGP 导入和导出策略。在部署 EVI 之前,我们必须配置 VLAN 并将其与 VN 段 (EVPN Instance) 关联。这是因为与 EVI 关联的自动生成的路由区分符需要 RD 本地管理员部分中的 VLAN 标识符(基值 32767 + 关联的 VLAN ID)。当我们部署 EVPN 实例时,第 2 层转发管理器 (L2FM) 开始将本地 MAC 地址信息从 MAC 表编码到 EVI 特定的 MAC-VRF (L2RIB),反之亦然。
Overlay控制平面
VTEP 交换机使用 BGP EVPN 发布租户系统 (TS) 可达性信息。BGP 路由信息库 (BRIB) 由本地 RIB (Loc-RIB) 和邻接 RIB 输入/输出 (Adj-RIB-In 和 Adj-RIB-Out) 表组成。BGP 进程将所有有效的本地和远程网络层可达性信息 (NLRI) 存储到 Loc-RIB 中,而 Adj-RIB-Out 是一个对等特定表,通过 BGP 策略引擎安装 NLRI。策略引擎执行我们部署的 BGP 对等策略。单 AS 结构中策略引擎操作的一个示例是部署在 Spine 交换机中的对等特定路由反射器客户端定义。通过将对等的 Leaf 交换机设置为路由反射器 (RR) 客户端,我们允许 Spine 交换机将收到的 NLRI 从一个 iBGP 对等发布到另一个 iBGP 对等,而根据默认 BGP 策略,这是不允许的。本地租户系统 MAC 地址和源接口从 L2RIB 编码为 BGP Loc-RIB,封装类型和源 IP 地址从 NVE 接口配置中获取。
当 VTEP 从具有可导入路由目标的远程 VTEP 收到 EVPN NLRI 时,它会通过检查是否已从配置的 BGP 对等体收到路由,以及是否具有正确的远程 ASN 和可访问的源 IP 地址来验证路由。然后,它将 NLRI(RD、封装类型、下一跳、VNI)信息安装到 BGP Loc-RIB 中。请注意,如果 VN 段与远程 VTEP 中的另一个 VLAN 相关联,则 RD 的本地管理员部分可能会在此过程中发生变化。
请记住,VLAN 是本地有效的,而 EVPN 实例具有fabric的意义。接下来,将最佳 MAC 路由与拓扑信息(与 VXLAN 段关联的 VLAN ID)和下一跳信息一起编码到 L2RIB 中。
此外,L2RIB 将路由源描述为 BGP。最后,L2FM 将信息写入 MAC 地址表中,并将 NVE 对等接口 ID 设置为下一跳。请注意,VXLAN Manager根据源 IP 地址从数据平面学习 VXLAN 对等体。
Overlay数据平面:网络虚拟化边缘 (NVE) 接口
逻辑 NVE 接口的配置决定了 VXLAN 隧道的封装类型和隧道 IP 地址。VXLAN 隧道源 IP 地址从逻辑环回接口获取,该接口必须能够跨fabric交换机访问。NVE 接口的 IP 地址在 BGP MP-REACH-NLRI 中的 BGP 更新消息中用作源 IP 地址。VXLAN 封装类型作为 BGP EXTENDED-COMMUNITY 路径属性与路由目标(L2VNI 和 L3VNI)和系统 MAC(如果包含 IP 地址)一起发布。
EVPN 实例 (EVI) 作为Member VN与 NVE 接口相关联。我们必须在每个Member VN 下定义 L2BUM 流量转发模式(入口复制或多播组)。VXLAN Manager负责数据平面封装和解封装过程。
MAC 路由传播:本地 VTEP
租户系统可以通过发送GARP (Gratuitous ARP,一种未经请求的 ARP 回复)来验证其 IP 地址的唯一性。VTEP 交换机从传入帧中学习源 MAC 地址并将其添加到 MAC 地址表中。与 MAC 表项关联的 VLAN ID 来自接入电路(入接口)或以太网报头中的 802.1Q 标签的配置。接入电路用作下一跳。
L2FM (Layer 2 Forwarding Manager)将信息从 MAC 地址表传输到 MAC-VRF 的 L2RIB。随后,MAC 路由被编码到 BGP Loc-RIB 中。BGP 进程将 EVPN 实例特定的路由区分符附加到 EVPN NLRI。此外,EVI 特定的路由目标配置为 EXTENDED_COMMUNITY,并且在 NVE 接口配置中定义的 VXLAN 封装。EVPN NLRI 的下一跳由与本地 NVE 接口关联的 IP 地址确定。最后,MAC 路由通过 BGP 策略引擎从 Loc-RIB 发送到 Adj-RIB-Out 并转发到 BGP EVPN 对等体。
*本文编译自nwktimes