割接完、或者定期合规检查,最头疼的是"这台设备到底和我的标准模板差在哪"。靠肉眼 diff 两份几百行的配置,不仅累还容易漏。工具里的「配置审计比对」就是干这个的:左边贴期望配置(你的标准/基线),右边贴现网配置(display current-configuration 或 show running-config 导出的那段),点一下,逐行 LCS 比对,差异标出来。

差异怎么呈现
#mermaid-svg-F7jqc3uWHsfJhXen{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-F7jqc3uWHsfJhXen .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-F7jqc3uWHsfJhXen .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-F7jqc3uWHsfJhXen .error-icon{fill:#552222;}#mermaid-svg-F7jqc3uWHsfJhXen .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-F7jqc3uWHsfJhXen .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-F7jqc3uWHsfJhXen .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-F7jqc3uWHsfJhXen .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-F7jqc3uWHsfJhXen .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-F7jqc3uWHsfJhXen .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-F7jqc3uWHsfJhXen .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-F7jqc3uWHsfJhXen .marker{fill:#333333;stroke:#333333;}#mermaid-svg-F7jqc3uWHsfJhXen .marker.cross{stroke:#333333;}#mermaid-svg-F7jqc3uWHsfJhXen svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-F7jqc3uWHsfJhXen p{margin:0;}#mermaid-svg-F7jqc3uWHsfJhXen .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-F7jqc3uWHsfJhXen .cluster-label text{fill:#333;}#mermaid-svg-F7jqc3uWHsfJhXen .cluster-label span{color:#333;}#mermaid-svg-F7jqc3uWHsfJhXen .cluster-label span p{background-color:transparent;}#mermaid-svg-F7jqc3uWHsfJhXen .label text,#mermaid-svg-F7jqc3uWHsfJhXen span{fill:#333;color:#333;}#mermaid-svg-F7jqc3uWHsfJhXen .node rect,#mermaid-svg-F7jqc3uWHsfJhXen .node circle,#mermaid-svg-F7jqc3uWHsfJhXen .node ellipse,#mermaid-svg-F7jqc3uWHsfJhXen .node polygon,#mermaid-svg-F7jqc3uWHsfJhXen .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-F7jqc3uWHsfJhXen .rough-node .label text,#mermaid-svg-F7jqc3uWHsfJhXen .node .label text,#mermaid-svg-F7jqc3uWHsfJhXen .image-shape .label,#mermaid-svg-F7jqc3uWHsfJhXen .icon-shape .label{text-anchor:middle;}#mermaid-svg-F7jqc3uWHsfJhXen .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-F7jqc3uWHsfJhXen .rough-node .label,#mermaid-svg-F7jqc3uWHsfJhXen .node .label,#mermaid-svg-F7jqc3uWHsfJhXen .image-shape .label,#mermaid-svg-F7jqc3uWHsfJhXen .icon-shape .label{text-align:center;}#mermaid-svg-F7jqc3uWHsfJhXen .node.clickable{cursor:pointer;}#mermaid-svg-F7jqc3uWHsfJhXen .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-F7jqc3uWHsfJhXen .arrowheadPath{fill:#333333;}#mermaid-svg-F7jqc3uWHsfJhXen .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-F7jqc3uWHsfJhXen .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-F7jqc3uWHsfJhXen .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-F7jqc3uWHsfJhXen .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-F7jqc3uWHsfJhXen .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-F7jqc3uWHsfJhXen .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-F7jqc3uWHsfJhXen .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-F7jqc3uWHsfJhXen .cluster text{fill:#333;}#mermaid-svg-F7jqc3uWHsfJhXen .cluster span{color:#333;}#mermaid-svg-F7jqc3uWHsfJhXen div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-F7jqc3uWHsfJhXen .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-F7jqc3uWHsfJhXen rect.text{fill:none;stroke-width:0;}#mermaid-svg-F7jqc3uWHsfJhXen .icon-shape,#mermaid-svg-F7jqc3uWHsfJhXen .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-F7jqc3uWHsfJhXen .icon-shape p,#mermaid-svg-F7jqc3uWHsfJhXen .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-F7jqc3uWHsfJhXen .icon-shape .label rect,#mermaid-svg-F7jqc3uWHsfJhXen .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-F7jqc3uWHsfJhXen .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-F7jqc3uWHsfJhXen .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-F7jqc3uWHsfJhXen :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
期望配置 左
LCS 逐行比对
现网配置 右
相同 灰
缺失 红: 期望有现网无
多余 蓝: 现网有期望无
整改: 补现网漏配
核查: 现网多出项是否合理
- 相同行:两边都有,灰色,不动。
- 缺失(红 – 缺失:):期望里有、现网没有——说明现网漏配了。
- 多余(蓝 + 多余:):现网有、期望没有——说明现网多了不该有的。
- 修改类差异:同一处内容变了,会显示成"缺失 + 多余"相邻两行(旧值缺失、新值多余)。
比完还能一键复制差异或导出 .txt,汇报、归档都方便。
实战示例
标准基线(期望)要求 GigabitEthernet0/0/1 是带描述、放行 VLAN 10/20 的 trunk:
interface GigabitEthernet0/0/1
description to-core
port link-type trunk
port trunk allow-pass vlan 10 20
现网 display current-configuration 节选:
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20
storm-control broadcast pps 500
点「比对差异」后得到的清单:
interface GigabitEthernet0/0/1
– 缺失: description to-core
port link-type trunk
port trunk allow-pass vlan 10 20
+ 多余: storm-control broadcast pps 500
一眼就能看出:现网漏了端口描述(合规项不达标),但多了一条广播风暴抑制(其实是好事,基线没写进去)。两类差异分色列出,整改清单直接出。
实战示例②:合规核查视角
基线要求所有接入交换机 G0/0/1 关掉未用端口、开 port-security 并限 2 个 MAC:
interface GigabitEthernet0/0/1
port link-type access
port-security enable
port-security max-mac-num 2
shutdown
现网节选:
interface GigabitEthernet0/0/1
port link-type access
port-security enable
port-security max-mac-num 2
比对差异(缺失):shutdown —— 端口没关,未用口还亮着,等保"关闭闲置端口"那一项就不达标。这种"少了一条关键配置"的差异,肉眼在几百行里最容易漏,贴进来一眼就红。
比对结果怎么落地成整改
拿到红蓝清单别直接照着删:
实战示例③:割接前后漂移
割接前存了期望(基线):
interface GigabitEthernet0/0/1
description uplink-to-core
port link-type trunk
port trunk allow-pass vlan 10 20
storm-control broadcast pps 500
割接后隔两周再导一份现网:
interface GigabitEthernet0/0/1
description uplink-to-core
port link-type trunk
port trunk allow-pass vlan 10 20
差异(缺失):storm-control broadcast pps 500 —— 中间有人手改把广播风暴抑制删了,没同步回基线。这种"悄悄漂移"平时不报错,等到广播风暴来了才炸;定期比一次,漂移立刻现形。
三个典型适用场景
- 合规核查:把等保/公司基线贴左边,批量设备现网贴右边,缺哪项一目了然。
- 割接前后对比:割接前存一份期望,割接后贴现网,漂移立刻现形。
- 配置漂移巡检:定期跑,防止有人手改后忘了同步回基线。
为什么用「逐行 LCS」而不是字符级 diff
配置是行结构——每行一条命令,接口配置又是一段带缩进的子树。用普通"字符比对"会把一行里改一个字也当成一大段变化,满屏红,噪音极高;逐行 LCS(最长公共子序列)是按"整行"对齐,能正确识别出"这一整块缺失"或"这一整块多余",差异粒度正好是你要整改的颗粒。
所以贴进去时要注意:两边缩进、空行保持一致,LCS 才能对齐到同一行。现网侧直接贴 display current-configuration / show running-config 原文最稳,手动调格式反而制造"伪差异"。
几十台设备怎么排
单台比对会了,规模上来是另一回事。现网操作里可以这样排:
这样从"对着一台设备发愁"变成"拿着一张清单逐台打勾",效率和可追溯性都上来了。
审计比对 vs 人工核对
| 人工肉眼 diff | 两份配置并排看 | 几百行易漏,改过的行更难发现 |
| 文本编辑器 diff | 按字符比 | 缩进/空行变化产生大量伪差异 |
| 本工具 LCS 比对 | 逐行对齐、缺/多分色 | 依赖两边格式一致,需贴原文 |
新设备上线前,把出厂配置或旧设备配置贴右边、标准基线贴左边比一遍,能提前揪出"出厂多开了不必要的服务""旧设备漏了安全基线"这类隐患——比上线跑一半才发现合规不达标、再回退救火省事得多。
一个边界提醒
比对本质是"文本比对",它只回答"和基线一不一致",不校验命令语义对不对、也不查设备当前真实状态。比对全绿只代表"和你的基线一致",不代表"配置正确"——基线本身有错,比出来也是全绿。所以基线得来自已评审的标准模板,这是比对可靠的前提,别把"差异为零"当成"没问题"的免死金牌。
怎么确认比对结果靠谱
贴进去前两边格式要一致——现网侧直接贴 display current-configuration / show running-config 原文,别手动改缩进,否则 LCS 会把"格式差异"误判成"内容差异"。比完先盯"缺失(红)":那是要补的合规项;"多余(蓝)"先判断是不是好意多加的(如示例里的风暴抑制),别一刀切删。
三个最容易踩的坑
三篇串起来:备份 → 比对 → 恢复
审计比对不是孤立的。和前面两篇拼起来正好是配置管理闭环:先用「备份」(第 39 篇)把各台设备的 display current-configuration 拖到手,再用本篇把拖回来的多台配置逐台核对基线,发现漂移或缺项后,用「恢复(回灌)」把标准版灌回去。备份解决"有存档",比对解决"看得见差异",恢复解决"改得回去"——三步缺一,灾备都是空话。
什么时候用、基线从哪来
| 合规核查 | 等保/公司基线贴左,现网贴右 | 缺哪项一目了然 |
| 割接前后 | 割接前存期望,割接后贴现网 | 漂移立刻现形 |
| 配置漂移巡检 | 定期跑 | 防手改后忘同步回基线 |
| 基线来源 | 已评审模板或"黄金设备"导出 | 别拿随手写的当标准,否则全是噪音 |
把它放进你的运维节奏里
审计比对不是"出问题了才用"的工具,更该嵌进日常:设备上线前比一遍基线、割接前后比一遍漂移、月度巡检比一遍合规。把这步固定下来,配置台账就从"心里有数"变成"看得见的数"——哪台缺了什么、哪台多了什么,一张清单拉出来,整改和汇报都省心。前面几篇讲单模块命令怎么写,这一篇解决的是"写好的配置怎么守住、别悄悄变样",两块拼起来才是完整的配置管理闭环。
比对不是越干净越好
有人一看 diff 一大片就慌,其实要分情况:新增一个 VLAN、改一条描述,diff 自然会动——这是合法变更,不是"被篡改"。真正该警惕的是安全相关行被动了(ACL 规则被删、SNMP 团体被改、SSH/VTY 配置被关),这类哪怕只差一行也要追。所以比对的重点不是"零差异",而是"差异都在你预期内"——把注意力放在该放的地方,才不会被一大片正常 diff 晃花眼。
说明
配置审计比对为纯离线文本比对(LCS 逐行),不连接设备、不执行命令;结果以粘贴内容为准,建议现网侧直接贴 display current-configuration / show running-config 原文以保持格式一致。工具仅做差异呈现。
工具获取
-
专业版 v2.6.7 下载地址
-
专业版 v2.6.5 下载地址
评论区回复"路由交换命令生成器"免费下载
下一篇自然语言生成——不用记命令,中文一句话出五厂商命令。


