news 2026/1/27 6:14:43

20、VXLAN BGP EVPN 网络的外部连接与多站点互联技术解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
20、VXLAN BGP EVPN 网络的外部连接与多站点互联技术解析

VXLAN BGP EVPN 网络的外部连接与多站点互联技术解析

1. 以太网边缘端口保护

在传统以太网边缘端口,BPDU guard、root guard 或 storm control 可提供保护。这些工具能实现清晰且受保护的边界划分,防止不良故障传播,确保网络的稳定性。

2. 外网和共享服务

很多情况下,需要部署供不同租户(即 VRF)共享的服务,如 DHCP 和 DNS 等。这些共享服务可部署或连接到网络结构中“共享”VRF 内的特定叶子节点。为实现租户 VRF 和共享 VRF 之间的通信,可采用路由泄漏(route leaking)的方法,这一机制同样适用于外网服务的部署。

3. 本地/分布式 VRF 路由泄漏

虚拟路由转发(VRF)允许在单个网络路由器/交换机中存在多个虚拟路由转发实例,通常每个 VRF 与一个唯一的 VPN 标识符关联。VRF 路由泄漏可使同一网络路由器内的多个 VRF 实例之间泄漏前缀信息,无需通过外部路由实例和回环电缆来互连泄漏的 VRF。这种路由泄漏在互联网访问 VRF、共享服务 VRF 和集中服务 VRF 等场景中较为常见。

以下是 VRF 路由泄漏的配置示例:

# VRF Configuration at Ingress VTEP (V1) vrf context VRF-A vni 50001 rd auto address-family ipv4 unicast route-target both auto route-target both auto evpn route-target import 65501:50002 route-target import 65501:50002 evpn vrf context VRF-B vni 50002 rd auto address-family ipv4 unicast route-target both auto route-target both auto evpn route-target import 65501:50001 route-target import 65501:50001 evpn # VRF Configuration at Egress VTEP (V2) vrf context VRF-A vni 50001 rd auto address-family ipv4 unicast route-target both auto route-target both auto evpn route-target import 65501:50002 route-target import 65501:50002 evpn vrf context VRF-B vni 50002 rd auto address-family ipv4 unicast route-target both auto route-target both auto evpn route-target import 65501:50001 route-target import 65501:50001 evpn

在 VXLAN BGP EVPN 中,前缀属性会携带相关的 VNI 信息,但在封装时会使用源 VRF 关联的 VNI 进行远程流量封装。这种本地/分布式 VRF 路由泄漏机制要求在需要泄漏的地方同时配置源 VRF 和目的 VRF,且流量转发结果会因转发方向不同而存在一定的不对称性。

例如,当 IP 为 192.168.1.101(VRF - A)的端点要与 IP 为 192.168.2.102(VRF - B)的端点通信时:
1. 在入口 VTEP V1 处,由于路由目标导入配置,IP 地址 192.168.2.102 在 VRF - A 中可见。
2. 发往 192.168.2.102 的远程流量在入口 VTEP V1 处使用 VNI 50001 进行封装,发往出口 VTEP V2。
3. 流量到达 VTEP V2 后,在 VRF - A 中评估 VNI 50001,查找 192.168.2.102 后将流量本地泄漏到 VRF - B,最终发送到目的端点。

这种路由泄漏方法需要额外配置,且会影响可扩展性,因为需要在存在泄漏 VRF 的所有 VTEP 上进行一致配置。为解决这些问题,可采用下游 VNI 分配等替代方法。

4. 下游 VNI 分配

传统 VRF 路由泄漏的下游 VNI 分配方案类似于 MPLS L3VPN 的方法。在 VXLAN 中,标签(即 VNI)是静态配置而非动态分配的。对于给定的 VRF,除了本地分配的 VNI(配置的 L3VNI),VTEP 可使用不同的 VNI 分配仍实现通信。

具体来说,出口 VTEP 在 MP - BGP EVPN 路由更新中通告其本地 VRF VNI,该 VNI 信息是 EVPN NLRI 的一部分,存在于路由类型 2 和路由类型 5 消息中。入口 VTEP 接收到路由更新后,BGP 会将其与出口 VTEP 通告的 VNI 一起推送到硬件表中。

