以太网 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-T 中支持 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-T Data Center 隧道端点(内嵌模式的 Edge 节点和路由服务器模式的 Hypervisor)和外部路由器之间用于确保数据平面与其他供应商的兼容性。在 NSX-T 域中,仍使用 GENEVE 封装。

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

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

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