以太网 VPN (Ethernet VPN, EVPN) 是用于网络虚拟化覆盖网络 (Network Virtualization Overlay, NVO) 的基于标准的 BGP 分布式控制平面,它通过 IP 或 IP/MPLS 底层网络提供第 2 层(桥接)和第 3 层(路由)连接。BGP EVPN 最初设计为与 MPLS 数据平面配合使用,以解决服务提供商网络中 VPLS 的限制。但是,由于 BGP 可扩展性和灵活性方面的优势,EVPN 在数据中心被广泛用作 VXLAN 覆盖网络的控制平面机制。

BGP EVPN 的一些主要特性和优势包括:

  • 基于 BGP 的控制平面可学习第 2 层和第 3 层终端主机可访问性信息。这取代了 VXLAN、SPB 和 Trill 等旧版 L2VPN 解决方案的泛洪和学习行为。

  • ARP 抑制可最大程度地减少不必要的 ARP 和 ND 消息泛洪。

  • 支持仅桥接和/或集成的路由和桥接。

  • 支持 MAC 和 IP 移动性以及多宿主。

MP-BGP EVPN 地址系列

为 EVPN 定义了新的 MP 地址系列指示符/后续地址系列指示符 (Address Family Indicator/Subsequent Address Family Indicator, AFI/SAFI):l2vpn (25) /evpn (70)。要使两个 BGP 路由器交换 EVPN 网络层可访问性信息 (Network Layer Reachability Information, NLRI),它们必须在 BGP 会话开始时协商 EVPN BGP 功能,以确保两个对等体都可以支持此类 NLRI。

路由标识和路由目标

BGP EVPN 使用与其他 BGP VPN 技术相同的机制来确保唯一性和多租户:

机制 描述

路由标识 (RD)

  • 在 EVPN 中用于使地址全局唯一。

  • RFC 4364 中定义的相同编码适用于 BGP EVPN。

  • RD 类型 0 具有 2 个字节的“管理员”子字段和 4 个字节的“指定的编号”子字段。“管理员”子字段必须包含一个自治系统编号。

  • RD 类型 1 具有 4 个字节的“管理员”子字段和 2 个字节的“指定的编号”子字段。“管理员”子字段必须包含一个 IP 地址。

路由目标 (RT)

  • 在 EVPN 中用于通过根据需要导入和导出 RT 来指示虚拟网络成员身份。

EVPN 路由类型

EVPN NLRI 可按以下路由类型进一步进行分类:

路由类型 描述 用途 NSX 内嵌模式 NSX 路由服务器模式

类型 1 (RT-1)

以太网自动发现 (A-D) 路由

在数据中心中用于支持 EVPN 活动-活动多宿主。

是(仅接收 DC-GW 多宿主)

类型 2 (RT-2)

MAC/IP 通告路由

通告特定 MAC 地址的可访问性,以及可选的 MAC 和 IP 地址绑定。

类型 3 (RT-3)

包含多播以太网标记路由

通告虚拟网络中与特定 VTEP 关联的 VNI 的可访问性。

需要第 3 类路由才能在 EVPN 网络间传输 BUM 流量。

类型 4 (RT-4)

以太网分段路由

在具有多宿主端点的数据中心中使用,用于指定的转发器选举来确保只有一个 VTEP 转发 BUM 流量。

类型 5 (RT-5)

IP 前缀路由

通告 IPv4 和 IPv6 前缀可访问性。在 EVPN 域中通告前缀可提供构建 L3VPN 类似服务的能力。

类型 6 (RT-6)

选择性多播以太网标记路由

用于通告主机或虚拟机接收特定多播组 (*,G) 或源组组合 (S,G) 的多播流量的意向。

虚拟路由和转发

通过虚拟路由和转发 (Virtual routing and forwarding, VRF),可以在路由器中实例化隔离的路由表和转发表。这些路由和转发表实例将第 3 层域和分段彼此隔离,从而在路由器本地或多个路由器之间创建一个多租户网络。

通过部署 Tier-0 VRF 网关在 NSX 中支持 VRF。Tier-0 VRF 网关必须链接到父 Tier-0 网关,并继承某些 Tier-0 设置,例如 HA 模式、Edge 集群、内部转换子网、T0-T1 转换子网和 BGP 本地 ASN。

可以在同一个父 Tier-0 下创建多个 Tier-0 VRF 网关,从而允许将分段和 Tier-1 网关划分为多个隔离的租户。对于 Tier-0 VRF 网关,租户可以使用重叠的 IP 地址,而不会相互干扰或通信。

在 EVPN 上下文中,每个第 3 层 VRF 均由一个全局唯一虚拟网络标识符 (VNI) 标识。NSX Edge 节点和数据中心网关中的每个 VRF 的 VNI 必须匹配。

VXLAN 封装和 VNI

RFC7348 中定义的 VXLAN 封装在 NSX 隧道端点(内嵌模式的 Edge 节点和路由服务器模式的 Hypervisor)和外部路由器之间用于确保数据平面与其他供应商的兼容性。在 NSX 域中,仍使用 GENEVE 封装。

VXLAN 封装的帧包含外部以太网标头、外部 IP 标头、外部 UDP 标头、VXLAN 标头和内部以太网帧。

VNI 是用于标识特定虚拟网络分段的 24 位标识符。当 EVPN 用于通过使用路由类型 5 和封装类型 VXLAN 通告 IP 前缀可访问性时,VNI 会标识租户 VRF 实例。根据 RFC9135 中的定义,此 VNI 与前缀路由一起在 BGP 控制平面中通告,并在数据平面封装中用于区分 VRF 之间的流量。NSX Edge 节点和数据中心网关中的每个 VRF 的 VNI 必须匹配。

每个 VRF 实例都有自身的 VXLAN VNI。