摘要

  • RFC 5376 允许跨 AS PCE 把计算任务交给更多跨域或域内 PCE,源端 PCC 未必知道这些参与者;与直接对等方建立受保护会话,并不能自动证明整条协作链都可信。
  • 运营商可以用不透明的路径段标识符代替内部跳点,但该标识符只代表一次计算承诺,不证明 LSP 已完成信令、资源已预留、流量已转发或业务已成功。
  • 隐藏拓扑之后,拥有本地 PCE 的 AS 反而必须保留验证能力:后续信令展开路径段时,应能证明它符合原先的本地计算,而不是一次不可见的替换。

看不见的计算参与者

跨域路径计算不是一个客户端访问一个全知服务器。源端的 PCC 可以把请求交给跨 AS PCE;该 PCE 又可以向别的跨 AS PCE 或域内 PCE 请求某一段结果。各个参与者掌握的拓扑、资源和政策不同,管理权也不属于同一组织。源端有时只知道自己的直接对等方,不知道后面谁贡献了哪一段。

这种结构不是缺陷。若所有参与者必须公开内部图、容量和算法,运营商就会在安全与商业上承担不必要的暴露。RFC 5376 所描绘的合作,是让每个域提供足以拼接路径的最小信息,而不是把所有域合并成一个权力中心。

但“结果能拼起来”不等于“整条链已被源端认证”。源端与第一个 PCE 之间的身份验证,只覆盖这段直接关系。第一个 PCE 对第二个 PCE 的信任,可能建立在另一套凭据、合同和策略上。文档建议形成信任链,却也承认这种链未必总能建立。系统若只记录最外层会话成功,就会抹掉真正做出局部决定的权威主体。

因此,审计记录至少要区分传输对等方、路径段计算者和资源所有者。能披露时,保留各 PCE 的贡献与版本;不能披露时,也应明确存在一个隐藏的协作边界、由哪个 AS 为该边界的结果负责,以及源端究竟不能据此声称什么。

不透明标识符是一项承诺,不是运行事实

RFC 5376 允许响应列出 AS 和 ASBR,也允许为保护内部拓扑而返回路径段标识符。这个短标识符代替域内的显式跳点,使上游能在不知道内部细节的情况下继续组合端到端路径。它是一种克制的信息接口:公开可引用的结果,保留不能公开的事实。

然而,一个键值不会因为看起来像票据就自动证明后来发生了什么。它说明某个 PCE 在某一时刻、依据某一组输入和本地政策计算出一段路径,并给这段结果分配了引用。它没有说明信令组件随后使用过该引用,也没有说明展开内容未被替换,更没有说明资源预留成功、LSP 进入工作状态或应用收到了数据。

RFC 5376 本身是 2008 年 11 月发布的 Informational 需求文档,讨论跨 AS MPLS/GMPLS 流量工程路径计算需要表达什么;它没有规定路径段在 LSP 信令中的展开机制。后来 RFC 5440 规范了 PCEP,RFC 5520 描述了用于保密的路径键,分层 PCE、有状态扩展和 TLS 又继续发展。后续机制丰富了控制面,却没有把“计算完成”改写成“业务完成”。

最稳妥的表述应是:收到了一项可归因的计算结果。任何更远的结论,都要等待相应阶段自己的证据。

隐藏路径带来了本地验真责任

当源端看不见域内跳点时,它无法独立判断后续信令是否忠实展开了原路径段。RFC 5376 因而要求一种机制,并要求相应信令予以体现,使一个 AS 能够验证信令中的路径符合其本地 PCE 计算出的那一段。

假设 AS B 的 PCE 根据带宽、保护和指定出口算出一段路径,并返回 K。几分钟后,信令系统展开 K。如果策略数据库刚被改动、实现使用了过期缓存,或中间组件偷偷换成另一条内部路由,源端看到的仍可能只是一个成功状态。只有 B 同时掌握旧承诺和新展开,能够做出真正的符合性判断。

这种验证不必泄露全部拓扑。B 可以记录 K、计算上下文、拓扑与策略版本、展开时刻和符合性结论。外部得到的是“这次展开与本地承诺一致”的窄证明,而不是所有内部链路的清单。保密和问责并不冲突;关键是把证明放在有知识、有权限的地方。

如果系统没有这一层,本来用于保护拓扑的抽象就可能变成替换风险的遮蔽物。看不见不是免审计。恰恰因为外部不能检查,内部权威必须保留可验证、可撤销、带时效的绑定。

请求进入每个 AS 后都会重新接受裁量

