摘要
- RFC 3478 允许 MPLS 转发表项和 label-FEC 绑定在 LDP 重启后以陈旧状态存留,让控制面有时间重建其意义。
- 重连、存活、恢复与保持计时器,加上标签不得过早复用的规则,把业务连续性限定为一段借用期,而不是恢复完成的证明。
“优雅重启”听起来像一种无损回归:系统短暂停下,然后完整恢复。RFC 3478 的真实交易更谨慎。LDP 控制组件可以失去并重建自己的状态,而 MPLS 转发面继续按照重启前安装的规则送包。数据平面活着,不代表解释它的控制叙事仍然完整。
规范刻意把保存要求压到最低。能够在 LDP 重启期间保留转发状态的 LSR,不必同时保留全部 LDP 状态。存留下来的可以只是“入标签到出标签与下一跳”的映射,或在入口处“FEC 到出标签与下一跳”的映射。这足以避免立即扰动既有 LSP,却不足以证明控制面已经知道每个标签为什么存在。
重启后,保存的转发表项被标为 stale。新的 Label Mapping 报文到达时,LSR 通过出标签与从邻居地址报文得知的下一跳寻找匹配;处在倒数第二跳、使用 Implicit NULL 或作为出口时,还要处理 label pop 与 FEC 等额外条件。只有重建的协议信息完成所需连接,表项才不再陈旧。
另一套可选程序甚至允许同一 FEC 在恢复期短暂拥有两个本地标签绑定:一个从重启前保留,一个在重启后按普通程序新建。两者使用相同的出标签和下一跳,旧绑定在重启结束时删除。因此,连续转发与“控制面在每一刻只有一份真相”并不是同一件事。
整套机制由时间控制。LDP Initialization 中的 FT Session TLV 携带 FT Reconnect Timeout 与 Recovery Time。前者告诉邻居,在 LDP 通信失败后,希望对方把相关旧状态保留多久;后者告诉邻居,重启 LSR 愿意把自己实际保留下来的 MPLS 转发状态维持多久。
零值不是模糊的缺省。FT Reconnect Timeout 为零,表示发送方不会在自己的重启中保留转发状态,但它仍可帮助有保存能力的邻居。Recovery Time 为零,则表示重启方没有可用的旧转发状态;邻居此时应立即删除保留的 stale label-FEC 绑定,而不能把零解释成无限等待。
本地策略会缩短对端提出的窗口。会话尚未重建时,帮助方只在“对端 FT Reconnect Timeout”和本地 Neighbor Liveness Timer 两者较小值内保留陈旧绑定。会话重建且 Recovery Time 非零后,进一步保留又受 Recovery Time 与本地 Maximum Recovery Time 较小值限制。重启节点自身还有 MPLS Forwarding State Holding timer,期满时仍陈旧的表项应被删除。
这些计时器并非重复设置。对端申报它需要多久,本地运营者决定最多相信多久,重启设备则决定自身旧转发状态能维持多久。真实信任窗口是多项约束的交集,而不是报文里最大的数字。
RFC 3478 建议在 Recovery Time 一半以内完成标签映射交换,但 TCP/LDP 会话重新建立不等于所有映射已经到齐。原始规范没有明确的“LIB 已完成”标志。RFC 5919 后来引入 End-of-LIB Notification,正是为了更精确地表示标签通告完成。它揭示了早期证据缺口,却不能被倒写成 2003 年线上的字段。
标签复用规则是计时器之外的安全墙。若下游释放一个标签,又在上游仍按旧意义发送时把同一数值分配给新用途,报文就可能被送到错误目的地。RFC 3478 因此要求:面对支持优雅重启的邻居,释放后的标签至少在 FT Reconnect Timeout 加 Recovery Time 之和内不得复用。需要隔离的是标签的旧语义,不只是一个号码。
安全章节进一步说明时间缝隙可以被攻击。冒充或拦截者若把 Recovery Time 改成零,可迫使邻居释放标签;相反,如果下游过早认定会话失败并复用平台级标签,而上游仍按旧关联发送,也会造成误路由。认证能降低伪造风险,但审计仍须知道双方在每个时刻相信什么。
不中断的流量是一张有价值但范围很窄的收据。它可以证明某些转发表项存活,并对那些报文仍然可用。它不能证明所有 FEC 已刷新、新 LDP 会话已重建旧 LIB,不能证明在 BGP 或 RSVP-TE 也分配标签时协议归属信息被保留,更不能证明最后一个计时器结束后旧标签仍安全。
按照 Heng Lu 笔记的现实分层,审计应先固定新旧 LDP 会话身份、TCP 断连与重连、FT TLV、对端申报值和全部本地计时器。把转发表项、LIB 绑定和协议归属分别清点。记录每条状态何时变为陈旧、由哪条 Mapping 与哪个邻居地址刷新、标签是否变化、何时删除,以及释放后的数值是否完成隔离期。
之后才能连接流量观测。零丢包曲线不是状态重建日志;绿色会话灯不是 End-of-LIB;非零 Recovery Time 是保留声明,不是硬件测量;一个仍能转发的 stale 表项,在控制证据完成刷新之前仍然是 stale。
RFC 3478 在互联网史上的意义,是把连续性建立在有纪律的怀疑上。它允许数据平面暂时活得比控制叙事更久,但没有把暂存状态包装成永久真相。旧标签是在借来的时间里继续转发,协议真正规定的是:谁能延长这段时间,谁能把它缩短,以及旧意义何时必须消失。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