以下是下游 VNI 分配的流程:
1. 出口 VTEP 在 MP - BGP EVPN 路由更新中通告本地 VRF VNI。
2. 入口 VTEP 接收路由更新。
3. BGP 将路由更新与出口 VTEP 通告的 VNI 一起推送到硬件表。
4. 入口 VTEP 在封装过程中使用出口 VTEP 通告的 VNI。

例如,当 IP 为 192.168.1.101(VRF - A)的端点要与 IP 为 192.168.2.102(VRF - B)的端点通信时:
1. 在入口 VTEP V1 处,通过 MP - BGP EVPN 从 VTEP V2 通告得知 IP 地址 192.168.2.102 与 VRF - B 的 VNI 50002 关联。
2. 流量在入口 VTEP V1 处使用 VNI 50002 进行封装,发往出口 VTEP V2。
3. 流量到达 VTEP V2 后,在 VRF - B 中评估 VNI 50002,最终转发到 VRF - B 中的端点 192.168.2.102。

下游 VNI 分配可减少 VNI 范围和相应的对等 VTEP,配置相对简单。但如果每个 VTEP 为每个 VRF 使用不同的 VNI,所需的每个 VTEP、每个 VNI 信息可能会大量增加,对运维人员和硬件表规模提出更高要求,因此建议在常见的互联网 VRF 或集中共享服务场景中合理使用。

5. 多站点数据中心互联

数据中心通常需要 365 天 24 小时不间断运行,为确保高可用性,往往会制定灾难恢复计划。根据组织规模,数据中心部署可能分布在多个地理位置,有时同一站点会部署多个数据中心 Pod。因此,多个 Pod 或网络结构(站点)之间的互连至关重要。

在多 Pod 和多站点环境中部署 VXLAN EVPN 时,Overlay Transport Virtualization(OTV)常被用于提供二层数据中心互连(DCI)功能,且常与 VXLAN 一同被提及。下面对比分析 OTV 和 VXLAN。

对比项OTVVXLAN(BGP EVPN)
控制协议使用 IS - IS 作为控制协议,有特定的扩展用于传输二层信息使用 BGP EVPN 作为控制协议,需分别配置 VXLAN 和 BGP EVPN,并让 VXLAN 使用该控制协议
多宿主功能基于每 VLAN 的指定转发器(AED)选举提供冗余,无需特定配置,也无需如 vPC 这样的多宿主方法本身无集成多宿主功能,可通过 vPC 为边缘设备提供二层冗余;未来 EVPN 多宿主功能可用后,可实现原生二层冗余
环路检测OTV 站点 VLAN 会持续探测经典以太网侧的潜在边缘设备,若检测到不同站点的设备,会禁用覆盖扩展,防止二层环路无法检测由后门链路引入的南向环路,需采取如 BPDU 保护和风暴控制等额外措施;连接基于 STP 的网络交换机时,需移除 BPDU 保护,由 STP 进行环路保护
生成树集成OTV 边缘设备可作为经典以太网二层网络交换机参与 STP,接收 TCN 时会执行清除 MAC 地址表等操作VXLAN 本身不转发 BPDU,“隧道”被视为“始终转发”链路,VTEP 作为常规交换机参与根桥选举
多目的地流量处理可处理多目的地流量,使用基于 PIM 源特定组播(SSM)的数据包组进行组播转发,能分离组播和广播流量的数据组可处理多目的地流量,所有广播、未知单播和组播(BUM)流量通过分配给二层 VNI 的组播组或入口复制方法进行转发,可通过 IGMP 监听优化组播
未知单播流量处理默认不转发未知单播流量,可在每个 VLAN 基础上明确允许特定 MAC 地址进行未知单播泛洪可防止未知单播流量,但默认不停止未知单播转发,部分实现可在每个二层 VNI 基础上禁用未知单播转发,但禁用后无法选择性启用单个 MAC 的泛洪

