目录

  1. 引言
  2. 交换机基础架构
  3. Mellanox/NVIDIA 交换机详解
  4. 交换机配置基础
  5. 网络分区与隔离
  6. 性能调优参数
  7. 实战:交换机配置案例
  8. 附录:交换机命令速查表

引言

在 GPU 集群网络中,交换机是核心枢纽。Day 03 我们深入讲解了网络协议,今天我们将聚焦于网络设备本身——交换机。

在实际的 GPU 集群运维中,交换机相关的问题占据了网络故障的大多数:

  • 为什么集群扩展效率只有 70%? 交换机缓冲区配置不当
  • 如何配置 RoCE 无损网络? 交换机 QoS 和 PFC 设置是关键
  • 多租户如何隔离? VLAN、VRF 配置方案
  • 交换机性能瓶颈在哪里? 端口密度、背板带宽、缓冲区大小
  • 如何快速定位交换机故障? 需要掌握诊断命令

这些问题都指向一个核心主题:交换机知识与配置

为什么交换机对 GPU 集群如此重要?

交换机是 GPU 集群网络的"交通枢纽":

┌─────────────────────────────────────────────────┐
│          GPU 集群网络流量示意                    │
├─────────────────────────────────────────────────┤
│                                                 │
│  GPU0 ──┐                                       │
│  GPU1 ──┼──→ 服务器内部 NVLink                  │
│  GPU2 ──┤                                       │
│  GPU3 ──┘                                       │
│    │                                            │
│    │ 400 Gb/s                                   │
│    ▼                                            │
│  ┌─────────┐                                   │
│  │ 交换机  │  ← 所有跨服务器流量都要经过这里     │
│  │ (Switch)│                                    │
│  └─────────┘                                   │
│    │                                            │
│    │ 400 Gb/s                                   │
│    ▼                                            │
│  其他服务器                                     │
│                                                 │
│  大模型训练时的流量特征:                        │
│  - AllReduce: 多对多通信                        │
│  - 突发性强:梯度同步瞬间流量激增                │
│  - 低延迟要求:微秒级延迟敏感                    │
│  - 零丢包:丢包导致训练中断                      │
│                                                 │
└─────────────────────────────────────────────────┘

交换机性能直接决定

  • 集群通信效率
  • 训练稳定性
  • 扩展效率上限

本文目标

本文将带你系统掌握 GPU 集群交换机技术,内容包括:

  1. 基础架构 - 交换芯片、端口、缓冲区、背板带宽
  2. NVIDIA 交换机 - Spectrum 系列、Quantum 系列详解
  3. 配置基础 - CLI、Web 界面、配置管理
  4. 网络隔离 - VLAN、VRF、安全策略
  5. 性能调优 - 缓冲区、QoS、拥塞控制
  6. 实战案例 - InfiniBand 和以太网交换机配置

阅读建议

  • 网络工程师:建议完整阅读,重点关注第 4、5、6 节
  • AI 工程师:重点关注第 1、2 节,理解交换机对训练的影响
  • 运维工程师:重点关注第 3、6、7 节,掌握配置和排查方法
  • 采购决策者:可跳读至第 2 节产品对比和附录

交换机基础架构

理解交换机的工作原理,首先要了解其内部架构。

交换机核心组件

┌─────────────────────────────────────────────────┐
│            交换机内部架构                         │
├─────────────────────────────────────────────────┤
│                                                 │
│  ┌─────────────────────────────────────────┐   │
│  │          Switch Fabric (交换矩阵)        │   │
│  │                                         │   │
│  │  ┌───────┐  ┌───────┐  ┌───────┐       │   │
│  │  │ Port 0│  │ Port 1│  │ Port N│       │   │
│  │  │  PHY  │  │  PHY  │  │  PHY  │       │   │
│  │  └───┬───┘  └───┬───┘  └───┬───┘       │   │
│  │      │          │          │            │   │
│  │      ▼          ▼          ▼            │   │
│  │  ┌─────────────────────────────────┐    │   │
│  │  │      Switch Chip (ASIC)         │    │   │
│  │  │  ┌─────────────────────────┐    │    │   │
│  │  │  │   Packet Processor      │    │    │   │
│  │  │  │   (包处理器)             │    │    │   │
│  │  │  └─────────────────────────┘    │    │   │
│  │  │  ┌─────────────────────────┐    │    │   │
│  │  │  │   Switching Matrix      │    │    │   │
│  │  │  │   (交换矩阵)             │    │    │   │
│  │  │  └─────────────────────────┘    │    │   │
│  │  │  ┌─────────────────────────┐    │    │   │
│  │  │  │   Buffer Memory         │    │    │   │
│  │  │  │   (缓冲区内存)           │    │    │   │
│  │  │  └─────────────────────────┘    │    │   │
│  │  │  ┌─────────────────────────┐    │    │   │
│  │  │  │   Traffic Manager       │    │    │   │
│  │  │  │   (流量管理器)           │    │    │   │
│  │  │  └─────────────────────────┘    │    │   │
│  │  └─────────────────────────────────┘    │   │
│  │                                          │   │
│  │  ┌─────────────────────────────────┐    │   │
│  │  │   CPU + Management Interface    │    │   │
│  │  │   (管理 CPU 和接口)               │    │   │
│  │  └─────────────────────────────────┘    │   │
│  │                                          │   │
│  └─────────────────────────────────────────┘   │
│                                                 │
└─────────────────────────────────────────────────┘

关键组件详解

1. 交换芯片(Switch ASIC)

交换芯片是交换机的大脑,决定交换机的核心性能。

主流交换芯片厂商

厂商 芯片系列 最大容量 工艺 代表产品
NVIDIA (Mellanox) Spectrum 51.2 Tb/s 7nm Spectrum-4
NVIDIA (Mellanox) Quantum 25.6 Tb/s 7nm IB NDR
Broadcom Tomahawk 51.2 Tb/s 5nm Tomahawk 5
Broadcom Trident 25.6 Tb/s 7nm Trident 5
Intel (Barefoot) Tofino 25.6 Tb/s 7nm Tofino 3
Marvell Teralynx 25.6 Tb/s 7nm Teralynx 9

芯片关键参数

