第349篇:老旧网络设备替换与架构升级方案

关键词:设备替换、架构升级、平滑迁移、风险评估、华为CloudEngine


一、案例背景

某金融企业的核心网络设备已运行超过10年,型号为华为S9306(2012年部署)。设备达到EOL(End of Life)状态,厂商不再提供备件和技术支持。同时,现有网络架构为传统核心-汇聚-接入三层模型,无法支撑微服务和容器化业务的快速发展。

现网设备清单: - 核心层:2台S9306(CSS集群) - 汇聚层:6台S6720-52X - 接入层:48台S5720-52X - 防火墙:2台USG6000V(已过保)

替换需求: 1. 核心层升级至CloudEngine 6865 2. 架构从三层模型升级为SPINE-LEAF 3. 业务中断时间控制在4小时内 4. 保留现有VLAN和IP地址规划

二、需求分析与方案设计

2.1 新旧架构对比

维度 现有架构 目标架构
拓扑 核心-汇聚-接入三层 SPINE-LEAF CLOS
核心设备 S9306×2(CSS) CE6865×4(ECMP)
汇聚设备 S6720×6 取消(合并至Leaf)
接入设备 S5720×48 CE6860×12(Leaf)
互联带宽 10GE 100GE
路由协议 MSTP+OSPF BGP+ECMP
虚拟化 CSS堆叠 无(ECMP负载分担)

2.2 替换架构

替换架构 - 图示

2.3 风险评估

风险项 风险等级 应对措施
配置迁移遗漏 高 自动化配置转换+人工核对
业务中断超时 高 分阶段割接+快速回滚
性能不足 中 扩容后容量测试
兼容性问题 中 新设备预测试
人员不熟新设备 低 提前培训

三、技术细节与实施过程

3.1 配置迁移自动化

# config_migration.py - 配置转换脚本
import re

def migrate_css_to_ecmp(old_config):
    """将CSS集群配置转换为ECMP配置"""
    new_config = []

    # 解析CSS配置
    css_members = re.findall(r'css port (.+)', old_config)
    eth_trunks = re.findall(r'interface Eth-Trunk (\d+)', old_config)

    # 生成新配置
    new_config.append("# SPINE-LEAF ECMP配置")
    new_config.append("bgp 65100")
    new_config.append("  router-id 10.255.0.1")
    new_config.append("  maximum-paths ecmp 4")
    new_config.append("")

    # 转换Eth-Trunk配置
    for trunk in eth_trunks:
        new_config.append(f"interface Eth-Trunk {trunk}")
        new_config.append("  mode lacp-static")
        new_config.append("  mode lacp-static")
        new_config.append("  load-sharing per-vlan-nni")
        new_config.append("  quit")
        new_config.append("")

    return "\n".join(new_config)

# 读取旧配置并转换
with open("old_core_config.txt", "r") as f:
    old_config = f.read()

new_config = migrate_css_to_ecmp(old_config)
with open("new_spine_config.txt", "w") as f:
    f.write(new_config)

print("Configuration migration complete")

3.2 分阶段实施

阶段1:新设备部署(不影响业务) - 新Spine设备上架、接线 - 新Leaf设备替换旧接入设备(逐台) - 基础配置完成

阶段2:双核心并行运行 - 新旧核心通过OSPF互通 - 业务逐步迁移至新核心 - 观察1周,确认稳定

阶段3:旧核心下线 - 将所有路由指向新核心 - 旧核心配置shutdown - 观察1天,确认无异常

阶段4:旧设备拆除 - 物理拆除旧设备 - 更新文档和拓扑

3.3 配置核查清单

核查项 旧配置 新配置 状态
VLAN列表 120个 120个 ✓
IP地址 全部一致 全部一致 ✓
OSPF区域 Area 0 Area 0 ✓
静态路由 45条 45条 ✓
ACL策略 28条 28条 ✓
DHCP配置 8个地址池 8个地址池 ✓
SNMP配置 v2c v3(升级) ✓
NTP配置 10.0.0.1 10.0.0.1 ✓

四、实战配置/案例分析

4.1 SPINE层BGP ECMP配置

# CE6865 Spine配置
<Huawei> system-view
[Huawei] sysname CE6865-Spine-01

