结论先行:把策略变更做成自动下发,只解决了一半。下发返回成功,说明配置写进去了;业务能不能通,是另一件事。变更闭环要补三段:验证动作是什么、在哪个时点验、验不过退回哪个状态。这三段不写进流程,自动化只是把零散的手工错误换成了批量的手工错误。

下发成功和真正生效之间,隔着三种情形

自动化平台弹出一条绿色提示,多数人就把这件事记成"已完成"。实际运行中,从"配置写进去了"到"业务确实按预期通了",中间至少有三种走不通的情形。

  • 配置层接受了,策略层没命中。规则确实进了设备,但被前面一条更宽的规则截住了。新写的那条从未被匹配过,而设备日志里看不出任何异常——它只是没有被用到。
  • 设备层接受了,路径层没刷新。已有会话还挂在旧规则上。变更当时测试是通的,半小时后新连接建立,走的却是另一条路径,问题在这个时间差之后才冒出来。
  • 单台生效了,链路上没全覆盖。同一条访问关系往往穿过好几台设备。纳管清单里少一台,或者有一台当次下发失败被重试跳过,链路就是断的,而每一台单看都是"已完成"。

三种情形有一个共同特征:都没有报错。流程上查不出问题,只有从业务侧反过来验,才看得见。

三类验证方式,各自能证明什么、不能证明什么

把可用的验证手段摊开,大致三类。它们不是互相替代的关系,而是各有各的边界。

验证方式能证明证明不了什么时候用
配置回读设备里确实有这条规则、字段与预期一致规则是否被命中、是否被前序规则遮挡每次下发后自动跑,作为下限
主动探测从源端发起的连接,放通或阻断符合预期其他源地址、其他端口的真实行为关键业务路径,需要提前布点位
真实流量观察变更之后一段时间的实际命中记录低频业务可能等很久也没有样本变更后一段时间的复核

配置回读最容易做,也最容易被当成终点。它的价值是把"配置有没有写错"这一类问题挡在前面,让后面的验证只需要关注行为。

主动探测要提前准备点位。临时找人从办公网 ping 一下,看起来是探测,实际上源地址、路径、端口都和真实业务不一样,验出来的结论很难用。可行的做法是把关键业务路径整理成一张探测清单,每条写清源、目的、端口、预期结果,变更时按清单跑。清单不必很长,几十条就能覆盖主要业务面。

真实流量观察的问题是慢。低频系统可能一天只有几次调用,变更后两小时没有异常,不代表没有问题。所以这一类验证要约定观察窗口,窗口长度按业务频次定,而不是按值班班次定。

谁来验:甲乙两边要分开写

验证责任最常出现的问题是两边都以为对方在验。比较清楚的划法是这样。

环节服务方客户方
配置回读随下发自动执行,结果附在变更单后抽查,不需要逐条看
主动探测按约定清单执行,输出探测结果表提供源端点位与访问凭据
业务确认提供观察数据与命中记录业务方确认功能正常,签字
回退决定给出回退建议与影响范围拍板是否回退

回退决定放在客户方,是刻意的。回退本身也是一次变更,有代价;由服务方单方面决定回退,容易在两个错误之间来回切。服务方该做的是把"退回去会发生什么"讲清楚,让客户在信息完整的前提下选。

验不过的时候,退回哪个状态

回退最怕的情况是:知道要退,但不知道退到哪儿。因为变更前的状态没有被完整记录,只能凭记忆重建。

可用的做法是在变更前留两个东西。一个是配置快照,逐台设备的策略段完整导出,而不是只记"改了哪几条"。另一个是会话与连接状态——有些问题不在配置里,在已建立的连接里,只回配置不回会话,现象不会消失。

回退完成之后要再验一次,验证对象是回退后的状态,而不是"操作成功"这四个字。这一步常被跳过,原因是回退被视为应急动作,做得越快越好。但一次没验过的回退,等于又埋了一个不确定。

回退记录要和变更单绑在一起,写清三件事:为什么退、退到了哪个快照、退回后验证结果。这份记录平时没人看,等到季度复盘或者事后追责时,它就是仅有的依据。

边界与前提

本文只谈策略变更下发之后的生效确认与回退动作,不谈变更前的审批流怎么设计,也不谈策略本身该如何规划与收敛。文中涉及的探测点位数量、观察窗口长度属经验性建议,具体取值应以本项目现网业务频次与实测结果为准。

把这三段补起来,通常不是买一个功能,而是改一段流程:变更单上加验证结论、值班表上加观察窗口、复盘会上回看回退记录。深圳市奇摩计算机有限公司在网络自动化项目交付时,会把这三段写成交付清单里的核对项,逐条对上再算完成。推进中有拿不准的地方,可预约咨询,先看现网的变更单据与验证记录,再定改哪几处。