┌─────────────────────────────────────────────────┐
│          交换芯片关键参数                        │
├─────────────────────────────────────────────────┤
│                                                 │
│  1. 交换容量 (Switching Capacity)               │
│     定义:芯片每秒可处理的最大数据量             │
│     单位:Tb/s (Terabits per second)           │
│     示例:Spectrum-4 = 51.2 Tb/s               │
│                                                 │
│  2. 包转发率 (Packet Forwarding Rate)           │
│     定义:每秒可转发的数据包数量                │
│     单位:Mpps (Million packets per second)    │
│     计算:容量 / (包大小 × 8)                   │
│     示例:51.2 Tb/s ÷ (64B × 8) ≈ 100 Bpps    │
│                                                 │
│  3. 端口密度 (Port Density)                     │
│     定义:单芯片支持的端口数量                  │
│     示例:64× 400 GbE 或 128× 200 GbE           │
│                                                 │
│  4. 缓冲区大小 (Buffer Size)                    │
│     定义:用于临时存储数据包的内存              │
│     单位:MB (Megabytes)                       │
│     影响:抗突发流量能力                        │
│                                                 │
│  5. 延迟 (Latency)                              │
│     定义:数据包通过芯片的时间                  │
│     单位:ns (纳秒)                            │
│     示例:~500 ns (切通模式)                    │
│                                                 │
└─────────────────────────────────────────────────┘
2. 端口(Ports)

端口是交换机与外部设备的接口

端口类型

端口类型 速率 接口 适用场景
RJ45 1/10/25 Gb/s 铜缆 管理、接入层
SFP+ 10/25 Gb/s 光纤 接入层
QSFP28 100 Gb/s 光纤 汇聚层
QSFP56 200 Gb/s 光纤 核心层
QSFP-DD 400/800 Gb/s 光纤 核心层
OSFP 400/800 Gb/s 光纤 核心层

端口工作模式

┌─────────────────────────────────────────────────┐
│          端口速率配置模式                        │
├─────────────────────────────────────────────────┤
│                                                 │
│  1. 固定速率模式                                │
│     端口固定工作在指定速率                      │
│     示例:400 GbE 端口只能跑 400 Gb/s           │
│                                                 │
│  2. 分叉模式 (Breakout)                         │
│     1 个高速端口分为多个低速端口                │
│     示例:                                      │
│     1× 400 GbE → 4× 100 GbE                    │
│     1× 200 GbE → 2× 100 GbE                    │
│     1× 100 GbE → 4× 25 GbE                     │
│                                                 │
│  3. 自协商模式 (Auto-negotiation)               │
│     端口自动协商最佳速率                        │
│     适用:以太网                                │
│     不适用:InfiniBand (固定速率)              │
│                                                 │
└─────────────────────────────────────────────────┘
3. 缓冲区(Buffer)

缓冲区是交换机的"蓄水池",用于应对流量突发。

缓冲区类型

┌─────────────────────────────────────────────────┐
│          缓冲区架构                              │
├─────────────────────────────────────────────────┤
│                                                 │
│  1. 共享缓冲区 (Shared Buffer)                  │
│     ┌─────────────────────────────────┐        │
│     │      共享内存池 (动态分配)       │        │
│     │  ┌───┐ ┌───┐ ┌───┐ ┌───┐       │        │
│     │  │P0 │ │P1 │ │P2 │ │P3 │       │        │
│     │  └───┘ └───┘ └───┘ └───┘       │        │
│     └─────────────────────────────────┘        │
│     特点:灵活,抗突发能力强                    │
│     代表:Broadcom Tomahawk                    │
│                                                 │
│  2. 专用缓冲区 (Dedicated Buffer)               │
│     ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐           │
│     │ P0  │ │ P1  │ │ P2  │ │ P3  │           │
│     │Buffer│ │Buffer│ │Buffer│ │Buffer│        │
│     └─────┘ └─────┘ └─────┘ └─────┘           │
│     特点:隔离好,可预测性强                    │
│     代表:NVIDIA Spectrum                      │
│                                                 │
│  3. 混合缓冲区 (Hybrid Buffer)                  │
│     结合共享和专用缓冲区优点                    │
│     大部分流量用专用,突发用共享                │
│                                                 │
└─────────────────────────────────────────────────┘

缓冲区大小对性能的影响

缓冲区大小 适用场景 优势 劣势
小 (<100 MB) 低延迟场景 延迟低 抗突发能力弱
中 (100-500 MB) 通用场景 平衡 -
大 (>500 MB) 高突发场景 抗突发强 延迟略高

GPU 集群推荐:中大缓冲区(200 MB+),因为 AI 训练流量突发性强。

4. 背板带宽(Backplane Bandwidth)

背板带宽是交换机内部总线的传输能力

背板带宽 ≥ 端口数 × 端口速率 × 2 (全双工)

示例:64 端口 400 GbE 交换机
背板带宽 ≥ 64 × 400 Gb/s × 2 = 51.2 Tb/s

关键指标

  • 无阻塞 (Non-blocking):背板带宽 ≥ 理论需求
  • 过订 (Oversubscription):背板带宽 < 理论需求
    • 常见过订比:2:1, 4:1
    • 接入层可接受过订,核心层应无阻塞

交换机转发模式

存储转发(Store-and-Forward)
┌─────────────────────────────────────────────────┐
│          存储转发模式                            │
├─────────────────────────────────────────────────┤
│                                                 │
│  接收完整数据包 → 校验 → 查表 → 转发             │
│                                                 │
│  优点:                                          │
│  ✓ 错误检测(丢弃错误包)                       │
│  ✓ 支持不同速率端口互联                         │
│                                                 │
│  缺点:                                          │
│  ✗ 延迟较高(等待完整包)                       │
│  ✗ 缓冲区需求大                                 │
│                                                 │
│  延迟:~5-10 μs                                 │
│                                                 │
└─────────────────────────────────────────────────┘
切通(Cut-Through)
┌─────────────────────────────────────────────────┐
│          切通模式                                │
├─────────────────────────────────────────────────┤
│                                                 │
│  接收包头 → 查表 → 立即转发(不等待完整包)      │
│                                                 │
│  优点:                                          │
│  ✓ 延迟极低                                     │
│  ✓ 缓冲区需求小                                 │
│                                                 │
│  缺点:                                          │
│  ✗ 可能转发错误包                               │
│  ✗ 不支持速率转换                               │
│                                                 │
│  延迟:~0.5-1 μs                                │
│                                                 │
│  GPU 集群推荐:切通模式(延迟敏感)              │
│                                                 │
└─────────────────────────────────────────────────┘

