4. Junos配置归档与差异比对
配置归档策略与差异比对
Junos 的配置归档(archive)功能会在每次 commit 成功后自动把运行配置快照保存到指定位置,并保留最近 N 份历史版本。运维中定位“谁在什么时候改了什么”,最直接的方式就是拿两个归档版本做 compare。
1. 配置自动归档策略
归档位置可以是本地 /var/tmp、/config,也可以是远端 ftp://、scp://。运营商场景通常要求远端集中留存,便于审计。以下示例把归档写到本地并保留 10 份,同时通过 transfer-on-commit 同步到远端服务器:
set system archival configuration transfer-on-commit
set system archival configuration archive-sites "/var/tmp/archive" password "Archive@123"
set system archival configuration archive-sites "scp://netops@10.0.0.50:/data/junos-archive" password "Scp@123"
set system archival configuration archive-sites "/var/tmp/archive"
set system archival configuration maximum-archive-count 10
关键参数说明:
transfer-on-commit:每次提交后立即归档,而不是按时间周期归档。archive-sites:可配置多个目标,Junos 会依次尝试,第一个成功即停止。maximum-archive-count:本地保留的最大份数,超出后最旧的被删除。
2. 手动触发归档
除了自动归档,也可以在维护窗口前手动生成一份基线快照:
request system configuration rescue save
request system archival configuration archive-now
执行后可用 show system archival 查看归档状态与最近一次归档时间:
show system archival
# 输出示例
Archive configuration:
Transfer on commit: enabled
Archive sites:
/var/tmp/archive
scp://netops@10.0.0.50:/data/junos-archive
Maximum archive count: 10
Last archival: 2025-01-15 03:12:44 UTC
3. 使用 compare 比对版本差异
Junos 提供多种 compare 方式,最常用的是 show configuration | compare 系列:
show configuration | compare rollback 1:当前运行配置与上一份回滚版本对比。show configuration | compare rollback 3:与 3 次提交前的版本对比。show configuration | compare:与最近一次提交的候选配置对比(需在 edit 模式下)。
输出中 + 表示新增行,- 表示删除行,[edit ...] 标明变更所在的配置层级。例如:
show configuration | compare rollback 1
[edit interfaces ge-0/0/0 unit 0 family inet]
- address 10.1.1.1/30;
+ address 10.1.1.5/30;
[edit protocols bgp group PEER]
+ neighbor 10.1.1.6;
+ export EXPORT-TO-PEER;
从输出可以快速定位:接口地址被修改,BGP 邻居和导出策略被新增。结合归档时间戳,即可还原变更窗口。
比对远端归档文件时,可先把文件拉回本地:
file copy scp://netops@10.0.0.50:/data/junos-archive/juniper.conf.20250115.gz /var/tmp/,再用 load override 或 show configuration | compare 与当前配置比对。4. 定位变更内容的关键判断
| 输出特征 | 含义 | 运维动作 |
|---|---|---|
- 行 | 该配置被删除或替换 | 确认是否为误删,必要时 rollback |
+ 行 | 该配置被新增 | 核对是否符合变更单 |
[edit ...] | 变更所在的配置层级 | 快速跳转到对应层级检查上下文 |
| 无输出 | 两个版本完全一致 | 确认比对对象是否正确 |
compare 只显示差异,不显示变更原因。定位到差异后,应结合
show system commit 查看提交用户、时间和提交注释,才能完整还原变更链路。5. 验证归档与比对是否生效
- 执行
show system archival,确认Transfer on commit为 enabled,且Last archival时间与最近一次 commit 时间吻合。 - 在
/var/tmp/archive下用file list查看归档文件数量,确认未超过maximum-archive-count。 - 做一次无害变更(如修改 description),commit 后执行
show configuration | compare rollback 1,确认能输出该变更。 - 若远端归档失败,检查
scp账号权限、目标目录可写性及网络可达性。