摘要
- RFC 9714 用 Extension Label、Flow-ID Label Indicator 和 Flow-ID Label 三个栈项承载 MPLS 交替标记;Flow-ID、颜色位和测量类型位让节点观察选定流。
- Flow-ID 本身不负责转发,但它改变了标签栈,可能改变 ECMP 哈希结果。测量结果因此可能准确描述“加标签后的路径”,而不是未加标签的生产路径。
- 倒数第二跳弹出、标签可读深度、节点能力、业务与传输的独立 Flow-ID 以及管理域边界,会继续决定真正进入观察范围的节点。计数器只有在这些范围证据齐全后才能获得决策权。
运维人员选择一条生产流,打开测量,收到了完整的计数器。因为标记跟随真实流量,而不是另发一组探针,这个结果看起来天然更接近现实。问题在标签插入之后才出现:这些数据包是否还走原来的等价多路径分支?
RFC 9714 对此没有含糊。该标准轨文档于 2025 年 2 月发布,为基于流的 MPLS 丢包、时延与抖动测量定义交替标记封装。它明确指出,在 ECMP 条件下,引入 Flow-ID Label 可能导致流走上不同路径。观察者进入数据包时,可能改变被观察对象。
统计本身不一定错误。路由器可以把可见标签栈字段纳入哈希;栈发生变化,哈希输入也可能变化。计数器会忠实记录所有携带新结构的数据包。真正缺失的是指称凭据:若没有证明路径得到保持,计数器不能自动代表未标记流量所经历的链路、队列和故障。
标签不参与标签交换,不代表转发看不见它
RFC 9714 在 MPLS 栈中放入三个条目。值为 15 的 Extension Label 与值为 18 的 Flow-ID Label Indicator,按照 RFC 9017 的术语组成 Composite Special Purpose Label;其后是 Flow-ID Label。Flow-ID 在管理域内标识一条流,TTL 必须为零,因为它不是转发标签。
“不是转发标签”说明它不以普通标签的方式指示下一跳,却没有承诺所有 ECMP 实现都忽略它。RFC 9714 把风险与 RFC 8957 的 Synonymous Flow Label 问题相联系,并给出两种缓解思路:按照 RFC 6790 使用 Entropy Label,或者给所有流都加 Flow-ID Label。
第一种方式提供专门的负载均衡熵输入,第二种方式消除被测流与参照流在标签结构上的不对称。但规范中的“可以选择”不是运行结果。仍需验证设备实际解析了哪些层、哈希策略如何配置、加标签前后选择了哪个成员,以及策略变化后旧凭据是否仍然成立。
| 凭据 | 能得出的有限结论 |
|---|---|
| 选定流特征 | 操作员或分类器定义了目标集合 |
| 分配 Flow-ID | 控制器给出管理域范围的标识符 |
| 插入 XL/FLI/FL | 数据包携带测量结构 |
| 观察到 L/D/T 位 | 编码了颜色、时延选择和测量类型 |
| 证明沿途能力 | 预期节点能够识别该结构 |
| 证明可读深度 | 预期节点能够触达它所在栈位 |
| 证明 ECMP 等价 | 测量没有移动目标集合,或移动被明确接受 |
| 导出计数器与时间戳 | 观察结果到达采集端 |
| 完成块对账 | 两端比较同一流、颜色、区间与方向 |
| 观察业务影响 | 独立证据把范围化测量连接到运行结果 |
第三项不能代替第七项,第八项也不能代替第十项。把它们压缩成一个“已测量”状态,会在数字用于路由切换、供应商归责或客户承诺时抹掉最关键的来历。
同一个字段可以指向两种观察范围
由于 Flow-ID Label 不用于转发,它的 Traffic Class 三个位被重新定义。L 位切换丢包测量颜色,D 位选择时延或抖动测量数据包,T 位区分端到端与逐跳测量。
T 为一时,只有入口和出口是处理节点;T 为零时,LSP 沿途所有 MPLS 节点都是处理节点。这是对预期角色的声明,不是每个节点都真正读到标签的证明。节点还需要 Flow-ID Label Capability,并且标签必须落在它的 Flow-ID Readable Label Depth 之内。
RFC 9714 仿照 RFC 8662 的熵标签能力定义 FLC 与 FRLD。入口必须把每个 Flow-ID Label 放在暴露对象具备能力的位置,并应满足所有需要读取它的沿途节点中的最小可读深度。入口如何获知全部节点的 FLC 和 FRLD,被明确留在规范范围之外。
这不是可以用默认假设填满的空白,而是一项本地控制责任。Segment Routing 栈很深时,入口可能需要在 SID 标签之间插入 Flow-ID Label,甚至在不同深度重复同一个 Flow-ID。规范允许这种做法,也提醒可能需要复杂规划。采集端收到部分节点的记录,不能据此推断更深位置或能力较弱的节点也被观察。
出口节点可能在最后一跳前消失
倒数第二跳弹出又建立了一条范围边界。在 RFC 3031 所描述的普通 MPLS 操作中,倒数第二个标签交换路由器可以在到达出口前弹出顶层标签。RFC 9714 要求:处理节点如果弹出测量结构之前的转发标签,也必须同时弹出 Extension Label、指示标签与 Flow-ID Label。
若倒数第二跳执行这一动作,出口就不再处于性能测量范围内。因此 RFC 9714 说,除非已知倒数第二跳支持该规范,而且排除出口是可接受的,否则应关闭 PHP。
“可接受”必须由测量目的决定。计数器可能准确表示“入口至倒数第二跳”,却在界面上被写成“入口至业务出口”。两者之差可能正包含事故团队想查的出口队列、接口或解封装行为。配置时应命名范围,导出记录应保留范围,决策界面也应展示范围。
栈规则本身很严格。XL 与 FLI 复制前一个标签的 TC 与 TTL,Bottom-of-Stack 位必须为零;处理节点遇到 BoS 为一的 XL 或 FLI 必须丢包,并可以记录错误。Flow-ID 可位于中间或栈底,不能在栈顶,也可以多次出现。规则保证可解析性,却不会证明预期出口仍然在观察边界内。
传输流与业务流是两套独立身份
一份 MPLS 数据包可以只携带传输 Flow-ID,只携带业务 Flow-ID,或同时携带两者。两者都启用时,RFC 9714 要求值不同。它们彼此独立:数据包可以属于同一个 VPN 流却经过不同 LSP,也可以共享 LSP 流却属于不同 VPN 流。
控制器策略决定生成一个还是两个标识符。手工触发时,操作员提供五元组、DSCP 等特征;自动触发时,入口识别流,并依据 RFC 7011 通过 IPFIX 向控制器导出特征,之后控制器分配并下发 Flow-ID。
每一步都可能单独正确,而整体映射仍然答错后来的业务问题。唯一 Flow-ID 只证明它在当时的管理域内没有碰撞,不证明分类覆盖所有目标数据包,也不证明采集端没有混淆业务层与传输层。所谓一一映射是一份协调契约,不是数据包天然携带的身份。
RFC 8372 给出更广泛的 MPLS 流识别背景。RFC 9714 要求控制器不得使用 0 至 15 的保留标签值。IANA MPLS 标签注册表记录指示值的协调结果。注册表能证明一个数字被分配,不能证明某台设备支持、配置或观察过它。
颜色数据包只是观察链的起点
RFC 9341 标准化的交替标记把流量分成颜色交替的块,从而比较不同观察点的计数。标记随真实数据包行进,确实能提供强大的被动或混合观察。但块比较仍要求流身份、方向、颜色相位、时间区间与处理范围完全对应。
RFC 9714 要求处理节点把 Flow-ID、块计数器、时间戳等数据导出到外部 NMS 或控制器,却把具体导出协议留在范围之外。这让封装保持模块化,也意味着标签格式不会自动提供采集到达、时钟质量、记录完整、保留成功或对账完成的凭据。
正在演进的交替标记部署草案可以补充部署讨论,但其 work-in-progress 状态必须保留。无论草案还是 RFC,都没有证明某个命名网络已经部署,也没有证明一个计数差能识别原因。差值只说明两个观察点之间出现差异,不能单独区分拥塞、策略丢弃、链路损失、解析失败、导出丢失或范围错配。
管理域是 Flow-ID 身份的一部分
Flow-ID 唯一性只在一个管理域、一个时间点成立。使用同一个 FL 进行多域测量不在 RFC 9714 范围内;Flow-ID 不得被信令或传播到域外。边界节点必须过滤向外发送、携带 FLI 的数据包,并丢弃从外部进入的同类数据包,以免发生标识冲突。
因此,裸标签值不具备全球意义。跨域聚合平台应保留分配域、配置版本和有效期,而不是把同一数字视为同一流。域坐标丢失后,历史计数即使还在,也可能无法重建其对象。
规范的文本版、XML 版、RFC Editor 记录、勘误页和 IETF 历史证明文档状态与来历,并不证明任何部署路径、硬件深度、哈希策略或客户结果。
Heng Lu 的运行代码原则把问题落到可执行链:哪一包被分类,插入了什么标签,最终走哪条路,哪些节点读到它,哪些计数真正到达?最小初始规范提供互操作底线,本地的选路控制与观察责任仍归部署者。现实层次的区分则防止注册表、标记包、计数差和业务结论被压缩成同一个事实。
RFC 9714 的价值恰恰在于它承认测量会扰动对象。正确回应不是拒绝测量,而是保存加标签前后的路径与范围,让结果始终有一个真实可追溯的主语。
来源
- https://www.rfc-editor.org/rfc/rfc9714.html
- https://www.rfc-editor.org/rfc/rfc9714.txt
- https://www.rfc-editor.org/rfc/rfc9714.xml
- https://www.rfc-editor.org/info/rfc9714/
- https://www.rfc-editor.org/errata/rfc9714
- https://datatracker.ietf.org/doc/rfc9714/history/
- https://www.rfc-editor.org/rfc/rfc9341.html
- https://www.rfc-editor.org/rfc/rfc9017.html
- https://www.rfc-editor.org/rfc/rfc3031.html
- https://www.rfc-editor.org/rfc/rfc3032.html
- https://www.rfc-editor.org/rfc/rfc6790.html
- https://www.rfc-editor.org/rfc/rfc8662.html
- https://www.rfc-editor.org/rfc/rfc8957.html
- https://www.rfc-editor.org/rfc/rfc8372.html
- https://www.rfc-editor.org/rfc/rfc7011.html
- https://www.iana.org/assignments/mpls-label-values/
- https://datatracker.ietf.org/doc/draft-ietf-ippm-alt-mark-deployment/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- 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/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