(第一部分结束,约 7500 字。下一部分将继续讲解 Mellanox/NVIDIA 交换机详解、交换机配置基础。)

Mellanox/NVIDIA 交换机详解

NVIDIA(收购 Mellanox)是 GPU 集群交换机市场的领导者,提供 InfiniBand 和以太网两种解决方案。

InfiniBand 交换机系列

Quantum 系列(NDR 400 Gb/s)

代表产品:QM9700

┌─────────────────────────────────────────────────┐
│       NVIDIA Quantum QM9700 规格                 │
├─────────────────────────────────────────────────┤
│                                                 │
│  端口配置:                                      │
│  - 64× NDR 400 Gb/s 端口                        │
│  - 支持 PCIe 5.0 主机连接                        │
│  - 支持 NVLink 交换机互联                        │
│                                                 │
│  性能参数:                                      │
│  - 交换容量:51.2 Tb/s                          │
│  - 包转发率:65 Bpps (64 字节包)                │
│  - 延迟:~0.5 μs (端到端)                      │
│  - 缓冲区:每端口动态分配                        │
│                                                 │
│  物理规格:                                      │
│  - 尺寸:2U 机架式                              │
│  - 功耗:~700W (典型)                          │
│  - 重量:~15 kg                                 │
│  - 散热:6× 热插拔风扇                          │
│                                                 │
│  管理功能:                                      │
│  - 带外管理:1 GbE RJ45                        │
│  - 串口:RJ45 Console                          │
│  - USB: 2× USB 3.0                             │
│  - 远程管理:SNMP、Redfish、REST API           │
│                                                 │
│  价格参考:                                      │
│  - 单机:~$150,000                             │
│  - 含软件:~$180,000                           │
│                                                 │
└─────────────────────────────────────────────────┘

适用场景

  • 大型 AI 训练集群(512 卡+)
  • 国家级超算中心
  • 追求极致性能的场景
Quantum-2 系列(HDR 200 Gb/s)

代表产品:QM8790

┌─────────────────────────────────────────────────┐
│      NVIDIA Quantum-2 QM8790 规格                │
├─────────────────────────────────────────────────┤
│                                                 │
│  端口配置:                                      │
│  - 64× HDR 200 Gb/s 端口                        │
│  - 支持分叉:1× 200G → 2× 100G                 │
│                                                 │
│  性能参数:                                      │
│  - 交换容量:25.6 Tb/s                          │
│  - 包转发率:65 Bpps                            │
│  - 延迟:~0.6 μs                                │
│  - 缓冲区:自适应                                │
│                                                 │
│  物理规格:                                      │
│  - 尺寸:1U 机架式                              │
│  - 功耗:~450W                                  │
│  - 重量:~12 kg                                 │
│                                                 │
│  价格参考:                                      │
│  - 单机:~$80,000                              │
│                                                 │
└─────────────────────────────────────────────────┘

适用场景

  • 中型 AI 集群(64-256 卡)
  • 企业级 AI 平台
  • 性价比优先的场景

以太网交换机系列(Spectrum)

Spectrum-4(800 Gb/s)

代表产品:SN5600

┌─────────────────────────────────────────────────┐
│       NVIDIA Spectrum-4 SN5600 规格              │
├─────────────────────────────────────────────────┤
│                                                 │
│  端口配置:                                      │
│  - 64× 400 GbE QSFP-DD 端口                    │
│  - 或 32× 800 GbE OSFP 端口                    │
│  - 支持分叉:1× 400G → 4× 100G                 │
│                                                 │
│  性能参数:                                      │
│  - 交换容量:51.2 Tb/s                          │
│  - 包转发率:~100 Bpps                          │
│  - 延迟:~0.8 μs (切通模式)                    │
│  - 缓冲区:~400 MB (共享)                      │
│                                                 │
│  RoCE 支持:                                     │
│  - RoCE v2 硬件卸载                            │
│  - PFC + ECN + DCQCN                           │
│  - 无损以太网配置                              │
│                                                 │
│  物理规格:                                      │
│  - 尺寸:2U 机架式                              │
│  - 功耗:~800W                                  │
│  - 重量:~16 kg                                 │
│                                                 │
│  价格参考:                                      │
│  - 单机:~$120,000                             │
│                                                 │
└─────────────────────────────────────────────────┘

适用场景

  • 大规模 RoCE 集群
  • 云服务商 AI 平台
  • 混合负载数据中心
Spectrum-3(400 Gb/s)

代表产品:SN4600

┌─────────────────────────────────────────────────┐
│      NVIDIA Spectrum-3 SN4600 规格               │
├─────────────────────────────────────────────────┤
│                                                 │
│  端口配置:                                      │
│  - 64× 200 GbE QSFP56 端口                     │
│  - 或 32× 400 GbE QSFP-DD 端口                 │
│  - 支持分叉:1× 200G → 2× 100G                 │
│                                                 │
│  性能参数:                                      │
│  - 交换容量:25.6 Tb/s                          │
│  - 包转发率:~65 Bpps                           │
│  - 延迟:~1 μs                                  │
│  - 缓冲区:~300 MB                              │
│                                                 │
│  价格参考:                                      │
│  - 单机:~$60,000                              │
│                                                 │
└─────────────────────────────────────────────────┘

适用场景

  • 中型 RoCE 集群
  • 企业数据中心
  • 预算有限场景

产品对比与选型

