22、VXLAN BGP EVPN 多 Pod 与多 Fabric 部署方案解析

VXLAN BGP EVPN 多 Pod 与多 Fabric 部署方案解析

在数据中心网络架构的构建与互联中,多 Pod (多机架单元)和多 Fabric(多网络结构)的部署方式是关键话题。下面将深入剖析相关概念、差异及不同的互联选项。

叶层互联与多 Pod 、多 Fabric 概念

在网络架构中,不仅在脊层(Spine)存在多个 Pod 互联的选项,在叶层(Leaf)同样适用。不过,这些互联方式的主要区别在于 Pod 之间的可用连接性。而且,叶节点可能充当 VTEP(虚拟隧道端点),承担大量功能,这会带来操作上的复杂性。例如,当互联叶节点是某个网络的默认网关,属于 vPC 域,同时还提供二层互联功能时,操作复杂度会显著增加。因此,在处理多 Pod 部署时,减少复杂性并让互联点尽可能简洁是较为理想的选择。

多 Pod 部署遵循底层和覆盖层多个控制协议域的概念,但存在一个贯穿所有 Pod 的端到端单一数据平面,所以多 Pod 环境可视为单一 Fabric。而在多 Fabric 部署中,控制平面和数据平面通常都实现了完全隔离。也就是说,单个 VXLAN BGP EVPN Fabric 可以有自己的底层网络、覆盖层控制协议以及相关的数据平面封装。

多 Fabric 设计的优势不仅在于实现真正的流量分离,还体现在管理域方面。不同 Fabric 之间的 BGP 自治系统、VNI(虚拟网络标识符)编号、多播组等组件完全独立。这意味着单个 Fabric 可以使用任何所需的编号模型,而不受其他 Fabric 的影响。此外,在 BUM(广播、未知单播、组播)流量转发方面,不同 Fabric 可以采用不同的方式,如一个使用多播,另一个使用入口复制,这种独立性在多 Pod 环境中是无法实现的。

由于流量在 Fabric 内是本地化的,流出的流量需要在 Fabric 边界终止。具体而言,需要终止 VXLAN 封装,并进行适当的二层或三层交接。这为多个 Fabric 的互联提供了选择,例如通过 OTV(Overlay Transport Virtualization)与 VLAN 技术将不同的 VNI 独立拼接在一起。这种分离或规范化允许在 Fabric 边界引入分界和执行点。

二层 DCI 需求与误解

过去,二层数据中心互联(Layer 2 DCI)是热门话题,因为虚拟机迁移需要在数据中心之间扩展二层网络。然而,跨多个数据中心扩展此类网络引发了对故障传播的担忧,因此像 OTV 这样的解决方案应运而生,它提供了满足需求的功能集。尽管数据中心的脊 - 叶架构不断发展,但二层 DCI 仍然是主要需求。

有一种常见的误解认为,现在可以通过三层网络实现虚拟机迁移,这意味着可能不需要二层 DCI。但实际上,虽然虚拟机迁移的传输网络可以是路由网络或三层网络,但端点或虚拟机所在的特定网段仍然需要二层扩展。这是因为虚拟机迁移后通常会保留其 IP 和 MAC 地址,所以数据中心之间仍然需要二层或桥接服务。

需要注意的是,使用 LISP(Locator/ID Separation Protocol)等方法,在子网内通信中采用路由方式,可能可以摆脱对二层 DCI 的需求,但这种部署并不常见。

在进行二层扩展时,必须确保多个 Fabric 的清晰分离。通过中间技术将源 Fabric 和目标 Fabric 的数据平面分离,可以在一个 Fabric 发生“风暴”时提供保护,避免故障时将不必要的流量传播到其他 Fabric,这是 DCI 解决方案必须具备的功能之一。

数据中心互联的二层和三层扩展需求

数据中心互联不仅需要二层扩展,在许多部署中还需要三层扩展。三层服务的扩展需要具备子网间路由的简单可用性,并且需要进行优化,以确保流量始终被转发到正确的 Fabric,避免出现“发夹弯”现象。采用 LISP 等功能的架构可以与 VXLAN BGP EVPN Fabric 集成,从而将入口流量高效地引导到正确的数据中心。同样,通过在数据中心 Fabric 外部通告主机路由(IPv4 中的 /32 或 IPv6 中的 /128)也可以实现这一点,但与在控制协议层面引入间接性的方法相比,这种方法的可扩展性较差。

