摘要

  • XRO(Exclude Route Object)约束整条路径;EXRS(Explicit Exclusion Route Subobject)嵌入 ERO,只约束该显式路由片段。两者都表达负向路径权力,而不是完整路线。
  • XRO 中清除 L 位表示 MUST exclude:资源不得被引入;设置 L 位表示 SHOULD avoid:实现可依据本地选路政策仍然经过该资源。
  • 多样性是计算结果和运行验证的对象,不是某个标志携带的保证。

先分清三种权力

RFC 3209 的 ERO 用于在 RSVP-TE Path 中包含抽象节点。RFC 4874 增加 XRO,使请求方不必在入口处算出完整路线,也能表达必须避开的资源。XRO 可描述 IPv4/IPv6 前缀、未编号接口、自治系统和共享风险链路组;前缀与接口形式可以表达接口、节点或 SRLG 属性。XRO 的作用范围是整条路径。EXRS 位于 ERO 内,作用范围则是被它包围的那一段,因此“全路径不要碰”和“这一段不要碰”不能混为一谈。

计算节点在选择下一跳或扩展松散 ERO 时,不得引入强制排除覆盖的资源;对仅要求避免的资源,应尽量减少使用。若 XRO 的强制排除与 ERO 的包含发生矛盾,强制排除优先,Path 必须被拒绝,并返回规定的 Routing Problem 错误。这不是让 XRO 直接指定另一条路线:它只改变候选集合。若所有转发选择都被排除,节点应返回说明路径被 Exclude Route 阻断的 PathErr。

复杂度、边界与可见性

实现或策略认为 XRO 过于复杂时,也可以用特定 PathErr 拒绝。不了解 XRO 的节点可能因为 XRO 的类号而继续转发而不检查;不支持的子对象或属性也可能被忽略。于是,不能把“消息继续前进”误读为“约束已经执行”。计算节点可借助 Record Route 观察实际路径是否触犯排除项,并尝试重新计算;Record Route 是验证和发现偏差的手段,不是排除执行的替代品。

排除可在不同计算域之间被加入、移除,或因域内已经解析、范围改变而变得无关。RFC 8390 为 XRO 与 EXRS 增加多样性子对象,可引用客户端、PCE 或网络分配的参考 LSP/路径标识符;请求方无需掌握参考路径的全部资源。它区分强制多样性和建议性多样性,对不一致或不支持的标识符规定错误行为,并要求特定多样性子对象跨边界保留,即使安全策略会删除普通 ERO 信息。标识符减少拓扑披露和请求方知识需求的潜力,是 RFC 语义可推出的分析,不是任何部署成效的证明。

RFC 6001 将 RFC 4874 扩展到多层、多区域 GMPLS,加入交换能力和标签排除,同时保留“强制排除”与“应避免”的差别。它使多层路径的约束更具体,也增加了边界实现和兼容性成本。RFC 4874 的冻结 RFC Editor 勘误记录在本简报中只作为现行记录引用;这里不作超出该记录状态的修正主张。

谁受益,谁承担代价

发起方拥有对命名资源的否决权;路径计算节点仍拥有从剩余资源中选哪条路线、或报告无路可走的权力;下游实现和跨域边界则决定支持、保留、解析和验证的实际行为。需要链路、节点、SRLG 或参考路径多样性的业务是潜在受益者,但规范本身不证明任何现场路径确实物理分离。

Elias Ward 分析:强制排除把偏好变成 fail-closed 约束,缩小可行集合并可能把原本可建立的会话变成设置失败;建议避免保留可用性,却允许本地政策仍经过不希望使用的资源。约束还会增加信令状态、拓扑披露压力、跨边界协商和兼容性成本。无约束时,计算结果可能复用不想复用的资源;只给建议时,资源仍可能被使用;过度约束时,则可能没有合规路径。三种反事实都不等于对现场结果的断言。

验证夹具与操作决策路径

以下是应在实验或运行审计中逐项验证的具体夹具,而不是对现网的事实声称:

  1. 接口夹具:XRO 清除 L 位,排除一个未编号接口;检查计算节点的下一跳和 Record Route,确认该接口未出现。
  2. 节点/SRLG 夹具:分别排除 IPv4/IPv6 前缀代表的节点、一个 SRLG 和一个自治系统;核对候选路径、PathErr 及跨域转发后的保留状态。
  3. 矛盾夹具:让 ERO 包含一个同时被 XRO 强制排除的资源;确认 Path 被拒绝并出现 Routing Problem,而不是静默改选。
  4. 空集合夹具:排除所有可用下一跳;确认返回“由 Exclude Route 阻断”的 PathErr。
  5. 建议夹具:设置 L 位为 SHOULD avoid;观察本地政策是否仍选中该资源,并将结果与 MUST exclude 分开记录。
  6. 能力夹具:发送过复杂 XRO、未知子对象、RFC 6001 的交换能力/标签排除,以及 RFC 8390 的不一致或不支持多样性标识符;记录明确错误、忽略或透传行为。
  7. 边界夹具:让普通 ERO 信息因安全策略被删除,同时检查 RFC 8390 指定的多样性子对象是否被保留,并用 Record Route 验证最终路径。

操作员应先确认请求方要的是整条路径还是片段范围,再决定强制排除或建议避免;随后核验对端、PCE 和跨域节点的子对象支持,预估候选集合和拓扑披露,建立上述夹具;最后检查 PathErr、Record Route、参考路径解析和实际资源交集。若目标是多样性,必须在信令后验证实际路径,而不能把 diversity 标志当作承诺。未知项仍包括现场拓扑、可行性、厂商行为、部署普及率、建立时延、失败率和客户影响。

来源