InfiniBand vs 以太网交换机
特性 Quantum (IB) Spectrum (ETH) 差异
延迟 0.5 μs 0.8 μs IB 快 60%
配置复杂度 简单 复杂 IB 更易用
RoCE 支持 原生 RDMA 需配置 IB 原生
成本 中等 IB 贵 30-50%
生态 封闭 开放 ETH 兼容性好
适用场景 AI/HPC 通用数据中心 -
交换机选型决策树
┌─────────────────────────────────────────────────┐
│          交换机选型决策树                        │
├─────────────────────────────────────────────────┤
│                                                 │
│  1. 确定网络类型                                 │
│     │                                            │
│     ├─ 追求极致性能 → InfiniBand               │
│     │   │                                        │
│     │   ├─ 512 卡以上 → Quantum QM9700 (NDR)    │
│     │   │                                        │
│     │   └─ 64-512 卡 → Quantum-2 QM8790 (HDR)   │
│     │                                            │
│     └─ 成本敏感/已有以太网 → Ethernet          │
│         │                                        │
│         ├─ 大规模集群 → Spectrum-4 SN5600      │
│         │                                        │
│         └─ 中型集群 → Spectrum-3 SN4600        │
│                                                 │
│  2. 确定端口密度                                 │
│     │                                            │
│     ├─ 64 端口 → 单层架构                       │
│     │                                            │
│     └─ >64 端口 → 多层架构 (需要多台)           │
│                                                 │
│  3. 确定预算                                     │
│     │                                            │
│     ├─ 充足 → 最新代际 (NDR/800G)              │
│     │                                            │
│     └─ 有限 → 上一代 (HDR/400G)                │
│                                                 │
└─────────────────────────────────────────────────┘

交换机配置基础

掌握交换机配置是运维 GPU 集群的基本技能。本节将介绍配置方法和基础命令。

配置方式

1. 命令行界面(CLI)

最常用、最强大的配置方式

连接方式

# 1. 串口连接(初次配置)
screen /dev/ttyUSB0 9600

# 2. SSH 连接(日常使用)
ssh admin@<switch_ip>

# 3. Telnet(不推荐,不安全)
telnet <switch_ip>

CLI 模式

┌─────────────────────────────────────────────────┐
│          交换机 CLI 模式层级                      │
├─────────────────────────────────────────────────┤
│                                                 │
│  User EXEC 模式 (> 提示符)                      │
│  switch>                                       │
│  │                                              │
│  │ enable                                      │
│  ▼                                              │
│  Privileged EXEC 模式 (# 提示符)                │
│  switch#                                       │
│  │                                              │
│  │ configure terminal                          │
│  ▼                                              │
│  Global Configuration 模式 (config)#            │
│  switch(config)#                               │
│  │                                              │
│  │ interface ethernet 1/1/1                    │
│  ▼                                              │
│  Interface Configuration 模式 (config-if)#      │
│  switch(config-if)#                            │
│                                                 │
│  模式说明:                                      │
│  - User EXEC: 查看基本信息                      │
│  - Privileged EXEC: 查看所有信息、测试          │
│  - Global Config: 全局配置                      │
│  - Interface Config: 接口配置                   │
│                                                 │
└─────────────────────────────────────────────────┘

基础命令示例(NVIDIA Spectrum):

# 查看系统信息
show system

# 查看端口状态
show interface status

# 查看端口统计
show interface ethernet 1/1/1 counters

# 查看 MAC 地址表
show mac address-table

# 查看路由表
show ip route

# 查看配置
show running-config

# 保存配置
write memory

# 重启交换机
reload
2. Web 界面

适合快速查看和简单配置

访问方式

https://<switch_ip>

功能

  • ✅ 系统状态监控
  • ✅ 端口配置
  • ✅ VLAN 配置
  • ✅ 用户管理
  • ❌ 高级功能有限

适用场景

  • 快速查看状态
  • 简单配置修改
  • 不熟悉的用户
3. 管理 API

适合自动化运维

支持的协议

  • SNMP v2/v3
  • REST API
  • Redfish
  • gNMI (gRPC Network Management Interface)

REST API 示例

# 获取端口状态
curl -X GET \
  -H "Authorization: Bearer <token>" \
  https://<switch_ip>/rest/v1/system/ports

# 配置端口
curl -X PATCH \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"admin_status": "up", "speed": "400G"}' \
  https://<switch_ip>/rest/v1/system/ports/1/1/1

基础配置流程

初次配置
┌─────────────────────────────────────────────────┐
│          交换机初次配置流程                      │
├─────────────────────────────────────────────────┤
│                                                 │
│  1. 物理连接                                    │
│     - 连接电源线                                │
│     - 连接串口线(Console)                     │
│     - 连接管理网口                              │
│                                                 │
│  2. 串口登录                                   │
│     screen /dev/ttyUSB0 9600                   │
│     默认用户名:admin                          │
│     默认密码:admin                            │
│                                                 │
│  3. 修改密码                                   │
│     switch# configure terminal                 │
│     switch(config)# username admin password    │
│     <new_password>                             │
│                                                 │
│  4. 配置管理 IP                                │
│     switch(config)# interface management 1     │
│     switch(config-if)# ip address 192.168.1.10 │
│     255.255.255.0                              │
│     switch(config-if)# exit                    │
│                                                 │
│  5. 配置默认网关                               │
│     switch(config)# ip route 0.0.0.0/0         │
│     192.168.1.1                                │
│                                                 │
│  6. 配置 DNS                                   │
│     switch(config)# ip name-server 8.8.8.8     │
│                                                 │
│  7. 启用 SSH                                   │
│     switch(config)# service ssh                │
│                                                 │
│  8. 保存配置                                   │
│     switch# write memory                       │
│                                                 │
│  9. 测试 SSH 连接                               │
│     ssh admin@192.168.1.10                     │
│                                                 │
└─────────────────────────────────────────────────┘
端口配置
# 进入配置模式
configure terminal

# 配置端口(以 400G 端口为例)
interface ethernet 1/1/1
  description "GPU Server 01"
  speed 400000  # 400 Gb/s
  mtu 9216      # Jumbo Frame
  no shutdown   # 启用端口
exit

# 配置端口分叉(1× 400G → 4× 100G)
interface ethernet 1/1/2
  breakout-mode 4x100G
exit

# 分叉后配置子端口
interface ethernet 1/1/2:1
  description "Server 02 - Port 1"
  speed 100000
  no shutdown
exit

interface ethernet 1/1/2:2
  description "Server 02 - Port 2"
  speed 100000
  no shutdown
exit

# ... 配置:3 和:4

# 保存配置
write memory
VLAN 配置
# 创建 VLAN
vlan 100
  name "GPU-Cluster-A"
exit

# 将端口加入 VLAN
interface ethernet 1/1/1
  switchport mode access
  switchport access vlan 100
exit

# 配置 Trunk 端口(允许多个 VLAN)
interface ethernet 1/1/48
  switchport mode trunk
  switchport trunk allowed vlan 100,200,300
exit

# 查看 VLAN 配置
show vlan

