摘要
- 物理层有光,只能证明接收器获得了某种信号;UDLD 的 Device-ID、Port-ID 与 Echo TLV 才试图证明信号来自预期的二层邻居及端口。
- 普通模式不会从报文缺失中虚构故障类型,而把状态保留为“不确定”;激进模式只有在曾经确认双向、保持时间耗尽并完成最后一轮有限重试后,才可能把沉默转化为端口停用。
光纤配错最容易制造一种危险的确定感。发送纤芯可能接到一台设备,接收纤芯却来自另一台设备;每个光模块都亮着,每个端口都显示物理链路存在,二层拓扑却已经不是操作员以为的那条连接。此时“up”没有说谎,只是它回答的问题太窄。
UDLD 增加了一张不同的收据。设备在报文中声明自己的 Device-ID 和 Port-ID,邻居把在同一接口上实际听到的身份对放回 Echo TLV。只有预期身份沿着这条关系往返,设备才有理由把它视作双向邻接。RFC 5171 因而把光、邻居身份和持续报文分开,而不是把它们压成一个绿色图标。
这张收据也不是业务交付证明。UDLD 报文由控制平面处理,依赖 CPU 调度、软件实现、计时器和缓存;它没有覆盖每个 VLAN、报文尺寸、队列、转发表或应用事务。一个健康的控制报文往返,不能替所有数据面路径签字。
缓存里的邻居是带时间戳的陈述
设备周期性发送 hello,并依据对端通告的保持时间保存邻居。新的有效报文会更新记录、重置计时器;接口或协议被关闭、设备复位时,相关状态会被清除,并尝试通知邻居同步清理。
因此,show udld 展示的不是电缆此刻的照片,而是状态机对近期报文、配置和本地时钟的解释。邻居条目说明在缓存窗口内曾接受过某个身份,不能证明读屏那一刻的物理路径仍然相同,更不能证明用户流量正沿同一命运前进。
RFC 描述的 N 次报文序列,本质是一项工程假设:在可能丢包的链路上,多次发送足以让至少一份到达。它没有让“全部未到达”自动获得唯一原因。丢失可能来自断纤、双向损坏、高误码、双工不匹配、控制平面拥塞、UDLD 被关闭、对端不支持,或者一次配置变化的清除报文本身也丢了。
普通模式守住证据边界
普通模式是事件驱动的。收到的报文可以证明正确配对,也可以暴露明确的身份或回声矛盾;没有足够报文时,它不把空白补写成诊断。即使先前双向关系消失,结果也可以只是 undetermined。
这种克制并非检测能力不足,而是承认“未观察到”不等于“观察到失败”。Cisco 当前资料同样提示,邻居信息可能因为高误码或双工问题而老化;这种报文损失本身不证明单向链路。普通模式不因缓存自然耗尽就直接关闭端口,正是在保留多种仍然成立的解释。
这里的管理责任很明确:如果组织选择普通模式,就必须接受一段不能自动定性的时间,并通过接口计数器、光功率、交换拓扑、对端日志和业务探针补齐调查。普通模式没有替人做错结论,但也没有承诺替人隔离风险。
激进模式执行的是风险政策,不是根因判断
激进模式增加了一个有条件的动作链。关系必须曾经被确认双向;邻居证据随后过期;设备在链路仍表现为物理 up 时发出最后的恢复探测;这些探测仍然失败,端口才可能进入 errdisable。Cisco 对相关当前实现的说明是八次、每次间隔一秒的尝试。一次丢包远远不够。
这个动作之所以可以辩护,不是因为第八次沉默比第一次更懂故障原因,而是因为操作环境已经声明:在这种点到点关系里,长时间失去邻居沟通本身就不可接受。关闭端口可以阻止环路继续扩散,也可以避免流量持续落入黑洞。它牺牲容量,换取边界更清楚的失效方式。
端口被停仍不是现场诊断。errdisable 解释状态机为什么行动,不会告诉工程师最终会找到断裂的哪根纤芯、哪只光模块、哪块 ASIC、哪个进程或哪项远端配置。把保护动作写成“UDLD 证明了单向故障”,会把政策结论伪装成物理证据。
时间竞赛必须进入事故记录
UDLD 的计时器不是拓扑里的唯一时钟。STP 或 RSTP 可能在邻居保持期与激进重试期间改变端口角色。Cisco 资料明确警告,用经典 STP 的固定时间估算,不能保证 UDLD 一定早于 RSTP 转发变化采取动作。平台、版本、链路类型、拓扑、配置与故障到达时刻都会改变结果。
一份可复核的事故记录应分别保存:物理载波变化、最后一份有效 hello、缓存到期、重同步探测、端口停用、STP/RSTP 角色变化、备用路径接管以及应用恢复。“UDLD 抓到了”把这些层压得太扁;“业务恢复了”又是更晚的一张收据。
RFC 5171 最有价值的治理问题不是激进模式是否普遍优于普通模式,而是谁有权规定何时让未知继续存在,何时让有限时长的未知触发 fail-closed。沉默没有改变,改变的是组织愿意承担的风险。
来源
- https://www.rfc-editor.org/rfc/rfc5171.html
- https://www.rfc-editor.org/rfc/rfc5171.txt
- https://www.rfc-editor.org/info/rfc5171
- https://datatracker.ietf.org/doc/rfc5171/
- https://datatracker.ietf.org/doc/rfc5171/history/
- https://datatracker.ietf.org/doc/rfc5171/references/
- https://www.rfc-editor.org/errata/rfc5171
- https://www.rfc-editor.org/rfc/rfc3932.html
- https://www.rfc-editor.org/rfc/rfc5880.html
- https://www.rfc-editor.org/rfc/rfc5881.html
- https://www.rfc-editor.org/rfc/rfc7419.html
- https://www.rfc-editor.org/rfc/rfc7880.html
- https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/10591-77.html
- https://www.cisco.com/c/en/us/td/docs/switches/lan/c9000/lyr2-fwd/cdp-lldp-mac-udld/cdp-lldp-mac-udld-configuration-guide/configure-udld.html
- https://www.cisco.com/c/en/us/td/docs/routers/ncs4200/configuration/guide/lanswitch/lanswitch-ncs4200-book/lsw-udld.pdf
- https://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/24330-185.html
- https://www.cisco.com/c/en/us/td/docs/switches/lan/csbms/CBS_250_350/CLI/cbs-250-cli/udld-commands.html
- https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst6500/ios/15-4SY/config_guide/sup2T/15_4_sy_swcg_2T/udld.pdf
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
