网络拓扑选型
在星型、环型、双平面、Spine-Leaf 等拓扑之间做出有数据支撑的选择,避免为「先进」而过度设计。本技能给出拓扑特征对比、收敛比计算、端口预算测算与决策记录方法。
一、核心原理
拓扑选型的本质是在成本、可靠性、扩展性、运维复杂度之间做权衡。衡量指标核心是收敛比(Oversubscription):下行总带宽 ÷ 上行总带宽。收敛比 1:1 为无阻塞(成本最高),20:1 为高收敛(成本低但易拥塞)。南北向流量为主选传统分层/星型即可;东西向流量为主(数据中心)才需要 Spine-Leaf。
flowchart LR
A[流量模型] --> B{东西向为主?}
B -- 是 --> C[Spine-Leaf / 双平面]
B -- 否 --> D[星型 / 三层分层]
C --> E[收敛比 1:1~3:1]
D --> F[收敛比 4:1~20:1]
E --> G[端口预算计算]
F --> G
G --> H[成本/可靠性对比]
H --> I[决策记录]
二、参考拓扑对比
flowchart TB
subgraph 星型
S1[核心] --- A1[接入1]
S1 --- A2[接入2]
S1 --- A3[接入3]
end
subgraph Spine-Leaf
SP1[Spine-1] --- L1[Leaf-1]
SP1 --- L2[Leaf-2]
SP2[Spine-2] --- L1
SP2 --- L2
L1 --- H[服务器]
end
配套 ASCII 拓扑(四种候选):
星型(单核心) 环型 双平面 Spine-Leaf
CORE A---B P1 P2 (平面) SP1 SP2
/ | \ | | | \/| / \/ \
A B C D---C | /\| L1 L2 L3
C1 C2 |||||
(双核心) 服务器
三、关键参数与决策表
| 决策点 | 推荐取值 | 依据 | 常见错误 |
|---|---|---|---|
| 星型适用 | 南北向为主、规模 < 200 节点 | 结构简单成本低 | 东西向流量大还硬上星型 |
| 环型适用 | 工业/园区接入,链路稀疏 | 天然冗余、布线省 | 环内节点多导致收敛慢 |
| 双平面适用 | 高可用园区/DC | 双核心双平面物理隔离 | 双平面共用同一电源/机房 |
| Spine-Leaf 适用 | 东西向为主、> 200 服务器 | 无阻塞、等宽扩展 | 南北向为主却上叶脊浪费 |
| 数据中心收敛比 | 1:1 ~ 3:1 | 东西向流量高 | 按园区 20:1 设计 DC |
| 园区收敛比 | 4:1 ~ 20:1 | 南北向、突发低 | 追求 1:1 成本爆炸 |
| 端口预算 | 上行端口 = 下行带宽/收敛比 | 见脚本 | 只数端口不看带宽 |
| 故障域 | 每 Leaf 一个二层域 | 收敛故障范围 | VXLAN 大二层无限扩大故障域 |
四、选型分步 SOP
- 流量模型:明确东西向/南北向比例、峰值带宽、单服务器带宽。
- 规模登记:服务器/终端数、每节点接入速率(1/10/25/100G)。
- 候选列举:至少 2 个候选(星型 vs Spine-Leaf,或环型 vs 双平面)。
- 端口预算:用
scripts/port_budget_calculator.py算 Leaf/Spine 数量与上行端口。 - 收敛比计算:下行总带宽 ÷ 上行总带宽,核对是否在目标区间。
- 成本与可靠性对比:设备数、布线成本、单点数量、切换时间。
- 设备规格校验:MAC/ARP/路由表规模在设备规格内。
- 决策记录:写明结论与被否方案否决理由。
五、拓扑配置落地示例
华为 CloudEngine — Spine-Leaf 上联(Leaf 侧)
#
# Leaf 上行到 Spine,跑 OSPF/BGP Underlay
#
interface 100GE1/0/1
undo portswitch
ip address 10.0.0.1 255.255.255.252
quit
interface 100GE1/0/2
undo portswitch
ip address 10.0.1.1 255.255.255.252
quit
#
# OSPF 骨干区(Underlay 路由)
#
ospf 1 router-id 10.0.0.1
area 0.0.0.0
network 10.0.0.0 0.0.0.3
network 10.0.1.0 0.0.0.3
quit
思科 Nexus — Spine-Leaf BGP Underlay
!
! Leaf 上行到 Spine(每 Leaf 独立 AS 或统一 AS)
!
router bgp 65001
neighbor 10.0.0.2 remote-as 65000
neighbor 10.0.1.2 remote-as 65000
!
interface Ethernet1/1
no switchport
ip address 10.0.0.1/30
!
interface Ethernet1/2
no switchport
ip address 10.0.1.1/30
星型/三层(华为 VRRP 网关)
interface Vlanif 100
ip address 192.168.100.252 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.100.254
vrrp vrid 1 priority 120
quit
> 完整可填空模板见 assets/topology-template.txt,逐行解释见 references/vendor-configs.md。
六、验证方法
| 验证项 | 命令 | 达标阈值 |
|---|---|---|
| 收敛比 | 脚本 port_budget_calculator.py |
实际收敛比 ≤ 目标值 |
| Underlay 邻居 | display ospf peer / show ip bgp summary |
Full / Established |
| 上行端口带宽 | display interface brief / show interface |
端口带宽符合规划 |
| 冗余切换 | 断开单上联计时 | 切换 < 3s |
| MAC/ARP 表 | display mac-address count |
在设备规格内 |
七、常见故障排查表
| 现象 | 根因方向 | 首要动作 |
|---|---|---|
| 东西向流量拥塞 | 拓扑选型错误(星型硬扛东西向) | 重新评估流量模型,改 Spine-Leaf |
| 上联带宽打满 | 收敛比设置过高 | 重算端口预算,增加上行端口 |
| Leaf 上联端口不够 | 端口预算漏算上行 | 用脚本重算上行端口数 |
| 环型网络收敛慢 | 环节点过多、STP 半径大 | 缩小环规模或改双平面 |
| 双平面互为单点 | 双平面共用电源/机房 | 核查物理隔离,消除隐藏单点 |
八、选型速查与常见误区
一句话选型:南北向为主、规模小 → 星型;链路稀疏且要冗余 → 环型(配 ERPS);高可用园区 → 双平面;东西向为主、> 200 服务器 → Spine-Leaf。
常见误区:
| 误区 | 正确做法 |
|---|---|
| 数据中心也按园区 20:1 设计 | DC 东西向流量大,收敛比应 1:1~3:1 |
| 星型核心是单点也敢上生产 | 核心必须双机(VRRP/堆叠/M-LAG) |
| VXLAN 大二层无限扩大故障域 | 每个 Leaf/租户一个独立广播域,配风暴控制 |
| 只数下行端口不看上行 | 端口预算必须同时算上行端口(用脚本) |
| 双平面共用电源/机房 | 冗余路径必须物理隔离 |
九、输出规范
交付时应产出:流量模型表(东西/南北比例)、候选拓扑对比表(收敛比/成本/可靠性/运维)、端口预算计算过程、收敛比计算、选型结论与否决理由记录、风险清单。
十、边界与风险
- 收敛比与端口预算为通用建模,最终以设备规格与实测流量为准,不承诺绝对成本与性能数字。
- 拓扑切换有迁移成本,选型前需评估现有设备复用率。
- 跨厂商 Underlay(华为 OSPF / 思科 BGP)需额外验证互通性。
配套资源
- 参数与对比手册:
references/topology-parameters.md - 厂商配置对照:
references/vendor-configs.md - 故障案例库:
references/troubleshooting.md - 数据基线:
assets/topology-comparison.csv - 配置模板:
assets/topology-template.txt - 脚本:
scripts/port_budget_calculator.py(端口预算计算器) - 配套检查清单:《网络拓扑选型决策清单》