(第二部分结束,累计约 14,000 字。下一部分将继续讲解网络分区与隔离、性能调优参数、实战配置案例。)

网络分区与隔离

在多租户或多集群环境中,网络隔离是保障安全和性能的关键。

VLAN - 二层隔离

VLAN (Virtual LAN) 是最常用的二层隔离技术。

VLAN 基础
┌─────────────────────────────────────────────────┐
│          VLAN 工作原理                           │
├─────────────────────────────────────────────────┤
│                                                 │
│  物理网络:                                      │
│  ┌─────────────────────────────────────────┐   │
│  │              交换机                      │   │
│  │  ┌────┐ ┌────┐ ┌────┐ ┌────┐           │   │
│  │  │ P1 │ │ P2 │ │ P3 │ │ P4 │           │   │
│  │  └─┬──┘ └─┬──┘ └─┬──┘ └─┬──┘           │   │
│  └────┼──────┼──────┼──────┼─────────────┘   │
│       │      │      │      │                 │
│  逻辑隔离:                                    │
│  ┌─────────┐          ┌─────────┐            │
│  │ VLAN 10 │          │ VLAN 20 │            │
│  │ Server1 │          │ Server3 │            │
│  │ Server2 │          │ Server4 │            │
│  └─────────┘          └─────────┘            │
│                                                 │
│  VLAN 10 和 VLAN 20 完全隔离,即使在同一交换机    │
│                                                 │
└─────────────────────────────────────────────────┘
VLAN 配置实战
# 1. 创建 VLAN
configure terminal
vlan 100
  name "AI-Training-Cluster"
  exit

vlan 200
  name "AI-Inference-Cluster"
  exit

vlan 300
  name "Management"
  exit

# 2. 配置 Access 端口(连接服务器)
interface ethernet 1/1/1
  description "Training Node 01"
  switchport mode access
  switchport access vlan 100
  spanning-tree edge  # 启用 PortFast,加速收敛
  no shutdown
  exit

interface ethernet 1/1/2
  description "Training Node 02"
  switchport mode access
  switchport access vlan 100
  spanning-tree edge
  no shutdown
  exit

# 3. 配置 Trunk 端口(交换机互联)
interface ethernet 1/1/48
  description "Uplink to Core Switch"
  switchport mode trunk
  switchport trunk allowed vlan 100,200,300
  switchport trunk native vlan 300  # 管理 VLAN 为 Native
  no shutdown
  exit

# 4. 验证配置
show vlan 100
show interface ethernet 1/1/1 switchport

# 5. 保存配置
write memory
VLAN 最佳实践
实践 说明 理由
管理 VLAN 独立 管理流量与业务流量分离 安全、便于管理
VLAN ID 规划 按功能/租户分配 VLAN ID 清晰、易维护
禁用未用端口 将未用端口放入隔离 VLAN 防止未授权接入
限制 VLAN 范围 Trunk 端口只允许必要 VLAN 减少广播域
启用 BPDU Guard 防止 STP 攻击 增强安全性

VRF - 三层隔离

VRF (Virtual Routing and Forwarding) 提供三层路由隔离。

VRF 与 VLAN 的区别
┌─────────────────────────────────────────────────┐
│          VLAN vs VRF                            │
├─────────────────────────────────────────────────┤
│                                                 │
│  VLAN (二层隔离):                               │
│  ┌───────────┐    ┌───────────┐                │
│  │  VLAN 10  │    │  VLAN 20  │                │
│  │ 192.168.1.x│    │192.168.1.x│  ← IP 可重叠   │
│  └───────────┘    └───────────┘                │
│       │                │                        │
│       └────────┬───────┘                       │
│                │                                │
│           ┌────┴────┐                          │
│           │ 路由器   │  ← 同一路由表             │
│           └─────────┘                          │
│                                                 │
│  VRF (三层隔离):                                │
│  ┌───────────┐    ┌───────────┐                │
│  │  VRF A    │    │  VRF B    │                │
│  │ 192.168.1.x│    │192.168.1.x│  ← IP 可重叠   │
│  └───────────┘    └───────────┘                │
│       │                │                        │
│       └────────┬───────┘                       │
│                │                                │
│           ┌────┴────┐                          │
│           │ 路由器   │  ← 独立路由表             │
│           └─────────┘                          │
│                                                 │
│  关键区别:                                      │
│  - VLAN 隔离二层,VRF 隔离三层                  │
│  - VRF 可重叠 IP 地址,VLAN 不行(如果互通)     │
│  - VRF 隔离更彻底,适合多租户                   │
│                                                 │
└─────────────────────────────────────────────────┘
VRF 配置实战
# 1. 创建 VRF
configure terminal
ip vrf AI-Training
  rd 1:100  # Route Distinguisher
  exit

ip vrf AI-Inference
  rd 1:200
  exit

ip vrf Management
  rd 1:300
  exit

# 2. 将接口绑定到 VRF
interface ethernet 1/1/1
  description "Training Node 01"
  ip vrf forwarding AI-Training
  ip address 192.168.100.1 255.255.255.0
  no shutdown
  exit

interface ethernet 1/1/2
  description "Training Node 02"
  ip vrf forwarding AI-Training
  ip address 192.168.100.2 255.255.255.0
  no shutdown
  exit

interface ethernet 1/1/3
  description "Inference Node 01"
  ip vrf forwarding AI-Inference
  ip address 192.168.200.1 255.255.255.0
  no shutdown
  exit

# 3. 配置 VRF 路由
ip route vrf AI-Training 0.0.0.0/0 192.168.100.254
ip route vrf AI-Inference 0.0.0.0/0 192.168.200.254

# 4. 验证 VRF
show ip vrf
show ip route vrf AI-Training

# 5. VRF 内测试连通性
ping vrf AI-Training 192.168.100.2

# 6. 保存配置
write memory
VRF 应用场景
场景 方案 优势
多租户 AI 平台 每租户一个 VRF 完全隔离、IP 可重叠
训练/推理分离 训练 VRF + 推理 VRF 流量隔离、QoS 独立
管理网络隔离 独立管理 VRF 安全、便于审计
测试环境隔离 生产 VRF + 测试 VRF 互不干扰

ACL - 访问控制列表

ACL (Access Control List) 提供细粒度的流量控制。

