BGP in EVPN Data Center Fabrics: Design Choices - 夜莺博客

BGP in EVPN Data Center Fabrics: Design Choices

在 EVPN 数据中心网络中,BGP 既是 underlay 路由协议也是 overlay 控制平面,选型直接影响可扩展性与运维复杂度。本文根据 ipSpace 的设计指南梳理三大主流方案:IBGP+IGP、纯 EBGP(RFC 7938 风格)、IBGP EVPN over EBGP underlay,并解释 next-hop-unchanged 为什么是 EBGP 场景的关键约束。

EVPN 与 BGP 的基本关系

  • EVPN 使用额外的 BGP 地址族(l2vpn evpn)承载 MAC/IP 可达性;
  • EVPN 通告中的下一跳指向出口 LSR 或 VTEP;
  • 底层路由协议负责计算到 BGP 下一跳的最优路径;
  • 修改 EVPN 下一跳的路由器必须同时做数据面解封装/再封装。

方案一:IBGP + IGP underlay

用 OSPF/IS-IS 做 underlay,leaf 之间用 IBGP 交换 EVPN 路由,这是最容易上手的方案。规模超过几台交换机时应部署 BGP 路由反射器(RR),spine 通常是可接受的选择;超大网络可把 RR 放在裸金属服务器或虚拟机上,但要保证承载 RR 的基础设施不依赖 EVPN fabric,否则故障时无法自愈。

方案二:纯 EBGP(无额外 IGP)

spine 不参与客户流量转发,因此 EVPN 通告在 fabric 内部穿越 EBGP 会话时不能改变 BGP 下一跳——即必须支持类似 MPLS/VPN Inter-AS Option C 的 next-hop-unchanged。选择此方案前务必确认厂商实现:部分厂商 EVPN 仅支持 IBGP,或 EBGP 下不支持 next-hop-unchanged,或配置极其繁琐,这些情况应退回 IBGP+IGP 方案。

方案三:IBGP EVPN over EBGP underlay

underlay 用 EBGP(RFC 7938),overlay EVPN 用 IBGP。常见变体:所有 leaf 用相同 AS 号(需要 allowas-in),或用 local-as 让 leaf 伪装成与 RR 同 AS。适用于无法跑 IGP 且厂商不推荐 spine 做 EVPN 路由服务器的场景。

选型决策树

  1. 能用 IGP underlay?→ IBGP+IGP 最简;
  2. 想纯 EBGP?→ 确认厂商支持 next-hop-unchanged;
  3. 前缀规模超出现网交换机控制面能力?→ 用 VM 版 RR,IBGP EVPN over EBGP underlay 可能是唯一选择。

相关阅读

EVPN-VXLAN 完整架构见本站 EVPN-VXLAN Data Center Fabric: Design Guide 2026;Spine-Leaf 拓扑基础见 Spine-Leaf Architecture: Modern Data Center Topology;BGP 抖动抑制见 Juniper BGP Session and Route Flaps: Prevention Guide

原文链接:https://ipspace.net/Data_Center_BGP/BGP_in_EVPN-Based_Data_Center_Fabrics