摘要

  • EAPS 主节点有权为一个明确的域关闭或打开备用端口,并命令交换机清空转发表。它没有权仅凭控制 VLAN 的健康帧,宣布所有受保护 VLAN、外部路径和应用都已正常。
  • 可审计的恢复记录必须写清控制权的边界:哪个域、哪个主节点、哪些 VLAN、哪个配置版本、哪条观测触发了哪项动作,以及数据包和应用是否另行确认结果。

一项恰当的权力也可能被说得过大

物理链路围成一个圆。以太网学习却不能容忍这个圆在普通转发中一直开放,否则广播与未知目的流量可能循环。EAPS 的答案不是假装环不存在,而是指定一个主节点,让它在正常状态下封住备用端口上的非控制流量。

主节点周期性发送健康检查帧。帧从主端口出发,沿控制 VLAN 穿过环网,从备用端口返回。发生故障时,主节点可以打开备用端口,让受保护 VLAN 沿尚存方向转发。恢复时,它再次封住备用端口,维持无环拓扑。

这是有边界的工程授权:对一个 EAPS 域、一个端口、一个已声明 VLAN 集合作出开闭决定。危险不在于权力集中本身,而在于运维语言把这个边界抹掉。“主节点认为环正常”很容易在报表中变成“网络正常”,再变成“业务恢复”。后两句需要它没有采集的证据。

RFC 3619 于 2003 年 10 月发布,记录 EAPS 版本 1。它是信息类 RFC,技术由 Extreme Networks 发明,文档明确说明它不是互联网标准。文中所说低于一秒、常见低于 50 毫秒,是对机制的历史描述,不是对当前部署的实测,也不是任何产品或业务的保证。

领导者要管理的不是一个漂亮数字,而是主张的权限。谁可以根据什么事实,替哪些对象改变什么状态,又由谁确认改变后的真实后果。

控制域必须能被完整点名

一个 EAPS 域包含一组受保护 VLAN、一个控制 VLAN、一个主节点以及若干传输节点。主节点指定主端口和备用端口。正常时,备用端口只让控制流量通过;故障时,主节点开放它;恢复时,再把它封住。

因此,任何“开放环网”的记录都应附带域标识、主节点身份、控制 VLAN、受保护 VLAN 清单、主备端口、hello 间隔、故障计时器和配置版本。少一个边界字段,事后就更难回答那次决定究竟影响了谁。

Heng Lu 反复区分记录、权威与现实。记录可以依共同规则代表一个决定,却不能因此取代被代表的世界。EAPS 主节点能真实地执行端口动作;运行中的代码让这项决定产生后果。但代码的执行力不会把一帧控制流量变成对每条用户流量的观察。

这种边界还决定责任分配。链路维护者、EAPS 配置者、VLAN 所有者、桥接平台和应用团队各自掌握不同事实。如果最终状态只留下一个绿色圆圈,真正的责任界面就被图标吞掉了。

告警与超时不是同一种证人

EAPS 有两条故障发现路径。传输节点在本地发现链路断开后,立即向主节点发送 LINK-DOWN 控制帧。与此同时,主节点持续发出健康检查帧;如果预期帧没有在故障周期内返回,也会进入环故障状态。轮询路径可以补偿告警丢失。

两条路径可能导向同一项安全动作,但证据性质不同。LINK-DOWN 是某个节点对某个本地端口作出的积极陈述。计时器到期则是对缺席的推断:应该出现的帧没有按时出现。

恢复记录不能只写“检测到故障”。它应保存是谁先触发、关联接口或序列、观测时间、计时器值、另一路证据是否随后吻合。缺席可能来自链路断裂、控制帧丢失、拥塞或控制 VLAN 自身的问题;本地告警也不能枚举所有受影响业务。

把两种证人压成一个布尔值,会诱导错误优化。缩短超时的确可能缩短切换数字,也可能放大误切换、重复清表和拓扑抖动。只有保留来源,团队才知道自己为速度付出了什么代价。

清空 FDB 是一次受控失忆

故障成立后,主节点开放备用端口,清空自己的桥接表,并通知传输节点清空各自的表。原拓扑中学到的 MAC 位置可能已经失效,继续相信它们比忘掉更危险。

但失忆不是康复。清表刚完成时,交换机知道得更少。它们要依赖新拓扑中的流量重新学习。未知目的可能被泛洪;沉默的目的地址不会立刻留下新位置;最先出现的流量还可能处在过渡阶段。