ACL 配置实战
# 1. 创建 ACL(允许 SSH 和监控)
configure terminal
ip access-list extended MANAGEMENT-ALLOW
  permit tcp any any eq 22  # SSH
  permit tcp any any eq 161 # SNMP
  permit udp any any eq 161
  deny ip any any log       # 拒绝其他并记录
  exit

# 2. 应用到管理 VLAN 接口
interface vlan 300
  ip access-group MANAGEMENT-ALLOW in
  exit

# 3. 创建 ACL(禁止训练集群访问推理集群)
ip access-list extended TRAINING-TO-INFERENCE
  deny ip 192.168.100.0 0.0.0.255 192.168.200.0 0.0.0.255
  permit ip any any
  exit

# 4. 应用到训练集群接口
interface vlan 100
  ip access-group TRAINING-TO-INFERENCE out
  exit

# 5. 验证 ACL
show access-lists
show ip interface vlan 300

# 6. 保存配置
write memory

性能调优参数

交换机性能调优是保障 GPU 集群高效运行的关键。本节将介绍关键调优参数。

缓冲区调优

缓冲区分配策略
# NVIDIA Spectrum 交换机缓冲区配置

# 1. 查看当前缓冲区配置
show buffer profile

# 输出示例:
# Profile 1 (Default):
#   Shared Buffer: 200 MB
#   Reserved Buffer: 50 MB
#   Dynamic Threshold: 50%

# 2. 创建自定义缓冲区配置
configure terminal
buffer profile AI-TRAINING
  shared-buffer 400 MB    # 增加共享缓冲区
  reserved-buffer 100 MB  # 增加预留缓冲区
  dynamic-threshold 60%   # 提高动态阈值
  exit

# 3. 应用到端口
interface ethernet 1/1/1-1/1/32
  buffer-profile AI-TRAINING
  exit

# 4. 验证配置
show buffer profile AI-TRAINING
show interface ethernet 1/1/1 buffer

# 5. 保存配置
write memory
缓冲区调优建议
场景 共享缓冲区 预留缓冲区 动态阈值
AI 训练(高突发) 400+ MB 100+ MB 60-70%
AI 推理(稳定) 200 MB 50 MB 50%
混合负载 300 MB 75 MB 55%
低延迟优先 100 MB 25 MB 40%

QoS 配置

QoS 基础
┌─────────────────────────────────────────────────┐
│          QoS 工作流程                            │
├─────────────────────────────────────────────────┤
│                                                 │
│  1. 分类 (Classification)                       │
│     根据 DSCP、VLAN、端口等标记流量             │
│                                                 │
│  2. 标记 (Marking)                              │
│     为数据包添加优先级标记                      │
│                                                 │
│  3. 队列 (Queuing)                              │
│     将不同优先级流量放入不同队列                │
│                                                 │
│  4. 调度 (Scheduling)                           │
│     按优先级调度队列                            │
│                                                 │
│  5. 整形 (Shaping)                              │
│     限制流量速率                                │
│                                                 │
│  6. 丢弃 (Dropping)                             │
│     拥塞时按优先级丢弃                          │
│                                                 │
└─────────────────────────────────────────────────┘
QoS 配置实战(RoCE 优化)
# 1. 启用 QoS
configure terminal
qos

# 2. 定义 DSCP 到优先级映射
qos map dscp-to-priority
  dscp 46 priority 7  # EF (加速转发) - 最高优先级
  dscp 10 priority 3  # AF11 - RoCE 流量
  dscp 0 priority 0   # BE (尽力而为) - 普通流量
  exit

# 3. 配置优先级队列
qos profile ROCE-OPTIMIZED
  priority-queue 7 weight 50%  # 50% 带宽给最高优先级
  priority-queue 3 weight 40%  # 40% 带宽给 RoCE
  priority-queue 0 weight 10%  # 10% 带宽给普通流量
  exit

# 4. 配置 WRED(加权随机早期检测)
qos wred-profile ROCE-WRED
  priority 3 ecn enable  # 对 RoCE 优先级启用 ECN
  priority 3 min-threshold 50%
  priority 3 max-threshold 80%
  exit

# 5. 应用到端口
interface ethernet 1/1/1-1/1/32
  qos profile ROCE-OPTIMIZED
  qos wred-profile ROCE-WRED
  exit

# 6. 验证配置
show qos profile
show qos wred-profile
show interface ethernet 1/1/1 qos

# 7. 保存配置
write memory
QoS 优先级规划
优先级 DSCP 流量类型 带宽分配 延迟要求
7 (最高) EF (46) 网络控制 保证 <1 μs
6 CS6 (48) 集群同步 保证 <2 μs
5 CS5 (40) 存储流量 保证 <5 μs
4 AF41 (34) 视频流 保证 <10 μs
3 AF11 (10) RoCE 40% ❤️ μs
2 AF21 (18) 数据库 保证 <10 μs
1 AF11 (10) 业务应用 剩余 <50 μs
0 (最低) BE (0) 尽力而为 剩余 -

拥塞控制调优

PFC 调优
# 1. 启用 PFC
configure terminal
priority-flow-control mode on

# 2. 配置 PFC 优先级(通常使用优先级 3)
priority-flow-control no-drop priority 3

# 3. 配置 PFC 阈值
interface ethernet 1/1/1-1/1/32
  priority-flow-control threshold 50,80  # 50% 恢复,80% 暂停
  exit

# 4. 配置 PFC 死锁检测
priority-flow-control deadlock-detection enable
priority-flow-control deadlock-recovery-time 1000  # 1 秒恢复

# 5. 验证配置
show priority-flow-control
show priority-flow-control statistics

# 6. 保存配置
write memory
ECN 调优
# 1. 启用 ECN
configure terminal
ecn mode on

# 2. 配置 ECN 参数
ecn profile ROCE-ECN
  min-threshold 20%  # 20% 缓冲区开始标记
  max-threshold 80%  # 80% 缓冲区开始丢弃
  mark-probability 10%  # 标记概率
  exit

# 3. 应用到 QoS 配置文件
qos profile ROCE-OPTIMIZED
  ecn-profile ROCE-ECN
  exit

# 4. 验证配置
show ecn profile
show ecn statistics

# 5. 保存配置
write memory

端口调优

端口参数优化
# 1. 配置端口 MTU(Jumbo Frame)
interface ethernet 1/1/1-1/1/32
  mtu 9216  # 支持 9KB 帧,减少包数量
  exit

