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。
| 对比项 | OTV | VXLAN(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 来承担环路保护的任务。以下是两者在生成树集成方面的对比表格:
| 对比项 | OTV | VXLAN(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)的性能和可管理性。在实际应用中,也可以考虑将两者结合使用,充分发挥它们各自的优势,以实现更加高效、稳定的数据中心互连网络。
8159

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



