12、BGP EVPN VXLAN 数据中心网络多播与单播模式详解

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 数据中心网络提供高效、可靠的多目标流量传输解决方案。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
本系统采用微信小程序作为前端交互界面,结合Spring BootVue.js框架实现后端服务及管理后台的构建,形成一套完整的电子商务解决方案。该系统架构支持单一商户独立运营,亦兼容多商户入驻的平台模式,具备高度的灵活性扩展性。 在技术实现上,后端以Java语言为核心,依托Spring Boot框架提供稳定的业务逻辑处理数据接口服务;管理后台采用Vue.js进行开发,实现了直观高效的操作界面;前端微信小程序则为用户提供了便捷的移动端购物体验。整套系统各模块间紧密协作,功能链路完整闭环,已通过严格测试优化,符合商业应用的标准要求。 系统设计注重业务场景的全面覆盖,不仅包含商品展示、交易流程、订单处理等核心电商功能,还集成了会员管理、营销工具、数据统计等辅助模块,能够满足不同规模商户的日常运营需求。其多店铺支持机制允许平台方对入驻商户进行统一管理,同时保障各店铺在品牌展示、商品销售及客户服务方面的独立运作空间。 该解决方案强调代码结构的规范性可维护性,遵循企业级开发标准,确保了系统的长期稳定运行后续功能迭代的可行性。整体而言,这是一套技术选型成熟、架构清晰、功能完备且可直接投入商用的电商平台系统。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值