多 Pod 与多 Fabric 部署的区别

多 Pod 设计为单个 Pod 提供了分层结构,而多 Fabric 方法在多 Pod 设计的基础上增加了额外的层次结构,以实现真正的数据中心分离。

在多 Pod 网络中,常有人认为分离底层和覆盖层控制协议就足以实现故障隔离,但这是覆盖网络领域的重大误解。虽然结构化在规模和操作上有一定优势,但如果二层服务扩展到所有 Pod,覆盖层的广播风暴可能会传播到整个多 Pod 网络。一种解决故障传播的方法是在底层使用多播风暴控制,但这也会影响合法 BUM 流量的传输。由于在覆盖层一旦出现“风暴”就很难限制,因此网络中必须有执行点。在多 Pod 网络中,VXLAN 封装是端到端的,Pod 之间没有执行点,而多 Fabric 设计在这方面具有优势,可以限制故障传播。

目前,过滤流量的执行点只能通过在 Fabric 边界终止 VXLAN 封装来实现。解封装后,流量通过经典以太网在 DCI 域中传输,然后在远程 Fabric 的入口处重新封装。当解封装和封装之间对经典以太网段的需求不再必要时,可以构建更具扩展性的多 Pod 网络,并具备更好的隔离功能,以防止故障传播(也称为多站点)。目前,实现单个 Fabric 分离的唯一方法是通过 OTV 等 DCI 解决方案。

不同的互联选项

以下是几种不同的互联选项,它们各有特点和适用场景:
| 互联选项 | 特点 | 优势 | 劣势 |
| — | — | — | — |
| 互联选项 1:多 Pod | 遵循多 Pod 设计模型,各 Fabric 内有独立的覆盖层控制协议域,但有一个端到端的单一数据平面,所有 MAC/IP 前缀都分布到所有参与的 VTEP,所有 Fabric 使用相同的 BUM 复制机制 | 对于某些实现,端到端的方法可能足够 | 存在故障传播风险,单个 Pod 分离不足,不适合作为 DCI 中互联 Fabric 的主要解决方案 |
| 互联选项 2:多 Fabric | 采用经典以太网在 Fabric 边界实现经典 DCI 模型,DCI 网络与 Fabric 本身清晰分离,不同 Fabric 有独立的覆盖层控制协议域和数据平面,可达性信息交换不均匀 | 提供比选项 1 更好的分离效果,可在覆盖层和底层实现完全分离,可在边界应用执行点,使用 OTV 可高效传输数据流量 | 需要在 Fabric 边界终止 VXLAN 封装并使用经典以太网进行规范化,可能成为规模瓶颈,VLAN ID 的使用可能导致操作复杂 |
| 互联选项 3(三层多站点) | 涉及三层服务的集成 DCI 交接,采用多 Fabric 概念,允许重新发起三层路由信息 | 保留选项 2 的所有优势,提供简化和可扩展的多租户三层 DCI 替代方案,无需规范化到经典以太网即可实现真正的隔离 | - |
| 互联选项 4(二层多站点) | 采用类似选项 3 的集成 DCI 交接方式,为二层服务提供可扩展的桥接服务 | 提供比选项 1 更好的分离效果,比选项 2 更简化多租户二层部署,与选项 3 结合可提供集成、可扩展和安全的二层和三层扩展 | - |

下面是一个简单的 mermaid 流程图,展示互联选项 2 的基本流程:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A[源 Fabric]:::process --> B(终止 VXLAN 封装):::process
    B --> C(经典以太网传输):::process
    C --> D(重新封装 VXLAN):::process
    D --> E[目标 Fabric]:::process

在实际的网络部署中,需要根据具体的需求和场景,综合考虑各种因素,选择合适的互联选项。同时,随着技术的不断发展,未来可能会有更多更优化的解决方案出现。

VXLAN BGP EVPN 多 Pod 与多 Fabric 部署方案解析

互联选项详细分析
互联选项 1:多 Pod

此选项本质上就是多 Pod 设计,各 Fabric 内的覆盖层控制协议域相互独立,但存在一个贯穿始终的端到端单一数据平面。所有的 MAC/IP 前缀会分发到参与的所有 VTEP,并且所有 Fabric 都采用相同的 BUM 复制机制。虽然对于某些特定的实现,这种端到端的方式或许足够,但它存在明显的弊端。由于二层服务可能会扩展到所有 Pod,一旦覆盖层出现广播风暴,就可能蔓延至整个多 Pod 网络,而且各个 Pod 之间的隔离不够充分。所以,它不太适合作为数据中心互联(DCI)中互联 Fabric 的主要解决方案。

