4. Fabric寻址与IP规划

在Spectrum叶脊Fabric中,IP地址规划不是“配完能通就行”的附属工作,而是决定路由收敛速度、故障域边界、ECMP等价路径数量以及后续扩容难度的基础设计。一个可维护的Fabric地址体系,通常需要同时回答四个问题:Underlay用什么地址承载BGP会话与物理链路,Overlay用什么地址承载VTEP与租户路由,Loopback如何提供稳定Router-ID与BGP更新源,以及Anycast地址如何让多台Leaf对外呈现同一服务入口。本节围绕这四个问题展开,并给出可直接套用的规划示例。

Underlay与Overlay的地址分层

Underlay是Fabric的物理承载层,负责Leaf与Spine之间的三层可达性。它通常使用点对点互联地址(/30或/31)和每台交换机的Loopback地址。Overlay是构建在Underlay之上的虚拟网络层,VTEP地址、租户VLAN到VNI的映射、以及EVPN路由都依赖Underlay提供的可达性。两者必须严格分层:Underlay地址只用于基础设施,Overlay地址只用于租户与VTEP,避免地址空间重叠导致路由泄漏或ECMP异常。

推荐采用如下地址块划分(示例,实际项目按需调整):

  • Underlay互联地址:10.0.0.0/16,按Spine-Leaf链路逐段分配,每段/31。
  • Underlay Loopback:10.1.0.0/16,每台设备一个/32,用于BGP Router-ID与更新源。
  • Overlay VTEP Loopback:10.2.0.0/16,每台Leaf一个/32,作为VXLAN隧道源地址。
  • Anycast VTEP地址:10.2.255.0/24,同一组Leaf共享,用于双活接入。
  • 租户业务网段:172.16.0.0/12,按VNI与租户划分,不与Underlay重叠。

这种分层的好处是:Underlay故障排查时只需关注10.0/16与10.1/16,Overlay问题则聚焦10.2/16与租户网段,故障域清晰,ACL与路由策略也更容易编写。

Loopback与互联地址设计

Loopback地址是Fabric稳定性的核心。每台Spine和Leaf都应配置一个/32 Loopback,作为BGP Router-ID、BGP更新源、以及iBGP/eBGP对等体的源地址。Loopback不依赖任何物理端口状态,只要设备有可达路径,BGP会话就能建立。互联地址则用于Leaf与Spine之间的点对点链路,建议使用/31以节省地址并避免广播地址浪费。例如:

Spine1 Loopback0: 10.1.0.1/32
Spine2 Loopback0: 10.1.0.2/32
Leaf1  Loopback0: 10.1.1.1/32
Leaf1  Loopback1: 10.2.1.1/32   # VTEP源地址
Leaf1  Eth1/1 与 Spine1: 10.0.1.0/31
Leaf1  Eth1/2 与 Spine2: 10.0.1.2/31

互联地址建议按“Spine编号+Leaf编号”编码,例如10.0.S.L.0/31,便于从IP反查链路。所有互联链路应启用三层路由,不跑STP,不配VLAN,保持纯路由端口。Loopback地址则按角色分段:Spine用10.1.0.0/24,Leaf用10.1.1.0/24,Border Leaf用10.1.2.0/24,便于汇总与策略匹配。

BGP AS号规划

Spectrum Fabric通常采用eBGP作为Underlay路由协议,Spine与Leaf之间建立eBGP邻居。AS号规划有两种常见模式:一是所有Leaf使用相同AS号,Spine使用不同AS号;二是每台Leaf使用独立AS号。前者配置简单,适合中小规模;后者路径选择更清晰,适合大规模或需要精细流量工程的场景。推荐使用私有AS号范围64512-65534,或使用4字节AS号如4200000000段。

