跳到主内容

EVPN/VXLAN Architecture Deep Dive

..标题:EVPN/VXLAN 架构深入探讨 .. slug:evpn-vxlan-架构 .. 日期: 2026-04-07 12:00:00 世界标准时间 .. 标签:evpn、vxlan、bgp、数据中心、覆盖、网络 ..类别:文章 ..链接: .. 描述:BGP EVPN 路由类型 RT-1 到 RT-5、VTEP 发现、对称和非对称 IRB、ARP 抑制以及使用 ESI 的多宿主 — 以及供应商 CLI 示例。 ..类型:文本

EVPN/VXLAN 架构深入探讨

BGP EVPN 路由类型、VTEP 发现、对称与非对称 IRB、ARP 抑制和多宿主 — 以及 Cisco NX-OS、Arista EOS 和 Junos CLI 示例。

1. 为什么选择VXLAN?

每个广播域 IEEE 802.1Q VLAN 的 ID 上限为 4,094 个,这对于多租户数据中心来说是一个硬性限制,在该数据中心中,数千个客户群必须在共享基础设施上共存。 VXLAN(虚拟可扩展局域网,RFC 7348)通过将以太网帧封装在 UDP/IP 内,使用 24 位 VNI(VXLAN 网络标识符)来支持多达 1670 万个逻辑段,从而解决了这个问题。

VXLAN 将虚拟第 2 层拓扑与物理第 3 层底层解耦,允许在 VXLAN 隧道端点 (VTEP) 之间进行标准 IP 路由(ECMP、OSPF、BGP),而无需扩展 VLAN。外部 UDP 标头使用目标端口4789(IANA 分配;早期部署使用 8472)。 IPv4 上的总封装开销约为 50 字节,IPv6 上的总封装开销约为 70 字节。

封装堆栈(RFC 7348):外部以太网 (14 B) + 外部 IPv4 标头 (20 B) + 外部 UDP 标头(8 B,目标端口 4789) + VXLAN 标头(8 B,包括位 32-55 中的 24 位 VNI)+ 原始内部以太网帧。

2. VTEP发现方法

VTEP 必须发现对等 VTEP 才能建立隧道并分发 BUM(广播、未知单播、组播)流量。实践中采用了三种机制:

方法 它是如何运作的 优点 缺点
组播 每个VNI映射到底层的一个PIM多播组; BUM 流量被淹没到该组 简单的;自动对等点发现 需要底层PIM组播;许多运营商禁用多播
入口复制 每个 VTEP 维护每个 VNI 的远程 VTEP 的显式单播列表; BUM 流量被复制到每个对等点 无需多播 头端对每个 BUM 数据包进行 O(N) 复制;静态对等列表需要手动维护
边界网关协议 RT-3 IMET 路由通告 VTEP 成员资格; RT-2路由分配MAC+IP绑定;没有洪水和学习 控制平面MAC学习; ARP抑制;可扩展到数千个 VTEP;标准 所有 VTEP 或路由反射器上都需要 BGP 堆栈

现代新建数据中心仅使用 BGP EVPN。多播和入口复制是棕地环境中仍然存在的传统方法。

3. BGP EVPN路由类型

BGP EVPN(RFC 7432)使用AFI 25(L2VPN)/SAFI 70(EVPN)分发五种路由类型。 RT-5 单独定义于RFC 9136(2021 年 10 月)。

RT 姓名 目的 NLRI 关键领域
1 以太网自动发现 链路故障时按 ES 和按 EVI 批量撤回;全主动多宿主负载平衡的别名 RD、ESI、以太网标签 ID、MPLS 标签
2 MAC/IP 广告 分发 MAC 地址(以及可选的绑定 IP)以启用 ARP 抑制并消除泛洪学习 RD、ESI、VLAN 标签、MAC 地址、IP 地址(可选)、L2VNI + L3VNI 标签
3 包容性多播以太网标签 (IMET) 根据 VNI 公布 VTEP 可达性;用于构建入口复制列表并触发 BUM 转发 RD,以太网标签 ID,始发路由器的 IP(VTEP 地址); PMSI隧道属性携带VNI和隧道类型
4 以太网段路由 共享以太网段的 PE 之间的指定转发器 (DF) 选举;确保只有一个 PE 将 BUM 转发到 CE 段 RD、ESI、始发路由器 IP
5 IP前缀路由(RFC 9136) 将 IP 前缀通告到 EVPN 覆盖层以实现子网间路由;需要专用的 L3VNI(中转 VNI) RD、以太网标签 ID、IP 前缀长度、IP 前缀、GW IP 地址、L3VNI 标签
常见文档错误:许多供应商指南都针对所有五种路由类型引用 RFC 7432。 RT-5(IP 前缀)不在原始 RFC 7432 中 - 它已添加到 RFC 9136(2021 年 10 月)中。如果您的设备软件早于该发布,则 RT-5 行为可能与最终 RFC 不同。