互联选项 2:多 Fabric

该选项遵循经典 DCI 模型,在 Fabric 边界使用经典以太网,使得 DCI 网络与 Fabric 本身实现清晰分离。不同的 Fabric 拥有各自独立的覆盖层控制协议域和数据平面,可达性信息的交换并非均匀分布。这一特性使得它在规模上比互联选项 1 更具优势。

具体操作流程如下:
1. 在源 Fabric 的边界,终止 VXLAN 封装。
2. 通过经典以太网将数据传输到 DCI 域。
3. 利用 VRF Lite 和 IEEE 802.1Q 中继来规范 VXLAN 相关信息,并在 DCI 域内传输数据。通常会为每个 VRF 建立一个 eBGP 会话,以从控制平面的角度将 IP 前缀信息从 Fabric 传输到 DCI 域。对于需要在 Fabric 之间扩展的每个二层 VNI 或二层网络,会在 Fabric 和 DCI 域之间使用 VLAN 进行二层通信。
4. 当数据到达远程 Fabric 时,根据数据平面内容进行转发决策,然后将数据重新封装到 VXLAN 中,发送到该 Fabric 中目标端点所在的远程叶节点。

在 VXLAN 到经典以太网的交接点,可以应用诸如 QoS、速率限制器等执行点,以分离不必要的流量并阻止故障传播到远程 Fabric。同时,在 DCI 域中使用 OTV 可以高效地传输数据流量。不过,该选项需要在 Fabric 边界终止 VXLAN 封装,并使用经典以太网进行规范化,这可能会成为规模瓶颈。因为在规范化过程中,会在以太网上使用 VLAN ID 进行分段分离,虽然可以通过每个端口的 VLAN 重要性功能来扩展 VLAN 数量,但这需要在 Fabric 边界和 DCI 节点之间进行额外的配置和协调,可能会导致操作复杂。不过,使用 IEEE 802.1Q 中继和 VRF Lite 进行经典以太网规范化的自动化可以显著减轻这种操作负担。

互联选项 3(三层多站点)

此选项主要针对三层服务的集成 DCI 交接,采用了之前提到的多 Fabric 概念,并允许重新发起三层路由信息。它继承了互联选项 2 的所有优点,同时还提供了一种简化且可扩展的多租户三层 DCI 替代方案。

操作步骤如下:
1. 在源 Fabric 的边界,终止 VXLAN 封装。
2. 采用集成的重新发起方法进行三层路由,使用 LISP 或 MPLS Layer 3 VPN(L3VPN)等方式将必要的信息传输到 DCI 域。
- 对于 MPLS L3VPN,通过 VPN 标签识别 VRF。使用 MP - BGP 和 L3VPN 地址族,将 EVPN 前缀路由重新发起为 VPNv4/v6 路由,并由边界节点向 DCI 域通告。从数据平面的角度来看,移除 VXLAN 头,边界节点为跨 Fabric 的三层流量添加 VPNv4 标签和 MPLS 标签,以便将数据包通过 MPLS 核心转发到远程 Fabric。
- 对于 LISP,移除 VXLAN 头,边界节点添加一个标识 VRF 的适当 LISP 头。
3. 当 MPLS 或 LISP 封装的流量到达远程 Fabric 时,在边界节点执行反向操作,即剥离 LISP/MPLS 头,根据三层查找结果将流量重新封装到 VXLAN 中,并发送到该 Fabric 中的目标 VTEP。

对于路由流量,虽然不需要二层执行点,但可能需要防止路由环路,例如在通过边界节点直接或通过融合路由器进行 VRF 间通信的路由泄漏情况下。

互联选项 4(二层多站点)

该选项采用与选项 3 类似的集成 DCI 交接方式,为二层服务提供了一种可扩展的桥接服务。