示例规划:Spine1 AS 65001,Spine2 AS 65002,所有Leaf AS 65010。Leaf与Spine1、Spine2分别建立eBGP邻居,通过BGP多路径实现ECMP。若采用每Leaf独立AS,则Leaf1 AS 65011、Leaf2 AS 65012,依次递增。无论哪种模式,都必须确保AS_PATH长度一致,否则ECMP可能失效。对于Overlay,EVPN通常使用iBGP或eBGP,建议与Underlay AS号分离,例如Overlay使用65000作为统一AS,通过Route Reflector或全互联建立EVPN会话。

AS号规划一旦确定,后续扩容应保持同一编码规则。例如Leaf AS = 65000 + Leaf编号,Spine AS = 65000 + Spine编号,避免手工分配导致冲突。

Anycast与VTEP地址设计

Anycast VTEP地址用于双活接入场景:两台Leaf共享同一个VTEP IP,服务器通过MLAG或ESI双归接入,无论流量落到哪台Leaf,VXLAN封装源地址都相同,远端VTEP无需感知Leaf切换。Anycast地址通常配置在Loopback接口上,并配合EVPN的ESI多归配置。例如:

Leaf1 Loopback1: 10.2.255.1/32  (Anycast VTEP)
Leaf2 Loopback1: 10.2.255.1/32  (Anycast VTEP)
Leaf1 Loopback0: 10.2.1.1/32    (独立VTEP,用于非双活)
Leaf2 Loopback0: 10.2.2.1/32    (独立VTEP,用于非双活)

Anycast地址必须与独立VTEP地址分开规划,避免同一台Leaf上出现地址冲突。对于非双活服务器,使用独立VTEP地址即可;对于双活服务器,使用Anycast VTEP地址。EVPN路由中,Type-2 MAC/IP路由会携带VTEP地址,远端Leaf根据该地址建立VXLAN隧道。若Anycast地址配置错误,可能导致流量黑洞或非对称转发。

Spectrum Fabric 地址分层与VTEP设计 Underlay 承载层 互联地址 10.0.0.0/16 /31 点对点链路 Loopback0 10.1.0.0/16 Router-ID / BGP源 BGP AS 65001/65002 Spine eBGP Leaf AS 65010 统一或独立 Overlay 虚拟层 VTEP Loopback1 10.2.1.1/32 独立 Anycast VTEP 10.2.255.1/32 共享 租户网段 172.16.0.0/12 VNI映射 VLAN→VNI 物理拓扑与地址对应 Spine1 10.1.0.1 / AS65001 Spine2 10.1.0.2 / AS65002 Leaf1 10.1.1.1 / AS65010 Leaf2 10.1.1.2 / AS65010 10.0.1.0/31 10.0.1.2/31 10.0.2.0/31 10.0.2.2/31 Anycast VTEP 10.2.255.1 双活共享

规划落地检查要点

完成地址规划后,建议在实施前做一次一致性检查:Underlay与Overlay地址块是否重叠;Loopback是否全部为/32且唯一;互联链路是否统一使用/31;BGP AS号是否与规划表一致;Anycast VTEP是否只在双活Leaf上配置;EVPN Type-2路由中的VTEP地址是否与Loopback1匹配。这些检查项可以直接做成表格,在变更前逐项确认。

检查项示例值判断标准
Underlay互联10.0.1.0/31无重叠、无广播地址浪费
Loopback010.1.1.1/32唯一、作为BGP源
VTEP Loopback110.2.1.1/32与Anycast分离
Anycast VTEP10.2.255.1/32仅双活Leaf共享
BGP ASLeaf 65010AS_PATH长度一致
租户网段172.16.0.0/12不与Underlay重叠

最后需要强调:地址规划不是一次性任务。每次新增Leaf、新增租户或调整双活组时,都应回到规划表更新对应条目,并同步检查BGP AS号、VTEP地址与Anycast地址是否仍然满足唯一性与一致性要求。只有把地址体系当作Fabric的“骨架”来维护,后续的EVPN、VXLAN与流量工程才能稳定运行。