使用 EVPN 的 VXLAN 数据中心互连概述
从 Junos OS 16.1 版开始,以太网 VPN (EVPN) 技术可用于通过 MPLS/IP 网络互连虚拟可扩展局域网 (VXLAN) 网络,以提供数据中心连接。这是通过第 2 层子网内连接和互连的 VXLAN 网络之间的控制平面分离来实现的。
以下各节介绍将 EVPN 与 VXLAN 集成以用作数据中心互连 (DCI) 解决方案的技术和实施概述。
适用于 DCI 的 VXLAN-EVPN 集成技术概述
以下各节从概念上概述了 VXLAN、EVPN、将其集成到 DCI 中的必要性以及由此带来的好处。
了解 VXLAN
虚拟可扩展局域网 (VXLAN) 是一种第 3 层封装协议,使 MX 系列路由器能够通过 VXLAN 隧道将第 2 层或第 3 层数据包推送到虚拟化数据中心或互联网。两个虚拟隧道端点 (VTEP) 之间建立通信,这两个端点可以是终端主机,也可以是网络交换机或路由器,用于将虚拟机 (VM) 流量封装和解封装到 VXLAN 标头中。
VXLAN 通常被描述为一种叠加技术,因为它允许您通过在包含 IP 地址的 VXLAN 数据包中封装(隧道)以太网帧,在中间的第 3 层网络上扩展第 2 层连接。VXLAN 的此功能可满足多租户数据中心的要求,在多租户数据中心中,每个租户的虚拟机可能与分布在不同数据中心内或跨不同数据中心的物理服务器上的其他租户共享物理服务器,此外还隔离每个租户的流量以确保安全性和潜在的 MAC 地址重叠,从而满足在租户拥有的所有虚拟机之间提供无缝第 2 层连接的需求。
虚拟机管理程序在物理服务器之间创建 VXLAN 隧道。由于物理服务器可以托管多个租户,因此每个虚拟机管理程序都会创建多个 VXLAN 隧道。
VXLAN 是一种允许您对网络进行分段的技术(就像 VLAN 一样),但它也解决了 VLAN 的扩展限制,并提供 VLAN 无法提供的优势。使用 VXLAN 的一些重要优势包括:
理论上,您可以在管理域中创建多达 1600 万个 VXLAN(而非瞻博网络设备上的 4094 个 VLAN)。
MX 系列路由器支持多达 32K 个 VXLAN。这意味着 VXLAN 能够以云构建商所需的规模提供网络分段,以支持大量租户。
您可以通过第 3 层网络上的隧道传输流量,以便在位于不同第 2 层域中的服务器之间启用虚拟机迁移。此功能允许您在数据中心内部或数据中心之间动态分配资源,而不受第 2 层边界的限制,也不必被迫创建大型或地理上延伸的第 2 层域。
了解 EVPN
EVPN 是一种基于标准的新技术,可通过 IP 或 IP/MPLS 骨干网络在不同的第 2 层域之间提供虚拟多点桥接连接。与其他 VPN 技术(如 IPVPN 和 VPLS)类似,EVPN 实例 (EV) 配置在 PE 路由器上,以便在客户之间保持逻辑服务分离。PE 连接到 CE 设备,这些设备可以是路由器、交换机或主机。然后,PE 路由器使用多协议 BGP (MP-BGP) 交换可访问性信息,并在 PE 之间转发封装的流量。由于该架构的元素与其他 VPN 技术通用,因此 EVPN 可以无缝引入并集成到现有服务环境中。
EVPN 技术通过添加扩展控制平面过程,在参与的数据中心边界路由器 (DCBR) 之间交换第 2 层(MAC 地址)和第 3 层(IP 地址)信息,为下一代数据中心互连 (DCI) 提供了机制。这些功能有助于解决一些 DCI 挑战,例如无缝的虚拟机移动性和最佳 IP 路由。无缝虚拟机移动性是指面对虚拟机移动性时进行第 2 层扩展和保持连接的挑战,而最佳 IP 路由是指为 VM 的出站流量提供支持默认网关行为和三角路由避免 VM 入站流量的挑战。
数据中心运营商使用 EVPN 技术来提供多租户、灵活且有弹性的服务,这些服务可按需扩展。这种灵活性和复原能力可能需要在不同物理数据中心之间为单个服务(第 2 层扩展)和虚拟机移动使用计算资源。
EVPN 支持全活动多宿主,允许客户边缘设备连接到两个或更多 PE 路由器,以便使用设备之间的所有链路转发流量。这使客户边缘能够对发往多个 PE 路由器的流量进行负载平衡。更重要的是,它允许远程 PE 对核心网络中多宿主 PE 的流量进行负载平衡。数据中心之间的这种流量负载均衡称为混叠。EVPN 还具有防止全活动多宿主拓扑中广播、未知单播和组播 (BUM) 流量环路的机制。
多宿主可在访问链路或其中一个 PE 路由器发生故障时提供冗余。在任一情况下,从 CE 流向 PE 的流量都使用剩余的活动链路。对于其他方向的流量,远程 PE 会更新其转发表,将流量发送到连接到多宿主以太网段的剩余活动 PE。EVPN 提供了一种快速收敛机制,因此进行此调整所需的时间与 PE 获知的 MAC 地址数量无关。
EVPN 的 MP-BGP 控制平面允许将实时虚拟机从一个数据中心动态移动到另一个数据中心,也称为虚拟机移动。将虚拟机移动到目标服务器/虚拟机管理程序后,它会传输一个免费 ARP,用于更新目标数据中心 PE 的第 2 层转发表。然后,PE 会将 MAC 路由更新传输到所有远程 PE,进而更新其转发表。通过这种方式,EVPN 跟踪虚拟机的移动,也称为 MAC 移动性。EVPN 还具有检测和阻止 MAC 抖动的机制。
EVPN 技术与第 3 层 MPLS VPN 类似,是一种引入通过 MPLS 核心使用 MP-BGP 路由 MAC 地址概念的技术。使用 EVPN 的一些重要优势包括:
能够拥有双活动多宿主边缘设备。
提供跨双活动链路的负载平衡。
提供 MAC 地址移动性。
提供多租户。
提供混叠。
实现快速融合。
VXLAN-EVPN 集成概述
VXLAN 定义了一种隧道方案,用于在第 3 层网络之上叠加第 2 层网络。它通过使用 UDP/IP 封装进行隧道传输,支持单播和组播流量的多路径,从而实现以太网帧的最佳转发,主要用于数据中心内部站点连接。
另一方面,EVPN 的一个独特特征是 PE 设备之间的 MAC 地址学习发生在控制平面中。从 CE 设备检测到的新 MAC 地址由本地 PE 使用 MP-BGP 通告到所有远程 PE 设备。此方法不同于现有的第 2 层 VPN 解决方案(如 VPLS),后者通过在数据平面中泛洪未知单播来学习。这种基于控制平面的 MAC 学习方法是 EVPN 提供的许多有用功能的关键促成因素。
由于 MAC 学习是在控制平面中处理的,因此 EVPN 能够灵活地支持 PE 之间的不同数据平面封装技术。这一点很重要,因为并非每个骨干网络都在运行 MPLS,尤其是在企业网络中。
如今,人们对 EVPN 产生了浓厚的兴趣,因为它解决了正在构建数据中心以提供云和虚拟化服务的网络运营商面临的许多挑战。EVPN 的主要应用是数据中心互连 (DCI),它能够在部署的不同数据中心之间扩展第 2 层连接,以提高向最终用户提供应用程序流量和灾难恢复的性能。
尽管有多种 DCI 技术可用,但 EVPN 由于其独特的功能(如主动-主动冗余、混叠和批量 MAC 撤销),与其他 MPLS 技术相比具有额外的优势。因此,为了提供 DCI 解决方案,我们将 VXLAN 与 EVPN 集成在一起。
每个连接到 MPLS 或 IP 核心的 VXLAN 网络都运行 IGP 控制平面的独立实例。每个 PE 设备都参与其 VXLAN 网络的 IGP 控制平面实例。在这里,每个客户都是一个数据中心,因此它有自己的用于 VXLAN 底层网络的虚拟路由器。
每个 PE 节点都可以终止 VXLAN 数据平面封装,其中每个 VNI 或 VSID 都映射到桥接域。PE 路由器对从 VXLAN 网络接收的流量执行数据平面学习。
每个 PE 节点实施 EVPN,以便将通过 VXLAN 隧道获知的客户端 MAC 地址分发到 BGP 中。通过 MPLS 核心发送数据包时,以及通过 VXLAN 网络发送数据包时,每个 PE 节点使用 MPLS 封装 VXLAN 或以太网帧
VXLAN-EVPN 数据包格式
VXLAN 和 EVPN 数据包格式如下:
VXLAN-EVPN 数据包演练
以下各节介绍 VXLAN 和 EVPN 网络之间两种类型的流量的数据包演练:
流浪汉流量处理
通过 EVPN 云从 VXLAN 分段 1 到 VXLAN 分段 2 的 VXLAN 到 EVPN BUM 流量的处理方式如下:
0- 在启动时,服务器 A 希望将流量发送到服务器 B。由于服务器 A 的 ARP 表中没有服务器 B 的 ARP 绑定,因此服务器 A 会生成 ARP 广播请求并发送该请求。
ARP 数据包的内容如下:
VLAN ID = VLAN 10
源 MAC= MAC1
目标 MAC = ff.ff.ff.ff.ff.ff.ff
源 IP 地址 = 服务器 A 的 IP 地址或虚拟机 IP 地址
目标 IP 地址 = 服务器 B 的 IP 地址
数据包的以太类型 = 0x0806
第 2 层帧被发送到启用了 VXLAN 的架顶式 (TOR) 交换机 TOR A。
1— ARP 请求(广播)帧由交换机 TOR A. TOR A 是适用于 VNI 1000 的 VXLAN VTEP 的发起方和终止方。VXLAN 1000 的 VTEP 是服务器 A VLAN 10 广播域的一部分。
收到帧后,TOR A 执行入口处理,包括入口数据包分类。根据数据包中的传入 VLAN,TOR A 将数据包分类到给定端口下的其中一个 IFL。这个IFL的家族是一个桥梁家族。根据 IFL 网桥家族标识网桥域 ID。
识别桥接域后,TOR A 学习传入帧源 MAC,以便可以通过此 IFL 访问 MAC A。由于帧是广播帧,因此 TOR A 需要将帧发送到广播域的所有成员(接收帧的成员除外)。广播域的成员之一是 VNI 1000 的 VTEP。要在 VXLAN 分段上发送帧,TOR A 需要完成帧上的 VXLAN BUM 下一跳处理。下一跃点推送 VXLAN 标头。
VXLAN 报头的内容如下:
源 MAC 地址 = MAC 地址或源 IP 地址接口
目标 MAC 地址 = 组播 MAC 地址
源 IP 地址 = 10.10.10.1
目标 IP 地址 = 组播组地址 (226.0.39.16)
源 UDP 端口 = 根据传入帧标头上的哈希计算
目标 UDP 端口 = 4789(VXLAN 隧道的已知端口)
构建 VXLAN 封装帧后,TOR A 会将帧发送到路由器 PE2。
-
2— 路由器 PE2 接收 VXLAN 帧,并通过查看已知的目标 UDP 端口将该帧标识为 VXLAN 帧。此 VXLAN 帧的 VNI ID 用于桥接域识别。路由器 PE2 识别桥接域后,PE2 将完成内部源 MAC 到外部源 IP 地址(MACA 到 10.10.10.1 的映射)的 MAC 学习。映射完成后,VXLAN 解封装下一跳处理会移除 VXLAN 标头以终止 VXLAN 隧道。
3A— MAC 学习完成后,学习的源 MAC(MAC1 到外部源 IP)被发送到 L2ALD。此 MAC 路由由 L2ALD 发送到 RPD,以便通过向 BGP 对等方发送 BGP MAC 路由通告来学习此 MAC 的控制平面。BGP 对等路由器收到 MAC 路由通告后,路由器会在网桥域表中安装此 MAC 可达性(MACA,MPLS 标签 L1)。
3— 给定的网桥域指向组播下一跃点路由,用于通过 EVPN 云转发数据包。下一跃点将推送服务标签(与每个对等 ID 的 VNI 关联的组播 MPLS 标签、网桥域,标签是每个对等方 ID 和 VNI ID)。MPLS 数据包形成并通过 MPLS 云发送。
4— 路由器 PE4 以 MPLS 数据包的形式接收帧。在这里,PE4 通过在 mpls.0 表中查找 MPLS 标签 L1 来识别桥接域。MPLS 查找指向网桥域下一跃点的表下一跃点。识别网桥域并将数据包标识为广播数据包后,将执行 BUM 复合泛洪下一跳。BUM 复合下一跃点还指向 VXLAN 下一跃点(用于构建 VXLAN 组播数据包)。
5—VXLAN 下一跃点包含有关构建 VXLAN 报头的信息。
VXLAN 报头信息如下:
源 MAC 地址 = MAC 地址或源 IP 地址接口
目标 MAC 地址 = 组播 MAC 地址
源 IP 地址 = 11.10.10.1
目标 IP 地址 = 组播组地址 (226.0.39.16)
源 UDP 端口 = 根据传入帧标头上的哈希计算
目标 UDP 端口 = 4789(VXLAN 隧道的已知端口)
6- 此步骤的帧处理与步骤 1 相同。移除 VXLAN 报头后,该帧将转发至与广播域关联的 CE 泛洪路由,数据包将作为第 2 层帧转发。
7— 服务器 B 接收 ARP 请求数据包并向服务器 A 发送 ARP 回复。
单播流量处理
假设数据和控制平面 MAC 学习都已发生,则来自服务器 B 的 VXLAN 到 EVPN 单播流量(ARP 回复)的处理方式如下:
8— 服务器 B 生成 ARP 回复。
ARP 数据包的内容如下:
VLAN ID = VLAN 10
源 MAC = MACB(服务器 B 接口 MAC)
目标 MAC = MACA
源 IP 地址 = 服务器 B 的 IP 地址或虚拟机 IP 地址
目标 IP 地址 = 服务器 A 的 IP 地址
ARP 数据包被转发到交换机 TOR B。
9— 接收帧后,交换机 TOR B 对传入帧进行分类。帧在接收接口上的 IFL 中分类。基于 IFL 系列,确定与 IFL 关联的桥接域。在给定的网桥域上,TOR B 学习源 MAC 地址。TOR B 完成桥接域目标 MAC (MACA) 查找后,此查找将提供 VXLAN 单播下一跃点。下一跃点包含形成 VXLAN 报头所需的所有信息。
形成数据包所需的下一跃点的内容如下:
源 MAC 地址 = 源 IP 地址接口的 MAC 地址
目标 MAC 地址 = 下一跃点的 MAC 地址
源 IP 地址 = 11.10.10.2
目标 IP 地址 = 11.10.10.1(MAC 学习过程的结果)
源 UDP 端口 = 根据传入帧标头上的哈希计算
目标 UDP 端口 = 4789(VXLAN 隧道的已知端口)
注意:早期版本的 VXLAN 草案使用 8472 作为 UDP 端口。
10— 路由器 PE 接收 VXLAN 封装帧4。PE4 通过使用目标 IP 地址和目标 UDP 端口完成查找来识别帧。此查找会导致 VXLAN 解封装。解封装下一跃点还会存储外部源 IP 地址。
下一次查找将根据 VNI ID 1000 完成。此查找结果进入新娘域表。
10A— 路由器 PE 完成源 MAC 到源 IP 地址的学习,L2ALD 接收 MAC 学习通知。此 MAC 被发送到 RPD,以便通过 BGP-EVPN MAC 通告路由分发到其他 PE 路由器。BGP 控制平面将此 MAC 可访问性信息分发到所有其他 PE 路由器。
目标 MAC (MAC1) 查找在桥接域 MAC 地址表中完成。此查找结果为单播下一跃点 (EVPN NH)。
11— 执行 EVPN 单播下一跃点。此下一跃点包含单播 MPLS 服务标签。此标签通过 MP-BGP 控制平面分发。下游对等方分配此 MPLS 服务标签。此标签的分配可以按 PE(PE、VLAN)或按 MAC 地址进行。根据下一跃点中的信息,在 MPLS 网络上形成并转发 MPLS 数据包。
12— 路由器 PE2 接收帧。帧被标识为 MPLS 数据包。MPLS 标签查找在 MPLS.0 表中完成。此查找会在表下一跃点和网桥域表中生成。
目标 MAC (MAC1) 查找在桥接域 MAC 表中完成。此查找会导致 VXLAN 单播下一跃点。
13—VXLAN 单播下一跃点包含构建 VXLAN 封装标头的所有信息。VXLAN 报头被强加在数据包上。
VXLAN 封装下一跳标头的内容如下:
源 MAC 地址 = 源 IP 地址接口的 MAC 地址
目标 MAC 地址 = 下一跃点的 MAC 地址
源 IP 地址 = 10.10.10.2
目标 IP 地址 = 10.10.10.1(MAC 学习过程的结果)
源 UDP 端口 = 根据传入帧标头上的哈希计算
目标 UDP 端口 = 4789(VXLAN 隧道的已知端口)
14— VXLAN 封装的帧由交换机 TOR A 接收。TOR A 通过使用目标 IP 地址和目标 UDP 端口执行查找来识别帧。此查找会导致 VXLAN 解封装。解封装的下一跃点还会存储外部源 IP 地址。
下一次查找将根据 VNI ID 1000 完成。此查找结果进入新娘域表。TOR A 完成源 MAC (MAC2) 到源 IP 地址 (10.10.10.2) 的学习。TOR A 在桥接域 MAC 地址表中查找目标 MAC (MAC1)。此查找结果为单播下一跃点,其中包含有关出口接口的信息。
15— 服务器 A 收到 ARP 回复,服务器 A 和服务器 B 已准备好进行通信。
面向 DCI 的 VXLAN-EVPN 集成的实施概述
以下各节提供了 DCI 的 VXLAN-EVPN 集成用例场景。
VNI 基本服务用例
对于 VNI 基本服务,VNI 和 EVI 之间存在一对一映射。在这种情况下,无需在 MAC 通告路由中携带 VNI,因为网桥域 ID 可以从与此路由关联的路由目标 (RT) 派生。MPLS 标签分配按 EVI 完成。
图 7 概述了 VNI 基本用例场景。VNI 基本服务最常用于实现 VNI 转换和 VNI 到 VLAN 互通。
VNI 感知服务用例
在 VNI 感知捆绑模式下,有多个 VNI 可以映射到同一个 EVI。以太网标记 ID 必须设置为 BGP 路由通告中的 VNI ID。在此用例中,MPLS 标签分配应按 EVI、VNI 进行,以便 VXLAN 可以在入口 PE 路由器上终止,并在出口 PE 路由器上重新创建。
图 8 提供了有关 VNI 感知服务用例的详细信息。
VXLAN-VLAN 互通用例
异构数据中心站点需要此用例方案。在此场景中,新的数据中心站点是基于 VXLAN 的数据中心站点,而旧的数据中心站点基于 VLAN。在这种情况下,需要让 VXLAN 通过 EVPN 与 VLAN 互连。
图 9 提供了 VXLAN-VLAN 互通用例场景的详细数据包演练。从控制平面 BGP 路由更新的角度来看,需要进行 VLAN 到 VXLAN 互通,反之亦然。标签分配需要基于每个 EVI 进行。
Inter VXLAN 路由用例
在此用例中,一个子网 (VNI-A) 中的虚拟机或主机希望将流量发送到另一个子网 (VNI-B) 中的虚拟机或主机。为了提供这种通信,应支持 VXLAN 间路由。
图 10 提供了 VXLAN 间路由用例的用例场景。
冗余用例
两种类型的冗余用例方案包括主动-备用和主动-主动。
主动-备用冗余用例
在此用例场景中,TOR 交换机(源自 GW 的 VXLAN)或源自 VXLAN 隧道的 VXLAN 网络双宿主到两个 PE 设备,以实现主动-备用冗余。如果活动链路或节点发生故障,备份路径将接管。
图 11 提供了主动-备用冗余用例场景的详细信息。
主动-主动冗余用例
在 QFX 系列平台上使用 网关型号将数据中心的 EVPN VXLAN 与 WAN 中的 EVPN-VXLAN 互连时,您可以在多宿主客户边缘设备上配置主动-主动冗余模式,以允许第 2 层单播流量在客户边缘设备上和朝向 CE 设备的所有多宿主链路之间进行负载平衡。
interconnect-multihoming-peer-gateway
对于 MAC-VRF 和 VTEP-Scaling 配置,需要设置 CLI 命令。请注意,在某些情况下,EVPN-VXLAN 仅在 VTEP 扩展模式下受支持,在该模式下,将为可能具有多个路由实例的给定对等设备创建单个 VTEP。在这种情况下,只能将对等设备表示为 WAN 对等方 (WAN VTEP) 或直流 VTEP(普通 VTEP)。
对于主动-主动冗余,需要在“互连”节中进行其他配置以启用 DCI 互连。 default switch (switch-options)
对于配置,请确保在 下 global protocols evpn
设置 DCI。
协议 EVPN 示例:
evpn-vxlan-dc1 vtep-source-interface lo0.0; instance-type mac-vrf; route-distinguisher 101:1; //DC-RD vrf-target target:1:1; //DC-RT protocols { evpn { encapsulation vxlan; extended-vni-list all; interconnect { vrf-target target:2:2; // WAN RT vrf-import <> route-distinguisher 101:2;// WAN RD interconnected-vni-list all; esi { 00:00:01:02:03:04:05:06:07:08; all-active; } } } } vlans { bd1 { vlan-id 51; l3-interface irb.0; vxlan { vni 51; translation-vni <> } } } } global protocols { evpn { interconnect-multihoming-peer-gateways <GW> } }
注意: interconnect-multihoming-peer-gateways
应配置为包含同一 DC 上所有 DCI 对等方的列表。
该列表最多可以包含 64 个对等网关条目。请务必在节下 global protocol evpn
配置,而不是在任何 mac-vrf 设置下配置。
示例:主动-主动多宿主 提供了主动-主动冗余的详细信息。
使用 EVPN 的 VXLAN DCI 支持和不支持的功能
Junos OS 支持使用 EVPN 的 VXLAN DCI 的以下功能:
VXLAN 隧道和 EVPN 实例的一对一映射。换句话说,VNI 和 EVI 之间的一对一映射。
通过一个 EVPN 实例实现 VXLAN 隧道的多对一映射,其中多个 VNI 可以映射到同一个 EVI。
VNI 翻译。
注意:通过将 VXLAN 标记规范化为 VLAN,支持 VNI 转换。
VXLAN 到 VLAN 互通。
VXLAN 间路由。
单主动冗余。
PIM BIDIR 模式下的主动-主动冗余。
使用 IPSec 的 VXLAN 隧道流量保护。
平滑路由引擎切换。
ISSU。
对于使用 EVPN 的 VXLAN DCI,Junos OS 不支持以下功能:
VXLAN 使用 IANA 分配的 UDP 端口 4789。发往 UDP 端口 4789 的数据包仅在启用 VXLAN 配置时得到处理。VXLAN 数据包由转发平面解封装,并处理内部第 2 层数据包。将为控制平面处理新学习的 MAC 条目生成 MAC 学习的数据包。这些条目使用用于 MAC 学习的现有基础结构进行限制。VXLAN 会为远程端点生成额外的学习消息。这些消息也使用现有的拒绝服务检测基础结构进行限制。
仅当数据包中的 VXLAN 标识符是设备的已知实体时,才会处理在 VXLAN 隧道上收到的数据包。转发平面会丢弃未知实体。
使用可配置的防火墙过滤器在到达 MX 系列路由器转发平面中的 VXLAN 处理模块之前会被丢弃。
逻辑系统。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。