BGP EVPN VXLAN 数据中心网络多播与单播模式详解
在设计和构建基于 BGP EVPN VXLAN 的数据中心网络底层时,需要考虑不同模式的选择及其优缺点。下面将详细介绍单播模式和组播模式。
单播模式
在单播模式下,入口 VTEP(VXLAN 隧道端点)会复制数据包,并将其发送到属于同一 VNI(VXLAN 网络标识符)的相邻 VTEP。例如,主机 A(192.168.1.101)连接到 VTEP V1,它发送一个 ARP 请求来解析连接到 VTEP V2 的主机 B(192.168.1.102)的 IP 到 MAC 绑定。这两个主机属于与 VNI 30001 关联的同一 IP 子网 192.168.1.0/24。为了处理这个 BUM(广播、未知单播、组播)数据包,VTEP V1 会发出两个包含该 ARP 请求有效负载的单播数据包,一个发往 VTEP V2,另一个发往 VTEP V3。
单播模式有两种配置选项:
-
静态配置
:在每个 VTEP 上配置感兴趣的 VTEP 列表。例如:
interface NVE 1
source-interface loopback1
member vni 30001
ingress-replication protocol static
peer-ip n.n.n.n
静态配置会降低可扩展性,因为网络中添加任何新的 VTEP 或 VNI 都需要在每个相邻 VTEP 上重新配置。
-
动态配置
:使用控制协议(如 BGP EVPN)在网络中分发兴趣信息。例如:
interface NVE 1
source-interface loopback1
member vni 30001
ingress-replication protocol bgp
BGP EVPN 支持单播模式,它通过 Route type 3(包含组播)消息分发 VTEP 和 VNI 成员信息,但数据复制是由 VTEP 在数据平面执行的。
无论采用静态还是动态配置,对于每个多目标数据包,VTEP 都需要生成 N - 1 个副本。使用 BGP EVPN 控制协议时,VTEP 邻居的发现更加动态。接收 VTEP 可以通过 EVPN 广告其兴趣,从而动态添加到发送 VTEP 的复制列表中。而静态模式下,只要发送 VTEP 配置了对等 VTEP 列表,就会向列表中的每个成员发送副本,而不考虑接收 VTEP 的兴趣程度。
单播模式的优点是不需要额外的协议(如 PIM)或组播专业知识来维护底层网络。但它比组播模式效率低,因为组播模式不需要入口 VTEP 传输单个数据包的多个副本,底层的 IP 组播可以高效地将多目标流量传输到感兴趣的 VTEP,而不会给 VTEP 增加额外负担。
以下是单播模式的优缺点对比表格:
| 优点 | 缺点 |
| — | — |
| 无需额外协议和组播专业知识 | 效率低于组播模式 |
| 网络交换机支持即可使用 | 静态配置可扩展性低 |
组播模式
使用组播模式在 VXLAN 上传输多目标流量时,VTEP 和 spine - leaf 网络中配置的组播路由应与单播路由一样具有弹性。
首先,需要了解参与底层网络(通常由 spine 和 leaf 组成,承载 VTEP)的网络交换机的能力,因为并非所有类型的网络交换机都支持所有组播复制模式。Cisco 交换机采用两种支持组播的底层模式:
-
PIM 任意源组播(PIM ASM)
:有时也称为 PIM 稀疏模式(PIM SM),在 VTEP 上创建源树(S,G)。每个 VTEP 既是源也是接收器,多个源树可以在参与给定组播组的每个 VTEP 上创建。RP(会合点)位于 spine 层,通过 Anycast RP 可以将 RP 分布在所有可用的 spine 上,同时看起来像一个单一的 RP。
-
双向 PIM(PIM BiDir)
:创建双向共享树(*,G),这些树以 RP 为根,RP 作为路由向量。PIM BiDir 针对多对多通信进行了优化,所有共同的源和接收器都在同一棵树上。
在 VXLAN 网络中,由 Layer 2 VNI 标识的网络是一个 Layer 2 段,该网络中产生的任何 BUM 流量都必须发送到属于该 VNI 的所有节点。通常,Layer 2 VNI 与一个组播组关联,并且在同一 VXLAN 网络的所有交换机上采用相同的 [VNI, 组播组] 配置。所有交换机必须配置为支持相同的 PIM 组播模式,否则无法保证 VNI 内的多目标 BUM 流量得到适当转发。
例如,在一个具有四个 leaf 和两个 spine 的 VXLAN 网络中,如果两个 leaf 仅支持 PIM ASM,而另外两个 leaf 仅支持 PIM BiDir,则无法保证 VNI 内的多目标 BUM 流量得到正确转发。同样,如果一些 leaf 支持单播模式,而另一些 leaf 支持组播模式,则相同的 Layer 2 VNI 不能在它们之间扩展。
以下是组播模式的流程 mermaid 图:
graph LR
A[VTEP 接收 BUM 流量] --> B[封装为 VXLAN 数据包]
B --> C[设置外层目的 IP 为组播组地址]
C --> D[底层组播路由传输]
D --> E[感兴趣的 VTEP 接收数据包]
组播模式需要底层支持组播路由,因此依赖于 PIM。在 PIM ASM 或 PIM BiDir 组播网络中,需要一个 RP。spine 是托管 RP 的理想位置,因为任何在 leaf 之间传输的流量都会经过 spine。
PIM 任意源组播(ASM)
在 PIM ASM 中,每个 VTEP 都可以为给定的组播组发送和接收组播流量,因此每个 VTEP 既是源也是接收器。多个源树可以在参与给定组播组的每个 VTEP 上创建,RP 位于 spine 层。
Anycast RP 是一种将 RP 分布在所有可用 spine 上,同时看起来像一个单一 RP 的方法。它有两种不同的模式:一种使用组播源发现协议(MSDP),另一种将 Anycast RP 集成到 PIM 中。这里主要介绍 PIM Anycast RP。
以下是 Spine#1 的 PIM Anycast RP 配置示例:
! Anycast-RP Configuration on Spine#1
ip pim rp-address 10.254.254.254
ip pim anycast-rp 10.254.254.254 10.254.254.1 (Spine#1 IP)
ip pim anycast-rp 10.254.254.254 10.254.254.2 (Spine#2 IP)
ip pim anycast-rp 10.254.254.254 10.254.254.3 (Spine#3 IP)
ip pim anycast-rp 10.254.254.254 10.254.254.4 (Spine#4 IP)
! Loopback Interface Configuration (RP) on Spine#1
interface loopback 200
ip address 10.254.254.1/32
ip pim sparse-mode
! Loopback Interface Configuration (Anycast RP) on Spine#1
interface loopback 254
ip address 10.254.254.254/32
ip pim sparse-mode
在 leaf 上配置 Anycast RP 时,需要验证 P2P 链路上的组播对等是否启用,并且需要全局或按组播组定义 RP。以下是 leaf 的配置示例:
ip pim rp-address 10.254.254.254
PIM ASM 除了创建 PIM Anycast RP 所需的额外环回接口外,配置量相对较少。
双向 PIM(PIM BiDir)
PIM BiDir 提供了一种在组播模式下实现多目标流量复制的不同方式。与 PIM ASM 不同,PIM BiDir 为每个组播组创建一个双向共享树(*,G),这些树以 RP 为根,RP 作为路由向量。
PIM BiDir 针对多对多通信进行了优化,所有共同的源和接收器都在同一棵树上。RP 不具有实际的协议功能,只是作为路由向量,所有多目标流量都会汇聚到 RP。
为了实现冗余,PIM BiDir 使用 Phantom RP。Phantom RP 是一个未分配给任何特定 spine 的 IP 地址,通过使用不同前缀长度的逻辑环回接口来保证到 RP 的一致路径。
以下是 Spine#1(主路由器)的 Phantom RP 配置示例:
! Defining Phantom Rendezvous-Point Spine#1
ip pim rp address 10.254.254.254 bidir
! Loopback Interface Configuration (RP) (Redundancy)
interface loopback 254
ip address 10.254.254.253/30
ip pim sparse-mode
以下是 Spine#2(备份路由器)的 Phantom RP 配置示例:
! Defining Phantom Rendezvous-Point Spine#2
ip pim rp address 10.254.254.254 bidir
! Loopback Interface Configuration (RP) (Redundancy)
interface loopback 254
ip address 10.254.254.253/29
ip pim sparse-mode
leaf 上的配置示例如下:
ip pim rp address 10.254.254.254 bidir
如果只使用 Phantom RP 进行冗余,leaf 上的配置与单 RP 配置相同。在需要进行负载均衡的情况下,可以将组播组范围划分为多个切片,为每个切片创建一个 Phantom RP。
例如,将组播组划分为 239.239.0.0/24 和 239.239.1.0/24 两个范围,Spine#1 作为 239.239.0.0/24 范围的活动 Phantom RP,Spine#2 作为 239.239.1.0/24 范围的活动 Phantom RP。以下是 Spine#1 的配置示例:
! Defining Phantom Rendezvous-Point Spine#1
ip pim rp address 10.254.254.254 bidir group 239.239.0.0/24
ip pim rp address 10.254.253.254 bidir group 239.239.1.0/24
! Loopback Interface Configuration (RP) (Redundancy)
interface loopback 254
ip address 10.254.254.253/30
ip pim sparse-mode
! Loopback Interface Configuration (RP) (Redundancy)
interface loopback 253
ip address 10.254.253.253/29
ip pim sparse-mode
以下是 Spine#2 的配置示例:
! Defining Phantom Rendezvous-Point Spine#2
ip pim rp address 10.254.254.254 bidir group 239.239.0.0/24
ip pim rp address 10.254.253.254 bidir group 239.239.1.0/24
! Loopback Interface Configuration (RP) (Redundancy)
interface loopback 254
ip address 10.254.254.253/29
ip pim sparse-mode
! Loopback Interface Configuration (RP) (Redundancy)
interface loopback 253
ip address 10.254.253.253/30
ip pim sparse-mode
leaf 上的配置示例如下:
ip pim rp address 10.254.254.254 bidir group 239.239.0.0/24
ip pim rp address 10.254.253.254 bidir group 239.239.1.0/24
在这种配置下,通过单播路由的最长前缀匹配来确定活动的 Phantom RP。如果 Spine#1 发生故障,单播路由会自动选择 Spine#2,从而实现冗余。所有的故障转移和负载均衡都在单播路由层进行,只有一小部分与组播路由层相关。
综上所述,根据底层网络的需求,可以选择不同的方式来有效地传输多目标流量或 BUM 流量。组播是多目标流量复制的最佳方法,但单播模式的入口复制也是一种可行的替代方案,尽管有一些限制。随着 VXLAN 网络的发展,特别是 leaf 或 VTEP 规模的增加,BUM 复制也需要实现更大的规模。组播模式提供了实现这一目标的最有效方法。如果创建多个 VTEP 的 BUM 流量单个数据包副本对性能影响不大,入口复制可以在一定的规模限制内完成任务。然而,随着在 VXLAN 覆盖层上支持租户组播流量的需求日益增加,组播模式的优势将更加明显。
BGP EVPN VXLAN 数据中心网络多播与单播模式详解
不同模式的性能与扩展性分析
为了更清晰地了解单播模式和组播模式在不同场景下的表现,我们对它们的性能和扩展性进行详细分析。
单播模式性能与扩展性
单播模式在小规模网络中具有一定的优势。由于不需要额外的组播协议支持,网络配置相对简单,对于一些对网络复杂性要求较低的环境较为适用。然而,随着网络规模的扩大,尤其是 VTEP 数量的增加,单播模式的性能瓶颈逐渐显现。
在单播模式下,每个 VTEP 对于多目标数据包都需要进行复制和发送,这会导致网络流量大幅增加。例如,当有 N 个 VTEP 属于同一个 VNI 时,每个多目标数据包都需要生成 N - 1 个副本,这无疑会给网络带宽和 VTEP 的处理能力带来巨大压力。
静态配置的单播模式可扩展性较差,因为每次添加新的 VTEP 或 VNI 都需要对相邻 VTEP 进行重新配置,这在大规模网络中是非常繁琐且容易出错的。而动态配置虽然可以通过 BGP EVPN 实现 VTEP 邻居的动态发现,但仍然无法避免数据包复制带来的性能问题。
以下是单播模式在不同规模网络下的性能对比表格:
| 网络规模(VTEP 数量) | 数据包复制数量 | 网络带宽压力 | VTEP 处理压力 |
| — | — | — | — |
| 小规模(< 10) | 较少 | 低 | 低 |
| 中等规模(10 - 50) | 适中 | 中等 | 中等 |
| 大规模(> 50) | 大量 | 高 | 高 |
组播模式性能与扩展性
组播模式在处理多目标流量时具有明显的性能优势。通过底层的 IP 组播,多目标流量可以高效地传输到感兴趣的 VTEP,而不需要入口 VTEP 进行数据包复制,大大减轻了网络带宽和 VTEP 的处理负担。
在扩展性方面,组播模式也表现出色。只要底层网络支持组播路由,并且所有交换机配置为支持相同的 PIM 组播模式,就可以方便地扩展网络规模。例如,可以轻松地添加新的 VTEP 或 VNI,而不需要对整个网络进行大规模的重新配置。
然而,组播模式也存在一些挑战。它需要底层网络支持组播路由,依赖于 PIM 协议,这增加了网络配置的复杂性。同时,在一些不支持组播的网络环境中,无法使用组播模式。
以下是组播模式在不同规模网络下的性能对比表格:
| 网络规模(VTEP 数量) | 数据包复制数量 | 网络带宽压力 | VTEP 处理压力 |
| — | — | — | — |
| 小规模(< 10) | 无 | 低 | 低 |
| 中等规模(10 - 50) | 无 | 低 | 低 |
| 大规模(> 50) | 无 | 低 | 低 |
模式选择建议
根据上述对单播模式和组播模式的性能与扩展性分析,我们可以给出以下模式选择建议:
-
小规模网络
:如果网络规模较小,VTEP 数量较少,且对网络复杂性要求较低,可以考虑使用单播模式。静态配置或动态配置的单播模式都可以满足需求,具体选择可以根据网络的变化频率来决定。如果网络变化较少,静态配置即可;如果网络变化频繁,建议使用动态配置。
-
大规模网络
:对于大规模网络,尤其是 VTEP 数量较多的情况,组播模式是首选。组播模式可以有效地减少网络流量,提高网络性能和可扩展性。在选择组播模式时,需要根据网络设备的能力选择合适的 PIM 模式(PIM ASM 或 PIM BiDir),并合理配置 RP。
-
对组播支持有限的网络
:如果网络环境对组播支持有限,无法使用组播模式,可以选择单播模式。但需要注意单播模式在大规模网络中的性能瓶颈,尽量控制网络规模或对网络进行优化。
总结
在设计和构建基于 BGP EVPN VXLAN 的数据中心网络底层时,单播模式和组播模式各有优缺点。单播模式配置简单,不需要额外的组播协议支持,但在大规模网络中性能较差,可扩展性有限。组播模式可以高效地处理多目标流量,具有良好的扩展性,但需要底层网络支持组播路由,配置相对复杂。
在实际应用中,应根据网络规模、网络设备能力、对网络性能和可扩展性的要求等因素综合考虑,选择合适的模式。同时,合理配置和优化所选模式,以确保网络的高效运行。随着 VXLAN 网络的不断发展,对多目标流量复制的需求也会越来越高,组播模式的优势将更加明显。因此,在条件允许的情况下,建议优先考虑使用组播模式。
以下是选择模式的决策 mermaid 图:
graph TD
A[开始] --> B{网络规模大小}
B -->|小规模| C{是否对网络复杂性要求低}
C -->|是| D[单播模式]
C -->|否| E{是否支持组播}
E -->|是| F[组播模式]
E -->|否| D
B -->|大规模| E
通过对单播模式和组播模式的深入了解和合理选择,可以为 BGP EVPN VXLAN 数据中心网络提供高效、可靠的多目标流量传输解决方案。
1670

被折叠的 条评论
为什么被折叠?