# LoopBack(BGP Router ID和Nexthop)
[CE6865-Spine-01] interface LoopBack 100
[CE6865-Spine-01-LoopBack100] ip address 10.255.0.1 255.255.255.255
[CE6865-Spine-01-LoopBack100] quit

# BGP配置
[CE6865-Spine-01] bgp 65100
[CE6865-Spine-01-bgp-65100] router-id 10.255.0.1
[CE6865-Spine-01-bgp-65100] maximum-paths ecmp 4

# 与所有Spine建立iBGP全互联
[CE6865-Spine-01-bgp-65100] peer 10.255.0.2 as-number 65100
[CE6865-Spine-01-bgp-65100] peer 10.255.0.2 connect-interface LoopBack 100
[CE6865-Spine-01-bgp-65100] peer 10.255.0.3 as-number 65100
[CE6865-Spine-01-bgp-65100] peer 10.255.0.3 connect-interface LoopBack 100
[CE6865-Spine-01-bgp-65100] peer 10.255.0.4 as-number 65100
[CE6865-Spine-01-bgp-65100] peer 10.255.0.4 connect-interface LoopBack 100

# 与Leaf建立eBGP(每Leaf一个AS)
[CE6865-Spine-01-bgp-65100] peer 10.255.1.1 as-number 65101
[CE6865-Spine-01-bgp-65100] peer 10.255.1.1 connect-interface LoopBack 100
[CE6865-Spine-01-bgp-65100] peer 10.255.1.1 next-hop-local
[CE6865-Spine-01-bgp-65100] peer 10.255.2.1 as-number 65102
[CE6865-Spine-01-bgp-65100] peer 10.255.2.1 connect-interface LoopBack 100
[CE6865-Spine-01-bgp-65100] peer 10.255.2.1 next-hop-local
[CE6865-Spine-01-bgp-65100] quit

4.2 LEAF层配置

# CE6860 Leaf配置
<Huawei> system-view
[Huawei] sysname CE6860-Leaf-01

[CE6860-Leaf-01] interface LoopBack 100
[CE6860-Leaf-01-LoopBack100] ip address 10.255.1.1 255.255.255.255
[CE6860-Leaf-01-LoopBack100] quit

# Leaf使用独立AS号
[CE6860-Leaf-01] bgp 65101
[CE6860-Leaf-01-bgp-65101] router-id 10.255.1.1

# 上联4个Spine(eBGP)
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.1 as-number 65100
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.1 connect-interface LoopBack 100
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.2 as-number 65100
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.2 connect-interface LoopBack 100
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.3 as-number 65100
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.3 connect-interface LoopBack 100
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.4 as-number 65100
[CE6860-Leaf-01-bgp-65101] peer 10.255.0.4 connect-interface LoopBack 100

# 引入直连路由到BGP
[CE6860-Leaf-01-bgp-65101] import-route direct
[CE6860-Leaf-01-bgp-65101] quit

# 下联服务器
[CE6860-Leaf-01] interface Eth-Trunk 1
[CE6860-Leaf-01-Eth-Trunk1] mode lacp-static
[CE6860-Leaf-01-Eth-Trunk1] trunkport 100GE1/0/1
[CE6860-Leaf-01-Eth-Trunk1] trunkport 100GE1/0/2
[CE6860-Leaf-01-Eth-Trunk1] mode lacp-static
[CE6860-Leaf-01-Eth-Trunk1] quit

4.4 割接验证 Checklist

# 验证1:BGP邻居状态
<CE6865-Spine-01> display bgp peer brief
IPv4 Status:
  Peer                   State    MsgRcvd   MsgSent  Up/Down
  10.255.0.2            Established  15234   14980    04:32:15
  10.255.0.3            Established  14890   14760    04:31:58
  10.255.0.4            Established  15102   14892    04:32:02
  10.255.1.1            Established  8920    8840     04:30:45

# 验证2:ECMP路径
<CE6865-Spine-01> display ip routing-table 10.10.10.0
Routing Table: Public
  Destination : 10.10.10.0/24
  Preference  : 10
  NextHop     : 10.255.1.1, Preference 10
              : 10.255.2.1, Preference 10
              : 10.255.3.1, Preference 10
              : 10.255.4.1, Preference 10
  # 4条ECMP路径,负载分担正常

# 验证3:VLAN和业务连通性
<CE6865-Spine-01> display vlan brief
VLAN ID    Name       Type
10         VLAN0010   Common    <-- 业务VLAN存在
20         VLAN0020   Common
100        MgmtVLAN   Common