操作流程如下:
1. 在源 Fabric 的边界,终止 VXLAN 封装。
2. 采用集成的重新发起方法进行二层桥接,使用 VNI - to - VNI 拼接功能,将 VXLAN 封装的桥接流量从一个 VNI 映射到另一个 VNI,并发送到 DCI 域。也可以在边界节点终止二层 VXLAN 流量,并直接用 OTV 头进行封装。
3. 当流量到达远程 Fabric 时,执行反向操作,移除二层 DCI 头,将桥接流量封装到 VXLAN 中,并发送到目标 VTEP。

在边界节点的二层 DCI 交接点,可以执行诸如阻止未知单播、应用适当的 QoS、实施速率限制或其他风暴控制功能等操作,将故障限制在给定的 Fabric 内,防止其传播到远程 Fabric。与互联选项 1 相比,它提供了更好的分离效果;与互联选项 2 相比,它简化了多租户二层部署。将互联选项 3 和选项 4 结合使用,可以以集成、可扩展和安全的方式提供三层和二层扩展。

以下是一个 mermaid 流程图,展示互联选项 3 的基本流程:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A[源 Fabric]:::process --> B(终止 VXLAN 封装):::process
    B --> C{选择封装方式}:::process
    C -->|MPLS L3VPN| D(添加 VPNv4 标签和 MPLS 标签):::process
    C -->|LISP| E(添加 LISP 头):::process
    D --> F(MPLS 核心传输):::process
    E --> F
    F --> G(剥离 LISP/MPLS 头):::process
    G --> H(重新封装 VXLAN):::process
    H --> I[目标 Fabric]:::process
总结

在数据中心网络架构中,多 Pod 和多 Fabric 部署方案各有优劣。多 Pod 设计提供了单个 Pod 的分层结构,而多 Fabric 方法在此基础上增加了额外的层次结构,实现了真正的数据中心分离。在选择互联选项时,需要综合考虑多个因素,如故障隔离需求、流量分离要求、操作复杂度以及可扩展性等。

二层 DCI 仍然是数据中心互联的重要需求,尽管存在一些误解,但虚拟机迁移仍需要二层扩展。同时,数据中心互联不仅需要二层扩展,还需要三层扩展,并且需要进行优化以确保流量的高效转发。

不同的互联选项适用于不同的场景。互联选项 1 虽然简单,但存在故障传播风险,不太适合作为主要的互联方案;互联选项 2 提供了较好的分离效果,但操作复杂度较高;互联选项 3 和选项 4 分别针对三层和二层服务,结合使用可以提供集成、可扩展和安全的解决方案。在实际部署中,应根据具体的业务需求和网络环境,谨慎选择合适的互联选项,以构建高效、可靠的数据中心网络。

基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析仿真验证相结合。
先展示下效果 https://pan.quark.cn/s/a4b39357ea24 本项目是本人参加BAT等其他公司电话、现场面试之后总结出来的针对Java面试的知识点或真题,每个点或题目都是在面试中被问过的。 除开知识点,一定要准备好以下套路: 个人介绍,需要准备一个1分钟的介绍,包括学习经历、工作经历、项目经历、个人优势、一句话总结。 一定要自己背得滚瓜烂熟,张口就来 抽象概念,当面试官问你是如何理解线程的时候,你要知道从定义、来源、实现、问题、优化、应用方面系统性地回答 项目强化,至少知识点的比例是五五开,所以必须针对简历中的两个以上的项目,形成包括【架构和实现细节】,【正常流程和异常流程的处理】,【难点+坑+复盘优化】三位一体的组合拳 压力练习,面试的时候难免紧张,可能会严重影响发挥,通过平时找机会参交流分享,或找人做压力面试来改善 表达练习,表达能力非常影响在面试中的表现,能否简练地将答案告诉面试官,可以通过给自己讲解的方式刻意练习 重点针对,面试官会针对简历提问,所以请针对简历上写的所有技术点进行重点准备 Java基础 JVM原理 集合 线程 IO 问题排查 Web框架、数据库 Spring MySQL Redis 通用基础 操作系统 网络通信协议 排序算法 常用设计模式 从URL到看到网页的过程 分布式 CAP理论 锁 事务 消息队列 协调器 ID生成方式 一致性hash 限流 微服务 微服务介绍 服务发现 API网关 服务容错保护 服务配置中心 算法 数组-快速排序-第k大个数 数组-对撞指针-最大蓄水 数组-滑动窗口-最小连续子数组 数组-归并排序-合并有序数组 数组-顺时针打印矩形 数组-24点游戏 链表-链表反转-链表相加 链表-...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值