摘要

  • RFC 7570 的 ERO Hop Attributes 是一种可选容器,类型为 35,可携带一个或多个 Hop Attributes TLV;它的作用域来自位置,而不是来自一个笼统的“路径属性”标签。
  • 子对象必须紧跟在用于识别该 hop 的 ERO 子对象,或紧跟与该 hop 关联的 label 子对象之后;属性适用于紧邻的前一个或多个 ERO 子对象。哪些前置类型有效、顺序是否重要、如何解释顺序以及能否修改,必须由定义该属性的文档规定。
  • R 位只引入 RFC 5420 的处理政策:置位时按 required 规则检查,清零时按 optional 规则检查。它不定义属性的实质含义,也不授予入口节点控制其他 hop 的权限。

机制与权限边界

入口节点可以在已经表达出的 ERO 路由步骤旁放置 Hop Attributes,请求被寻址的节点处理该属性。这是“在哪一跳”的命名机制,不是路径范围的授权机制。RFC 3209 将 ERO 描述为请求的抽象节点序列,将 RRO 描述为收集到的路由信息;RRO 不是授权通道。需要某一个中转步骤行为的服务因此可以提出逐 hop 请求,而不必把同一属性变成每个节点都必须理解的整条 LSP 要求。

类型 35 子对象为可变长度,TLV 的总内容受子对象长度限制。处理节点若不支持正在处理的 ERO Hop Attributes 子对象,应返回 Routing Error / Bad EXPLICIT_ROUTE PathErr,并将 ERO 截断至违规子对象。RFC 3209 还规定,正常处理时遇到的未知 ERO 子对象会产生 Bad Explicit Route Object;尚未遇到的未知子对象则会被转发。因此,“可选”并不意味着畸形格式可以忽略,也不意味着所有节点都必须接受它。

Attribute Flags TLV 可以装在 ERO Hop Attributes 中,但只有在该位置被定义为有效的 flag 才适用。无效 flag 静默忽略;未知 flag 应触发 Unknown Attributes Bit PathErr。这里要区分 flag 的“未知”与“无效”,也要区分 R 位的处理政策与属性自身的语义。节点仍可依据 RSVP policy-control 或 admission-control 拒绝请求;若定义 TLV 的程序允许,也可修改请求属性。作用域窄,并不等于入口拥有无限权力。

RRO 证据不是整条 LSP 的同义词

RFC 5420 的 LSP_ATTRIBUTES 或 LSP_REQUIRED_ATTRIBUTES 携带整条 LSP 属性,通常应在 RFC 5420 RRO Attributes 中报告。只在 ERO Hop Attributes 中发出的属性,通常应在 RRO Hop Attributes 中报告。后者是 RFC 7570 的 RRO 类型 35,可带已处理或附加的 Hop Attributes TLV;但节点是否必须报告合规性,要由定义该属性的文档明确。成功建立 LSP 本身不能证明可选属性按要求执行。

中转节点通常原样转发 RRO Hop Attributes,域边界却可以因保密或消息大小策略裁剪或修改 RRO 信息。较老的入口节点也可能丢弃其不认识的 RRO 信息。因此,RRO Hop Attributes 是有条件、可受策略编辑的 hop-specific 证据,不是不可篡改的证明;没有该属性定义的 RRO 报告,就没有逐 hop 的确认。RFC 7571 的 loopback 是一个受限示例:它把 OAM loopback 请求指向特定节点,并用 RRO Hop Attributes 报告状态;这说明如何应用容器,不改变 RFC 7570 的通用含义。

具体验证夹具

  1. **作用域夹具:**构造 ERO:IPv4-prefix(A) -> Label(A) -> Hop Attributes(type=35, R=clear, TLV=X) -> IPv4-prefix(B)。抓取 Path 后确认 X 只绑定紧邻的 A/label 子对象,不绑定 B 或整条 LSP。
  2. **R 位夹具:**用同一合法 TLV 分别发送 R=0 与 R=1。将结果记录为 optional 与 required 处理路径;不要把 R 位值解释成 X 的业务语义。
  3. **位置与顺序夹具:**把 type 35 放在非定义文档允许的前置类型之后,再交换两个定义要求有序的 TLV,检查节点是否拒绝或按该文档处理。不能用 RFC 7570 泛化出属性自己的合法顺序。
  4. **能力夹具:**让处理节点在已到达该子对象时不支持 type 35,验证 Routing Error / Bad EXPLICIT_ROUTE PathErr 及截断 ERO;另测尚未到达的未知 ERO 子对象是否被继续转发。
  5. **flag 夹具:**分别放入有效、定义为无效和未知的 Attribute Flags,记录无效 flag 被忽略、未知 flag 是否产生 Unknown Attributes Bit PathErr。
  6. **RRO 夹具:**分别发送整 LSP 属性与仅逐 hop 属性,检查前者进入 RFC 5420 RRO Attributes、后者进入 RRO Hop Attributes(仅在定义文档要求报告时把它当合规证据)。再在域边界裁剪 RRO,验证观察者只能看到裁剪后的记录。
  7. **负向夹具:**在 R 清零且无定义的 RRO 报告时,不把成功建立视为执行证明;在 R 置位且节点不支持或子对象畸形时,预期建立可能失败。

来源

资料未建立任何供应商或运营商实施情况,也未提供部署普及率、失败率、消息增长测量或客户影响数据。冻结的勘误页面仅作为快照保存,不据此提出更正断言。