综上所述,OTV 和 VXLAN(BGP EVPN)在数据中心互连场景中各有优缺点。随着控制协议和相关优化的发展,VXLAN(BGP EVPN)在大规模网络部署中的适用性不断增强,未来有望成为功能全面的 DCI 解决方案。

VXLAN BGP EVPN 网络的外部连接与多站点互联技术解析

6. 多目的地流量与未知单播流量处理细节

在多目的地流量处理方面,OTV 和 VXLAN(BGP EVPN)有着不同的实现方式和特点。OTV 采用基于 PIM 源特定组播(SSM)的数据包组进行组播转发,这种方式能够明确知道组的源,从而以最有效的方式转发覆盖层组播流量。同时,OTV 还具备将组播流量和广播流量的数据组分离的能力,这就好比为广播流量设置了一个“速率限制器”,可以对流量进行更精细的调整。

而 VXLAN(BGP EVPN)在处理多目的地流量时,所有的广播、未知单播和组播(BUM)流量都通过分配给二层 VNI 的组播组或入口复制方法进行转发。虽然它本身没有像 OTV 那样能明确区分不同 BUM 流量类型的能力,但可以通过 IGMP 监听来优化同一 VLAN/L2VNI 内的组播。以下是两者处理多目的地流量的对比流程图:

graph LR classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px; classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px; A([开始]):::startend --> B{流量类型}:::process B -->|组播| C{使用技术}:::process C -->|OTV| D(基于 PIM SSM 转发):::process C -->|VXLAN BGP EVPN| E(通过二层 VNI 组播组或入口复制转发):::process B -->|广播| F{使用技术}:::process F -->|OTV| G(数据组分离处理):::process F -->|VXLAN BGP EVPN| E B -->|未知单播| H{使用技术}:::process H -->|OTV| I(默认丢弃,可特定允许):::process H -->|VXLAN BGP EVPN| J(默认转发,部分可禁用):::process D --> K([结束]):::startend E --> K G --> K I --> K J --> K

在未知单播流量处理上,OTV 表现得更为严格。它默认情况下不会转发任何未知单播流量,如果目的 MAC 地址未知,流量会直接被丢弃。不过,在某些特定需求下,可以在每个 VLAN 的基础上明确允许特定的 MAC 地址进行未知单播泛洪。而 VXLAN(BGP EVPN)虽然也有防止未知单播流量的能力,但默认情况下并不停止未知单播转发。部分实现可以在每个二层 VNI 的基础上禁用未知单播转发,然而一旦禁用,就无法选择性地为单个 MAC 启用泛洪功能。不过,在实际网络中,对未知单播转发的需求通常并不频繁。

7. 生成树集成差异分析

OTV 和 VXLAN(BGP EVPN)在生成树集成方面也存在显著差异。OTV 边缘设备可以像经典以太网二层网络交换机一样参与 STP(生成树协议)。当站点配置使用 STP 时,OTV 边缘设备会正常参与其中。当接收到拓扑变更通知(TCN)时,OTV 会执行一系列典型操作,比如清除给定 VLAN 的 MAC 地址表,并且会评估是否发生了 OTV 拓扑变更,以确保端点可达性的准确性。在 OTV 环境中,STP 根的位置可以根据需要进行调整,但要注意的是,生成树域在 OTV 站点上是本地化的。

而 VXLAN(BGP EVPN)本身并不转发 BPDU(桥协议数据单元),所以它无法区分转发端口和阻塞端口。在 VXLAN 中,“隧道”被视为“始终转发”的链路,VTEP(VXLAN 隧道端点)作为常规交换机参与根桥选举。当需要连接基于 STP 的网络交换机时,由于 VXLAN 自身的特性,需要移除 BPDU 保护,让 STP 来承担环路保护的任务。以下是两者在生成树集成方面的对比表格:

对比项OTVVXLAN(BGP EVPN)
参与 STP 方式边缘设备作为经典以太网二层交换机参与VTEP 作为常规交换机参与根桥选举
BPDU 处理不通过 OTV 覆盖接口转发 BPDU本身不转发 BPDU,“隧道”视为“始终转发”链路
TCN 处理接收 TCN 时清除 MAC 地址表,评估拓扑变更无相关集成处理
STP 根位置可根据需要调整,生成树域本地化无特殊处理
8. 多宿主功能发展趋势