# 验证4:流量负载分担测试
<CE6865-Spine-01> display interface Eth-Trunk 10
Eth-Trunk10 is up
  Active member count: 4
  Current bandwidth: 400000 Kbit  <-- 4条100GE链路聚合

4.5 VLAN迁移策略(保留现有VLAN规划)

为确保业务VLAN和IP地址规划不变,采用以下迁移策略:

迁移阶段 操作 VLAN状态 IP地址
阶段1 新设备创建相同VLAN 新旧并存 不变
阶段2 Leaf直连服务器,VLAN透传 新Leaf承载 不变
阶段3 路由迁移至Spine 旧核心VLAN仅管理用途 不变
阶段4 旧设备VLAN逐步清除 仅新设备保留 不变
# 批量创建VLAN(Python脚本生成)
# vlan_migration_gen.py
vlans = [
    (10, "Finance"), (20, "HR"), (30, "IT"), (40, "Marketing"),
    (50, "R&D"), (60, "Production"), (100, "Management"),
    (200, "Server_A"), (201, "Server_B"), (202, "Server_C")
]

for vid, name in vlans:
    print(f"vlan {vid}")
    print(f" description {name}")
    print(f"quit")
    print(f"interface Vlanif {vid}")
    print(f" description {name}")
    print(f" ip address {10}.{vid}.0.1 255.255.255.0}")
    print(f"quit")
    print()

4.6 容量压测方案

割接完成后需执行容量压测验证新架构性能:

# 使用Iperf3进行带宽压测
# 在两台服务器之间测试Spine-Leaf转发性能
iperf3 -c 10.10.10.200 -t 60 -P 8 -b 1G

# 预期结果(4条100GE ECMP)
[ ID] Interval       Transfer     Bandwidth
[  5]   0.00-60.00  548 GBytes   78.2 Gbits/sec  <-- 远超过原10GE瓶颈

# 交换机CPU/内存压测期间监控
<CE6865-Spine-01> display cpu-usage
CPU Usage for 5 seconds:  12%
CPU Usage for 1 minute:   15%
CPU Usage for 5 minutes:  13%

<CE6865-Spine-01> display memory-usage
Memory usage: 38%  <-- 远低于原S9306的75%
压测维度 原S9306 新CE6865 改善
交换容量 336Gbps 26.4Tbps ↑78x
包转发率 120Mpps 5600Mpps ↑46x
万兆端口 24个 48个 ↑100%
百G端口 0 12个 新增
路由表容量 256K 2M ↑8x

4.3 割接当晚操作记录

时间 操作 状态 备注
20:00 全员到岗 ✓ 15人到岗
20:30 新Spine基础配置验证 ✓ BGP邻居全Up
21:00 新Leaf替换旧Access(第一批4台) ✓ 业务无感知
22:00 新Leaf替换旧Access(第二批4台) ✓ 业务无感知
23:00 核心业务迁移至新核心 ✓ 路由切换
23:30 业务验证 ✓ 全部通过
00:00 旧核心shutdown ✓ 无回滚
01:00 全量验证 ✓ 割接成功

五、经验总结

序号 经验类别 经验内容 适用场景
1 架构升级 设备替换应结合架构升级,避免只换设备不换架构 架构演进
2 配置迁移 使用自动化脚本进行配置转换,减少人工错误 自动化
3 双核心并行 新旧核心并行运行是降低风险的最佳实践 割接方案
4 培训先行 新设备部署前必须完成人员培训 人员准备
5 预测试 新设备必须在实验室预测试,验证配置兼容性 验证测试
6 文档同步 设备替换完成后必须同步更新所有文档 文档管理
7 回滚方案 每个阶段必须有明确的回滚触发条件和操作步骤 风险管理
8 容量测试 新设备部署后必须进行容量测试 验收测试
9 备件管理 新设备必须采购备件(光模块、电源、风扇) 运维保障
10 供应商管理 确保新设备有充足的厂商支持周期 采购管理

思考

附录:设备替换Checklist(分4阶段)

阶段一:准备阶段(搬迁前4周)