# 2. 禁用不必要的功能(降低延迟)
interface ethernet 1/1/1-1/1/32
  no lldp transmit  # 禁用 LLDP 发送
  no lldp receive   # 禁用 LLDP 接收
  no cdp            # 禁用 CDP
  exit

# 3. 配置端口缓冲阈值
interface ethernet 1/1/1-1/1/32
  buffer-threshold ingress 70%  # 入向 70% 开始流控
  buffer-threshold egress 70%   # 出向 70% 开始流控
  exit

# 4. 启用端口统计
interface ethernet 1/1/1-1/1/32
  statistics detailed
  exit

# 5. 验证配置
show interface ethernet 1/1/1
show interface ethernet 1/1/1 counters detailed

# 6. 保存配置
write memory

实战:交换机配置案例

理论部分结束,现在进入实战环节。本节将提供完整的配置案例。

案例 1:8 卡 GPU 服务器 InfiniBand 交换机配置

场景:16 节点(128 卡)H100 集群,InfiniBand NDR 网络

网络拓扑

┌─────────────────────────────────────────────────┐
│          16 节点 IB 集群拓扑                      │
├─────────────────────────────────────────────────┤
│                                                 │
│         ┌───────────────────┐                  │
│         │ Spine Switch      │                  │
│         │ QM9700 (NDR)      │                  │
│         │ 64 端口             │                  │
│         └─────────┬─────────┘                  │
│                   │                            │
│         ┌─────────┼─────────┐                  │
│         │         │         │                  │
│    ┌────┴───┐ ┌──┴──┐ ┌───┴────┐              │
│    │ Leaf 0 │ │Leaf1│ │ Leaf 2 │              │
│    │ QM9700 │ │QM9700│ │QM9700  │              │
│    └────┬───┘ └──┬──┘ └───┬────┘              │
│         │        │        │                    │
│    ┌────┴───┐ ┌─┴────┐ ┌─┴────┐               │
│    │5 节点  │ │5 节点 │ │6 节点 │               │
│    │8 卡/节点│ │8 卡/节点│ │8 卡/节点│             │
│    └────────┘ └──────┘ └──────┘               │
│                                                 │
│  总节点:16                                     │
│  总 GPU: 128                                    │
│  交换机:4× QM9700                              │
│                                                 │
└─────────────────────────────────────────────────┘

Leaf 交换机配置

#!/bin/bash
# IB Leaf 交换机配置脚本

# 登录交换机
ssh admin@leaf0

# 进入配置模式
configure terminal

# ========== 1. 基础配置 ==========

# 设置主机名
hostname ib-leaf-01

# 配置管理 IP
interface management 1
  ip address 192.168.1.11 255.255.255.0
  exit

ip route 0.0.0.0/0 192.168.1.254

# ========== 2. 子网管理器配置 ==========

# 启用 SM(作为备份 SM)
sm-config
  priority 2  # 主 SM 优先级 3,备份 SM 优先级 2
  guided-query on
  exit

# ========== 3. 端口配置 ==========

# 配置下行端口(连接服务器)
interface ib 1/1-1/32
  description "GPU Server Port"
  state enable
  mtu 4096  # IB MTU
  exit

# 配置上行端口(连接 Spine)
interface ib 1/33-1/36
  description "Uplink to Spine"
  state enable
  mtu 4096
  exit

# ========== 4. 性能优化 ==========

# 启用自适应路由
routing adaptive enable

# 配置拥塞控制
congestion-control enable
congestion-control-threshold 80

# ========== 5. 监控配置 ==========

# 启用端口统计
interface ib 1/1-1/36
  statistics enable
  exit

# 配置 SNMP
snmp-server community public ro
snmp-server host 192.168.1.100 version 2c public

# ========== 6. 保存配置 ==========

write memory

# 验证配置
show system
show interface ib 1/1-36 status
show sm-status

案例 2:RoCE 无损以太网交换机配置

场景:32 节点(256 卡)A100 集群,400 GbE RoCE v2 网络

配置脚本

#!/bin/bash
# RoCE 交换机配置脚本

ssh admin@rocce-leaf-01

configure terminal

# ========== 1. 基础配置 ==========

hostname roce-leaf-01

interface management 1
  ip address 192.168.1.21 255.255.255.0
  exit

ip route 0.0.0.0/0 192.168.1.254

# ========== 2. 启用 DCB (Data Center Bridging) ==========

dcbx mode dcbx_cee

# ========== 3. 配置 PFC (无损以太网关键) ==========

# 全局启用 PFC
priority-flow-control mode on

# 配置优先级 3 为 no-drop(RoCE 流量)
priority-flow-control no-drop priority 3

# 配置 PFC 阈值
interface ethernet 1/1/1-1/1/32
  priority-flow-control threshold 50,80
  exit

# ========== 4. 配置 ECN ==========

ecn mode on

ecn profile ROCE-ECN
  min-threshold 20%
  max-threshold 80%
  mark-probability 10%
  exit

# ========== 5. 配置 QoS ==========

qos

# DSCP 到优先级映射
qos map dscp-to-priority
  dscp 10 priority 3  # RoCE 流量
  dscp 0 priority 0   # 普通流量
  exit

# 配置队列
qos profile ROCE-QOS
  priority-queue 3 weight 60%  # 60% 带宽给 RoCE
  priority-queue 0 weight 40%
  wred-profile ROCE-ECN
  exit

# 应用到端口
interface ethernet 1/1/1-1/1/32
  qos profile ROCE-QOS
  exit

# ========== 6. 配置 VLAN ==========

vlan 100
  name "GPU-Cluster"
  exit

interface ethernet 1/1/1-1/1/32
  switchport mode access
  switchport access vlan 100
  exit

# ========== 7. 端口优化 ==========

interface ethernet 1/1/1-1/1/32
  mtu 9216  # Jumbo Frame
  speed 400000
  no shutdown
  exit

# ========== 8. 监控配置 ==========

# 启用详细统计
interface ethernet 1/1/1-1/1/32
  statistics detailed
  exit

# 配置端口镜像(用于抓包分析)
monitor session 1 source interface ethernet 1/1/1 both
monitor session 1 destination interface ethernet 1/1/33

# ========== 9. 保存配置 ==========

write memory