跨 AS 请求可以声明希望或排除的 AS、ASBR,并标记哪些跳点是强制条件、哪些只是偏好。它可以携带带宽、保护、快速重路由、互斥和 AS 多样性等要求,还要说明多样性是端到端适用,还是仅在某个 AS 内适用。请求方 AS 号码也需要携带,以便接收方执行本地政策。

这意味着统一格式并没有取消地方权力。接收 PCE 可以拒绝请求,也可以重写优先级、带宽、DS-TE 类别或保护参数。来自 MPLS 语境的约束进入 GMPLS 域时,可能需要被重新解释。字段名相同,并不保证跨过管理边界后仍有完全相同的操作含义。

一项可审计的响应必须保存这种政策来源:谁提出原值,谁接受或修改,修改依据是什么,强制条件是否仍然强制。若平台只保留最终值,后续使用者会误以为这是请求方原始意图,或者误把本地有条件承诺当作全局保证。

政策拒绝也不应被自动记成协议故障。它可能是本地资源权威正常工作的最清晰证据。认证远端 PCE 只证明它持有某个凭据,不代表它有权要求任意资源、路径或优先级。身份、权限和决定是三个不同问题。

一个累计成本不构成共同尺度

RFC 5376 允许响应携带累计的跨 AS 路径成本,同时明确把不同 AS 之间的成本归一化排除在范围之外。这一边界很容易被仪表盘掩盖。只要返回一个数字,排序系统就会倾向于把它当成可直接比较的分数。

但各域可能使用不同量纲、权重和目标。有的数值偏向链路利用率,有的体现管理偏好,有的还包含不公开的商业政策。它们可以被正确传输甚至正确相加,却仍然没有共同语义。算术成立,不代表比较成立。

按域计算也不保证全局受约束最优。宣称“最优路径”之前,需要说明目标函数、可比指标、参与域、归一化规则和未纳入的约束。否则,更诚实的说法只是:参与者按照各自当时的政策找到了一个可接受候选。

记录方式应保留每个域的原始贡献与转换过程,而不只留下总分。如果以后建立统一度量,可以重算旧记录;如果只存最终标量,原本可见的不确定性会被不可逆地抹平。

通道保护不替代语义授权

PCE 对等方需要认证身份、验证交换数据,并对敏感通信使用加密。跨越 AS 边界的密钥分发还要遵循相应的密钥管理原则。后来 PCEP over TLS 提供了更具体的保护能力。这些措施保护谁在与谁交换什么,却不会自动判断请求是否越权。

政策对象可能对传输协议本身不透明,只被原样送给真正理解它的政策组件。如果需要更强的来源、完整性或授权验证,就应由那些理解语义的组件承担。安全信封不能审查它读不懂的内容。

同样,有状态 PCE 即便拥有更多 LSP 状态,也不自动拥有所有域的处置权;分层 PCE 即便扩大了视野,也不自动让成本指标可比。能力提升必须对应新的责任和证据,不能成为扩大结论的借口。

六张收据,而不是一个绿色图标

一条可辩护的跨域路径至少需要六类相互关联、不可互相替代的记录:

  1. 请求收据:端点、请求方 AS、希望与排除的 AS/ASBR、强制标志、带宽、保护和多样性;
  2. 政策收据:作出判断的本地权威、接受值、重写内容、拒绝理由和度量解释;
  3. 计算收据:状态版本、算法上下文、可披露的参与 PCE、显式跳点或不透明路径段;
  4. 符合性收据:拥有该段的 AS 证明信令展开与本地 PCE 原计算一致;
  5. 建立收据:信令结果、资源预留、标签以及 LSP 的实际运行状态;
  6. 结果收据:转发观测、数据包到达、服务质量和应用确认。

一次成功的 PCE 响应最多覆盖前几项。后续失败不会反过来证明计算错误,早先计算成功也不能替后续失败免责。分开记录,才能把问题交给真正负责的层次,而不必把整条链重启为一个模糊的“失败”。

时间也属于证据。拓扑在 10:00 计算、10:03 发生断链,原标识符就不应被视为永久承诺。路径段的年龄、撤销状态、拓扑版本和策略版本决定它今天还能证明什么。

能确定的结论到此为止

这些标准材料能够支持架构层面的判断,不能证明某家运营商今天如何部署,也不能证明一次真实业务的性能、事故或商业结果。目录里的协议实体不是现实世界每次运行的替身。

RFC 5376 的价值在于把跨域协作拆成有限权力:源端表达需求,各域解释并治理自己的资源,PCE 提供可组合结果,信令承担建立,本地权威验证隐藏段的展开,运营层观察实际结果。任何一个参与者都不需要成为全知者。

这套设计也说明,信任不是从消息格式里自然长出来的。它来自具体身份、明确权限、局部事实与可复核记录的组合。协作链可以存在,端到端信任仍需要逐段建立和证明。