配置比对解决什么问题
配置比对是把变更前后两份设备配置放在一起逐行对照,用来回答三件事:这次变更到底改了什么、有没有夹带未申报的改动、当前故障是不是某次变更引入的。设备上的 show 命令只能看到当前配置,真正的差异必须靠两份快照来算。思科 IOS 自带 archive 历史归档,可以在设备内直接比对;华为 VRP 与 H3C Comware 没有等价功能,标准做法是先导出配置、再到服务器上用 diff 类工具处理。审计场景下比对输出还有留档价值:变更单附上差异文件,事后可以不依赖设备直接回看。
基本信息
| 适用平台 | 三厂通用(导出后比对);思科 IOS 支持设备内比对 |
|---|---|
| 常用工具 | GNU diff、WinMerge、Beyond Compare 等行级比对工具 |
| 前提条件 | 两份配置同型号同版本、同一导出方式,中间无其他变更 |
| 结果用途 | 变更审计留档、故障回溯、批量一致性核对 |
典型使用场景
- 变更前留底:把现网配置导出为 before,变更完成后再导一份 after,逐行核对改动与变更单是否一致
- 故障回溯:设备刚出问题又怀疑与上次操作相关,比对变更前后配置确认是否存在未申报改动
- 合规审计:等保与内审要求提供配置变更记录,差异输出是最直接的证据材料
- 批量核对:同批设备本应配置一致,两两 diff 能快速揪出漏配或配错的那一台
- 版本升级前后:升级前存基线,升级后确认配置没有被系统自动改写或丢失
服务器侧比对(Linux)
服务器侧比对(Linux)
diff -u before.cfg after.cfg > change.diff # 统一格式输出,便于存档
# 过滤时间戳与登录会话噪音,避免淹没真实差异:
diff -u before.cfg after.cfg | grep -v 'Last configuration change'
# 只看本次新增的配置行:
diff -u before.cfg after.cfg | grep '^+' | grep -v '^+++'
# 只看本次被删掉的配置行:
diff -u before.cfg after.cfg | grep '^-' | grep -v '^---'思科设备内比对
思科设备内比对
SW-CORE-01# show archive config differences nvram:startup-config system:running-config
SW-CORE-01# show archive config differences flash:archive-2 flash:archive-3
SW-CORE-01# show archive config rollback 2 ! 部分平台支持按归档点回滚华为与 H3C 导出
华为与 H3C 导出
# 华为 VRP:把启动配置推到 TFTP 服务器,变更后再导一份
<SW-CORE-01> tftp 192.168.1.100 put vrpcfg.zip before.zip
# H3C Comware:直接把启动配置备份到服务器
<H3C> backup startup-configuration to 192.168.1.100 before.cfg差异行怎么读
| 差异标记 | 含义 | 处理建议 |
|---|---|---|
| - 开头 | 变更前有、变更后没有,属被删除的配置 | 逐条确认是否为本人操作、是否影响业务 |
| + 开头 | 变更后新增的配置 | 与变更单逐条对照,夹带的改动要单独说明 |
| 时间戳/主机名行 | 导出时刻、会话信息变化产生的噪音 | 比对前统一过滤,否则会淹没真实差异 |
| description 等描述行 | 不影响转发但反映意图变化 | 同步更新到配置文档与网管备注 |
| interface/邻居整段变化 | 可能涉及板卡插拔或配置重建 | 结合日志确认变更窗口,不要只看配置 |
比对前提是两份配置来源一致:都是 display current-configuration 的输出,或者都是启动配置文件。混用当前配置与启动配置,会把没保存的临时改动也算成差异。
华为 VRP 与 H3C 都没有思科那种设备内历史比对,做审计只能靠外部归档:每次导出按日期加设备名命名(如 20261013_sw-core-01.cfg)留在文件服务器或版本库里,需要时随时回溯。