1. 数据中心Underlay路由工程导论

在传统园区网络中,我们习惯把“网络”当作一张相对静态的拓扑:接入—汇聚—核心,路由协议负责把可达性打通,剩下的交给业务系统。但在现代数据中心里,网络被拆成了两层逻辑:一层负责“把包送到目的地”,另一层负责“让虚拟机、容器、租户网络看起来像在同一台大交换机里”。前者就是 Underlay,后者通常由 Overlay 承担。理解这两层的关系,是学习 Nexus Underlay 路由工程的第一块基石。

Underlay 与 Overlay:分工与依赖

Overlay 的典型代表是 VXLAN。VXLAN 把原始以太网帧封装进 UDP 报文,外层用 IP 地址作为“隧道端点”的标识。这个外层 IP 网络,就是 Underlay。换句话说,Overlay 负责“租户隔离、二层延伸、跨机架大二层”,Underlay 负责“把封装后的 IP 包从一台 VTEP 送到另一台 VTEP”。

两者之间是严格的依赖关系:Overlay 的控制平面(如 EVPN)可以自动学习远端 VTEP 地址和 MAC/IP 映射,但前提是 Underlay 已经提供了无环、等价多路径、快速收敛的 IP 可达性。如果 Underlay 出现路由黑洞或收敛缓慢,Overlay 的隧道就会中断,表现为“VXLAN 隧道 up,但业务不通”或“跨 Leaf 通信时断时续”。因此,Underlay 路由工程的目标不是“能 ping 通”,而是“稳定、可预测、可扩展地转发”。

Overlay 层(VXLAN / EVPN) 逻辑隧道:VTEP 之间封装 UDP,承载租户二层/三层流量 Leaf-1 VTEP 10.0.1.1 VNI 10010 Leaf-2 VTEP 10.0.1.2 VNI 10010 Leaf-3 VTEP 10.0.1.3 VNI 10020 VXLAN 隧道 VXLAN 隧道 依赖 Underlay 层(IP 路由 / 交换) 物理链路 + 路由协议:提供 VTEP 之间的无环、ECMP、快速收敛 IP 可达性 Spine-1 AS 65001 / BGP Spine-2 AS 65001 / BGP Leaf-1 Leaf-2 Leaf-3 ECMP 多路径转发 Underlay 提供 IP 可达性 → Overlay 隧道才能建立并转发租户流量

Nexus 在数据中心网络中的定位

Cisco Nexus 系列是数据中心场景的主力平台。与园区交换机不同,Nexus 从硬件到软件都围绕“高密度、低时延、大缓存、VXLAN 硬件卸载”设计。在 Underlay 路由工程中,Nexus 通常出现在三个位置:Spine(骨干转发,负责高速互联和路由反射)、Leaf(接入服务器和 VTEP 端点)、Border Leaf / Border Spine(连接外部网络或 DCI)。

Nexus 的 NX-OS 提供了完整的 Underlay 路由能力:OSPF、IS-IS、BGP、EIGRP 均可运行;同时支持 PIM、MSDP 等组播路由,用于 VXLAN 的 BUM 流量转发。在 EVPN 方案中,Underlay 通常采用 eBGP 或 OSPF,Overlay 采用 iBGP EVPN。Nexus 的硬件转发芯片(如 Cloud Scale ASIC)可以对 VXLAN 封装/解封装进行线速处理,因此 Underlay 的路由收敛速度直接决定了 Overlay 的故障恢复时间。

Underlay 路由工程的目标与设计原则

Underlay 路由工程的核心目标可以归纳为四条:可达性、无环性、多路径、快速收敛。可达性要求任意两台 VTEP 之间 IP 路由可达;无环性要求转发路径不存在环路;多路径要求利用 ECMP 提升带宽利用率;快速收敛要求链路或节点故障时,路由表在秒级甚至亚秒级完成切换。

为了达成这些目标,设计上通常遵循以下原则:

  • 分层设计:Spine 不连接服务器,Leaf 不连接其他 Leaf,形成严格的 Clos 拓扑。Spine 之间不直接互联,避免水平链路引入环路。
  • 路由协议选择:中小规模可用 OSPF,大规模推荐 eBGP。eBGP 的 AS 路径天然防环,且策略控制灵活,适合多租户和 DCI 场景。
  • ECMP 最大化:通过调整路由协议的最大等价路径数(如 maximum-paths 16),让流量均匀分布到所有 Spine。
  • 收敛优化:启用 BFD(Bidirectional Forwarding Detection)实现毫秒级故障检测,配合 BGP 的 fast-external-fallover 和 OSPF 的 fast-reroute。
  • 地址规划:Underlay 使用独立的 Loopback 地址作为 VTEP 源地址,通常采用 /32 掩码,便于路由聚合和故障定位。

一个可参考的 Underlay 参数示例

假设一个典型的两层 Clos 架构:2 台 Spine、4 台 Leaf,每台 Leaf 双上行到两台 Spine。Underlay 采用 eBGP,Spine 使用 AS 65001,Leaf 使用 AS 65011~65014。以下是一个 Leaf 的 BGP 关键配置片段(示例参数,非实测结果):

feature bgp
feature bfd

interface Ethernet1/1
  description To-Spine-1
  no switchport
  ip address 10.1.1.2/30
  bfd interval 300 min_rx 300 multiplier 3

interface Ethernet1/2
  description To-Spine-2
  no switchport
  ip address 10.1.2.2/30
  bfd interval 300 min_rx 300 multiplier 3

interface loopback0
  ip address 10.0.1.2/32

router bgp 65012
  router-id 10.0.1.2
  maximum-paths 16
  address-family ipv4 unicast
    network 10.0.1.2/32
  neighbor 10.1.1.1
    remote-as 65001
    address-family ipv4 unicast
  neighbor 10.1.2.1
    remote-as 65001
    address-family ipv4 unicast

配置完成后,在 Leaf 上执行 show ip route 应看到去往其他 Leaf Loopback 的路由有两条等价路径,分别指向两台 Spine。执行 show bgp ipv4 unicast summary 应看到两个邻居均为 Established。若某条链路故障,BFD 会在 900ms 内检测到并通知 BGP,BGP 随即撤销该路径,流量切换到剩余 Spine。此时 show ip route 中该目的地的下一跳应只剩一条,且业务应无明显中断。

判断依据:Underlay 是否健康,不看单条 ping,而看三个指标——路由表是否包含所有 VTEP Loopback、ECMP 路径数是否与设计一致、故障切换时间是否在业务容忍范围内。建议在部署 Overlay 之前,先用 traceroute 和 show ip route 验证 Underlay 的完整性和冗余性。