# ========== 10. 验证配置 ==========

echo "=== 验证配置 ==="
show system
show interface ethernet 1/1/1-32 status
show priority-flow-control
show ecn profile
show qos profile
show vlan 100

案例 3:多租户网络隔离配置

场景:AI 云平台,3 个租户,每个租户独立网络

配置方案

#!/bin/bash
# 多租户网络隔离配置

ssh admin@multi-tenant-switch

configure terminal

# ========== 1. 创建 VRF(每租户一个) ==========

ip vrf TENANT-A
  rd 1:100
  exit

ip vrf TENANT-B
  rd 1:200
  exit

ip vrf TENANT-C
  rd 1:300
  exit

# ========== 2. 创建 VLAN ==========

vlan 110
  name "Tenant-A-Compute"
  exit

vlan 210
  name "Tenant-B-Compute"
  exit

vlan 310
  name "Tenant-C-Compute"
  exit

# ========== 3. 配置租户 A 网络 ==========

# 端口分配:1-10
interface ethernet 1/1/1-1/1/10
  description "Tenant A - GPU Server"
  switchport mode access
  switchport access vlan 110
  ip vrf forwarding TENANT-A
  ip address 10.1.1.x 255.255.255.0
  qos profile TENANT-A-QOS
  no shutdown
  exit

# 租户 A 路由
ip route vrf TENANT-A 0.0.0.0/0 10.1.1.254

# ========== 4. 配置租户 B 网络 ==========

interface ethernet 1/1/11-1/1/20
  description "Tenant B - GPU Server"
  switchport mode access
  switchport access vlan 210
  ip vrf forwarding TENANT-B
  ip address 10.2.1.x 255.255.255.0
  qos profile TENANT-B-QOS
  no shutdown
  exit

ip route vrf TENANT-B 0.0.0.0/0 10.2.1.254

# ========== 5. 配置租户 C 网络 ==========

interface ethernet 1/1/21-1/1/30
  description "Tenant C - GPU Server"
  switchport mode access
  switchport access vlan 310
  ip vrf forwarding TENANT-C
  ip address 10.3.1.x 255.255.255.0
  qos profile TENANT-C-QOS
  no shutdown
  exit

ip route vrf TENANT-C 0.0.0.0/0 10.3.1.254

# ========== 6. 配置 ACL(租户隔离) ==========

# 禁止租户间互访
ip access-list extended TENANT-ISOLATION
  deny ip 10.1.1.0 0.0.0.255 10.2.1.0 0.0.0.255
  deny ip 10.1.1.0 0.0.0.255 10.3.1.0 0.0.0.255
  deny ip 10.2.1.0 0.0.0.255 10.1.1.0 0.0.0.255
  deny ip 10.2.1.0 0.0.0.255 10.3.1.0 0.0.0.255
  deny ip 10.3.1.0 0.0.0.255 10.1.1.0 0.0.0.255
  deny ip 10.3.1.0 0.0.0.255 10.2.1.0 0.0.0.255
  permit ip any any
  exit

# ========== 7. 配置管理网络 ==========

vlan 999
  name "Management"
  exit

interface ethernet 1/1/48
  description "Management Uplink"
  switchport mode access
  switchport access vlan 999
  ip address 192.168.1.21 255.255.255.0
  no shutdown
  exit

# ========== 8. 保存配置 ==========

write memory

# ========== 9. 验证配置 ==========

echo "=== 验证租户隔离 ==="
show ip vrf
show vlan
show interface ethernet 1/1/1-30 status
show access-lists TENANT-ISOLATION

# 测试租户间隔离
ping vrf TENANT-A 10.2.1.1  # 应该失败
ping vrf TENANT-A 10.1.1.2  # 应该成功

附录:交换机命令速查表

基础命令

功能 命令 说明
查看系统信息 show system 显示交换机基本信息
查看配置 show running-config 显示当前运行配置
保存配置 write memory 保存配置到闪存
重启交换机 reload 重启交换机
查看日志 show log 显示系统日志

端口命令

功能 命令 说明
查看端口状态 show interface status 显示所有端口状态
查看端口统计 show interface eth 1/1/1 counters 显示端口计数器
启用端口 no shutdown 启用端口
禁用端口 shutdown 禁用端口
配置速率 speed 400000 设置端口速率
配置 MTU mtu 9216 设置 MTU

VLAN 命令

功能 命令 说明
创建 VLAN vlan 100 创建 VLAN 100
查看 VLAN show vlan 显示所有 VLAN
配置 Access switchport mode access 设置为 Access 模式
配置 Trunk switchport mode trunk 设置为 Trunk 模式

QoS 命令

功能 命令 说明
查看 QoS show qos profile 显示 QoS 配置
配置 PFC priority-flow-control mode on 启用 PFC
查看 PFC show priority-flow-control 显示 PFC 状态
配置 ECN ecn mode on 启用 ECN
查看 ECN show ecn profile 显示 ECN 配置

诊断命令

功能 命令 说明
Ping 测试 ping <ip> 测试连通性
追踪路由 traceroute <ip> 追踪路径
端口镜像 monitor session 1 source... 配置端口镜像
抓包 capture interface eth 1/1/1 捕获数据包

总结与行动建议

核心要点回顾

  1. 交换机是集群枢纽

    • 交换芯片决定性能上限
    • 缓冲区大小影响抗突发能力
    • 延迟对 AI 训练至关重要
  2. NVIDIA 主导市场

    • InfiniBand: Quantum 系列
    • 以太网:Spectrum 系列
    • 根据规模和预算选择
  3. 配置是关键

    • CLI 是最强大的配置方式
    • VLAN/VRF 实现网络隔离
    • QoS 保障关键流量
  4. 调优不可少

    • 缓冲区调优应对突发
    • PFC + ECN 实现无损网络
    • 端口优化降低延迟

下一步行动

  1. 设备选型:根据集群规模选择交换机
  2. 拓扑设计:设计合理的网络拓扑
  3. 配置规划:规划 VLAN、VRF、QoS
  4. 实施部署:按照配置案例实施
  5. 测试验证:性能测试和调优

延伸阅读

  • Day 03:网络基础:以太网与 InfiniBand
  • Day 06:测试环境搭建
  • Day 08:NCCL 基础与多卡通信
  • Day 09:NCCL 性能调优实战

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