4. 对称与非对称 IRB

集成路由和桥接 (IRB) 描述 VTEP 如何在覆盖子网之间路由流量。两个模型定义在RFC 9135:

非对称IRB:入口 VTEP 执行 L3 路由(TTL 递减、下一跳重写)到目的地封装和发送之前的L2VNI。出口 VTEP 仅桥接 - 它看到内部帧已寻址到最终 MAC。每个 VTEP 都必须对每个 VNI(子网)进行本地编程,即使是那些没有本地主机的 VNI(子网),这限制了规模。

对称IRB:入口 VTEP 从源 L2VNI 路由到共享L3VNI(过境 VNI,每个 VRF 一个)。出口 VTEP 从 L3VNI 路由到本地目标 L2VNI。两个端点都执行路由。每个VTEP只需要自己的本地L2VNI;单个L3VNI是通用的。这是大织物的推荐型号。

不对称IRB 对称IRB
每个 VTEP 所需的 L2VNI 结构中的所有 VNI 仅本地连接的子网
L3VNI(过境 VNI) 不需要 必需 — 每个 VRF 一个
路由跳数 仅入口 VTEP 入口和出口 VTEP
规模 差(到处都是 VNI) 良好(仅限本地子网)
RT-5 前缀 不支持 支持(使用L3VNI)

5.ARP抑制

如果没有 EVPN,来自主机的 ARP 请求将广播到其 VNI 中,并洪泛到结构中的每个 VTEP。通过 BGP EVPN,一旦学习到主机,RT-2 路由就会将 MAC+IP 绑定分发到所有 VTEP。当主机针对远程 IP 进行 ARP 请求时,本地 VTEP 直接从其 BGP 填充表中进行应答 — 没有 ARP 数据包穿过 VXLAN 结构。这消除了已知主机的 BUM 泛洪,对于每个 VTEP 具有数千个虚拟机的结构尤其有影响。

ND(邻居发现)抑制对于 IPv6 的工作方式相同 — RT-2 路由在 NLRI 的 IP 字段中携带 IPv6 地址,并且 VTEP 在本地应答 NS 消息。

6. 多归属和ESI

以太网段标识符 (ESI) 是分配给将 CE 设备连接到多个 PE VTEP 的逻辑束的 10 字节标识符。存在两种转发模式:

  • 单主动:一次转发一个PE。 DF 选择(使用 RT-4 路由)为每个以太网标签选择指定转发器。非 DF PE 阻止 BUM 转发到段中,但仍然可以接收单播。
  • 全主动:所有 PE 同时转发,跨捆绑启用 ECMP(就像具有远程支路的端口通道)。 RT-1“别名”路由允许远程 VTEP 在所有连接的 PE 上对流向 ESI 的流量进行负载均衡。 MAC 移动性通过 RT-2 中的 MAC 移动性扩展社区进行处理。

7. 供应商 CLI 快速参考

任务 思科 NX-OS 阿里斯塔EOS 杜松子朱诺斯
显示EVPN路由 show bgp l2vpn evpn show bgp evpn show route table bgp.evpn.0
显示 VTEP 对等点 show nve peers show vxlan vtep show evpn instance
显示覆盖 MAC show mac address-table show vxlan address-table show evpn mac-ip-table
显示 ARP 抑制缓存 show ip arp suppression-cache detail show vxlan address-table detail show evpn mac-ip-table extensive
显示 VNI 到 VRF 的映射 show nve vni show vxlan vni show evpn instance extensive
显示 ESI 多宿主 show nve ethernet-segment show bgp evpn instance show evpn instance extensive

参考

  • RFC 7348— VXLAN:在第 3 层网络上叠加虚拟化第 2 层网络的框架 (2014)
  • RFC 7432— 基于 BGP MPLS 的以太网 VPN (BGP EVPN) (2015)
  • RFC 8365— 使用以太网 VPN (EVPN) 的网络虚拟化覆盖解决方案 (2018)
  • RFC 9135— 以太网 VPN (EVPN) 中的集成路由和桥接 (2021)
  • RFC 9136— 以太网 VPN (EVPN) 中的 IP 前缀通告 (2021)
  • IETF BESS 工作组— BGP Enabled ServiceS(有效的 EVPN 草案)