序号 检查项 完成标志 责任人
1.1 现网设备EOL/EOS状态确认 EOL报告 项目经理
1.2 现网配置全量导出备份 配置文件存档 网络工程师
1.3 新设备到货验货(外观/配件/固件) 到货签收单 实施工程师
1.4 新设备固件版本确认(与测试环境一致) 版本核对表 网络工程师
1.5 新设备实验室预测试(功能/连通性/性能) 预测试报告 测试工程师
1.6 配置迁移脚本开发和验证 脚本验证通过 自动化工程师
1.7 新设备上架位置、线缆规划确认 机柜U位图 实施工程师
1.8 备件清单确认(光模块/电源线/风扇) 备件清单 运维工程师

阶段二:并行部署阶段(搬迁前1-2周)

序号 检查项 完成标志 责任人
2.1 新设备上架、接线、供电 设备加电正常 实施工程师
2.2 新设备基础配置(IP/管理/协议) 管理可达 网络工程师
2.3 新旧设备互联配置完成 互联链路Up 网络工程师
2.4 新旧设备路由互通验证 路由互相学习 网络工程师
2.5 业务VLAN在新设备上创建 VLAN列表一致 网络工程师
2.6 新旧双核心并行运行观察(≥1周) 无异常告警 运维工程师

阶段三:割接阶段(周末夜间窗口)

序号 检查项 完成标志 责任人
3.1 割接前全网配置备份 备份完成 网络工程师
3.2 割接方案最终确认 评审纪要签字 项目经理
3.3 逐台/逐层业务切换 切换记录 实施工程师
3.4 每步切换后连通性验证 Ping/Tracert通过 验证工程师
3.5 回滚触发条件确认 无触发 总指挥
3.6 割接完成后全面验证 验证报告 验证工程师

阶段四:收尾阶段(割接后1-2周)

序号 检查项 完成标志 责任人
4.1 72小时密集监控 监控记录 运维工程师
4.2 旧设备安全下线 旧设备断电 实施工程师
4.3 旧设备数据清除和退库 退库单 资产管理员
4.4 网络文档更新(拓扑/配置/地址表) 文档归档 文档工程师
4.5 运维人员培训完成 培训签到表 培训讲师
4.6 割接总结和复盘报告 总结报告 项目经理

附录:在网升级方案对比表

方案 业务中断 实施复杂度 风险等级 适用场景
方案A:双核心并行 无中断 高 低 核心层替换,允许新旧并行
方案B:逐台替换 极小中断 中 低 接入/汇聚层,逐台热插拔
方案C:堆叠在线升级 短暂中断(秒级) 低 低 支持ISSU的堆叠系统
方案D:整体割接 较大中断(小时级) 中 高 全量替换,窗口充足
方案E:灰度迁移 无中断 高 中 大规模网络,分批次迁移

附录:回滚方案模板

回滚方案:[项目名称] 网络设备替换回滚预案
回滚日期:2024-XX-XX
回滚触发人:项目经理

一、回滚触发条件(满足任一即执行回滚)
  □ 业务中断超过30分钟无法恢复
  □ 超过20%的业务VLAN无法正常通信
  □ 核心设备CPU/内存持续超过90%
  □ 路由协议邻居全部Down
  □ 安全策略异常导致大面积阻断
  □ 关键业务方要求回滚

二、回滚操作步骤
  Step 1(1分钟):通知全员停止操作,记录当前状态
  Step 2(2分钟):恢复旧设备配置(从备份还原)
  Step 3(2分钟):旧设备上电并启动
  Step 4(3分钟):验证旧设备管理可达
  Step 5(5分钟):验证关键业务连通性
  Step 6(5分钟):通报回滚完成

三、回滚验证清单
  □ 旧核心设备运行正常(display device)
  □ OSPF邻居状态正常(display ospf peer brief)
  □ 关键业务Ping测试通过
  □ 用户侧网络恢复
  □ 业务方确认恢复正常

四、回滚后处理
  □ 保持新旧设备并存状态,不急于拆除旧设备
  □ 组织复盘会议,分析割接失败根因
  □ 修正割接方案,重新评估后择期再次割接
  □ 更新回滚方案记录本次经验
  1. CSS堆叠架构迁移到ECMP架构时,最大的技术难点是什么?如何克服?
  2. 如果现网设备仍在保修期内但性能已无法满足业务需求,是选择扩容还是直接替换?
  3. 设备替换项目中,配置迁移自动化能做到什么程度?哪些配置必须人工核对?

下篇预告:第350篇:跨厂商设备互联互通排错案例