第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测试通过
□ 用户侧网络恢复
□ 业务方确认恢复正常
四、回滚后处理
□ 保持新旧设备并存状态,不急于拆除旧设备
□ 组织复盘会议,分析割接失败根因
□ 修正割接方案,重新评估后择期再次割接
□ 更新回滚方案记录本次经验
- CSS堆叠架构迁移到ECMP架构时,最大的技术难点是什么?如何克服?
- 如果现网设备仍在保修期内但性能已无法满足业务需求,是选择扩容还是直接替换?
- 设备替换项目中,配置迁移自动化能做到什么程度?哪些配置必须人工核对?
下篇预告:第350篇:跨厂商设备互联互通排错案例