目前,OTV 和 VXLAN(BGP EVPN)在多宿主功能方面处于不同的发展阶段。OTV 基于每 VLAN 的指定转发器(AED)选举提供冗余,在启用多宿主功能时,不需要进行特定配置,也不需要像 vPC(虚拟端口通道)这样的多宿主方法。只要定义好共享相同站点的设备,就可以实现多宿主功能。

而 VXLAN(BGP EVPN)本身并没有集成多宿主功能。不过,通过添加 vPC,可以为边缘设备提供二层冗余。端点可以双连接到属于 vPC 域的一对 VTEP 上,从而确保二层网络的可靠性。值得期待的是,未来 EVPN 多宿主功能将会实现。一旦实现,VXLAN(BGP EVPN)将能够使用原生的多宿主功能来实现二层冗余,无需额外依赖 vPC 或 Multi - Chassis Link Aggregation Group(MC - LAG)等技术,并且可以有超过两个设备以集成的方式提供二层冗余。届时,OTV 和 VXLAN(BGP EVPN)在多宿主功能方面的差异将变得微不足道。以下是两者多宿主功能发展的时间线流程图:

graph LR classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px; classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px; A([现在]):::startend --> B{技术类型}:::process B -->|OTV| C(基于 AED 选举实现多宿主):::process B -->|VXLAN BGP EVPN| D(通过 vPC 实现二层冗余):::process C --> E([未来]):::startend D --> F(EVPN 多宿主功能实现):::process F --> E
9. 总结与建议

在数据中心网络中,OTV 和 VXLAN(BGP EVPN)都有各自的优势和适用场景。OTV 具有成熟的控制协议和数据平面集成能力,在环路检测、多宿主功能和多目的地流量处理等方面表现出色。而 VXLAN(BGP EVPN)随着控制协议的不断发展和优化,在扩展性和功能灵活性方面逐渐展现出优势,尤其是未来 EVPN 多宿主功能实现后,将进一步缩小与 OTV 的差距。

对于正在规划或升级数据中心互连网络的用户,建议根据自身网络的具体需求和特点来选择合适的技术。如果网络对环路检测和多宿主功能的即时性和简便性要求较高,OTV 可能是一个不错的选择。而如果希望构建大规模、可扩展的网络,并且能够接受一定的配置复杂度和等待技术发展,VXLAN(BGP EVPN)则具有更大的潜力。同时,合理使用下游 VNI 分配等技术,可以优化 VXLAN(BGP EVPN)的性能和可管理性。在实际应用中,也可以考虑将两者结合使用,充分发挥它们各自的优势,以实现更加高效、稳定的数据中心互连网络。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/23 6:59:33

计算机网络体系结构核心知识点整理

计算机网络体系结构核心知识点整理 一、互联网的基本组成 互联网本质是“边缘部分核心部分”的分层结构,两者协同实现全球数据传输: 边缘部分 定义:所有连接到互联网的终端设备(如个人电脑、手机、服务器),…

作者头像 李华
网站建设 2026/1/18 10:08:54

pythonstudy Day36

官方文档的阅读 疏锦行 import pandas as pd import numpy as npfrom sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifierfrom pdpbox import pdp import matplotlib.pyplot as plt import plotly.io as pio pio.renderers.default &qu…

作者头像 李华
网站建设 2026/1/24 16:06:34

(23)声明Bean的注解

负责声明Bean的注解,常见的包括四个: ComponentControllerServiceRepository 源码如下: package com.powernode.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.…

作者头像 李华
网站建设 2026/1/26 17:56:11

前端设计模式:详解、应用场景与核心对比

前端设计模式:详解、应用场景与核心对比 前端设计模式是解决前端开发中重复出现的问题的标准化解决方案,涵盖创建型、结构型、行为型三大类核心模式,同时包含前端特有的适配型模式(如发布-订阅、MVVM等)。本文结合前端…

作者头像 李华