所以证据链至少要包含:清表命令发出时间、各节点执行时间、关键目的首次正确重学时间、未知单播恢复到基线的时间,以及第一笔成功业务事务。还要观察丢包、重复、乱序、时延和误连接。

RFC 4427 后来把检测、关联、通知、恢复切换和总恢复时间分开,并把无损切换定义得更严格:不应有丢失、重复、乱序或比特错误。这个词汇提醒我们,端口动作完成只是内部里程碑。低频业务可能要更久才触发重学,应用会话也可能在二层路径恢复后继续失败。

如果监控只在主节点状态翻转时停表,它衡量的是控制面服从命令的速度,而不是客户买到的连续性。

PRE-FORWARDING 承认链路恢复并不等于安全

恢复阶段不是故障阶段的简单倒放。物理链路已经回来时,主节点可能仍处于故障状态,备用端口仍开放。若传输节点立刻让所有受保护 VLAN 通过,完整物理环与开放备用口会一起重新制造环路。

RFC 3619 因而要求发现本地链路恢复的传输节点先封锁该端口上的受保护 VLAN,并进入 PRE-FORWARDING。主节点继续发送健康帧;帧从备用端口返回后,主节点回到正常状态、关闭备用端口的非控制转发,再发出一次清表指令。传输节点随后才能解除保护性封锁。

PRE-FORWARDING 是一个诚实的状态名。它承认物理层的“已连接”、控制面的“已协调”和数据面的“可安全转发”是三个时刻。任何把 link up 直接映射为 recovered 的系统,都删掉了协议自己保留的关键不确定窗口。

故障切换与恢复回切应有不同事件编号、时间线和验收。恢复会再次清空分布式学习状态,也能造成第二次中断。不能让最终的 normal 状态覆盖中间发生过的风险。

同一根光纤可以承载多个互不担保的域

RFC 3619 允许一台交换机参与多个环,也允许同一个物理环运行多个 EAPS 域。每个域可以拥有不同主节点和受保护 VLAN 集合。这提高了带宽复用,却也让“这个环正常”成为含糊说法。

域 A 正常时,域 B 可能仍在故障或 PRE-FORWARDING。二者的控制 VLAN、计时器、主节点和配置时期可以不同。共享一条链路,只说明它们共享一项物理事实,不说明它们共享状态结论。

后来保护框架使用“恢复域”概念,正是为了提醒保护机制有边界。域内动作不能替域外入口、出口、上游、下游或更高层业务作证。多个层级同时恢复时,还需要 hold-off 与回切策略,避免不同自动化相互打架。

运维界面应按域与 VLAN 范围索引事件,而不是只按机框、端口或光纤着色。业务验收则要从真实入口向真实出口发送代表性流量,再到应用层确认,而不能只重复控制 VLAN 已经完成的环行测试。

控制帧的格式不能自证授权

RFC 3619 的安全章节直言:能够物理接触以太网连接的人可以伪造桥接帧或 EAPS 帧来扰乱网络。在主动攻击构成显著风险时,应使用链路加密或适当的上层保护。

帧类型只告诉接收者如何解析内容,不能独立证明发送者有资格改变全域转发。控制信号应绑定允许的物理接口、源身份、域、配置时期和预期序列。异常跳转、重复触发以及不可能的状态组合都应告警,并保留原始触发帧或计数证据。

后来有关生存性的研究同样警告,伪造或捕获的故障信号可能错误触发恢复,管理命令需要授权。自动化越快地让一项观测清空分布式状态,事后的可追溯要求就越高。

这不是反对自动保护。恰恰因为自动保护有价值,它的权力才应被精确命名、约束和记录。把某个 VLAN 叫作“控制”不会让其中出现的每一帧天然合法。

最小结论,最长证据链

完整收据从物理观测开始,经过告警或轮询、主节点决定、端口动作、清表分发、FDB 新时期、重新学习、数据包结果,最后到应用结果。每一层的拥有者、失败方式和回滚办法都不同。

只测主节点会奖励不断缩短计时器,却掩盖误切换、反复清表和慢速重学。只测应用则失去定位内部延迟所需的工程证据。成熟做法不是二选一,而是让两套证据彼此对照,又不让其中一套冒充另一套。

EAPS 主节点可以合法地宣布:在这个配置版本下,我观察到这项控制证据,因此为这些 VLAN 改变了这个端口。它不能单独宣布客户结果。权力越被限制在真实观测范围内,自动化就越可信;业务恢复的最后签名,仍应由业务自己给出。

资料来源