摘要
- RFC 9723 复用 IPv6 单播 AFI/SAFI 2/1 和 Color Extended Community,传播带意图的 SRv6 locator 前缀;SRv6 Service SID 通过对这些彩色前缀做最长匹配而被引向域内路径。
- 看见颜色只证明一项控制面声明。它不证明每个 AS 使用同一版意图词典、不证明路由已进入每台设备的 FIB、不证明预期前缀赢得匹配,也不证明时延、隔离或可用性目标已经实现。
- 可审计的服务结论必须连接颜色语义、locator 分配、BGP 传播、每域
(下一跳, 颜色)解析、RIB/FIB、实际匹配、包路径、服务测量以及反向撤销。
最容易被忽略的是中间那个 AS
设想一项跨三个 AS 的企业服务。源端 PE 为“低时延”业务分配了一个位于彩色 locator 下的 SRv6 Service SID。第一个 AS 的路由表显示颜色 C1,第三个 AS 的收集器也看到 C1。两端都绿了。
但第二个 AS 尚未支持 CPR。它的边界路由器忽略 Color Extended Community,把下一跳解析到尽力而为的域内路径,同时继续向下游传播彩色前缀。这正是 RFC 9723 为增量部署规定的兼容行为。颜色完整地穿过了控制面,意图却没有完整地穿过数据面。
问题不在协议“失灵”,而在证据被错误合并。两端关于颜色的记录可以同时为真,端到端低时延结论仍然没有成立。运营者必须追问:谁负责解释颜色,谁把它解析为路径,谁证明路径进入硬件,谁证明包真的走过,最后又由谁承担服务承诺。
RFC Editor 状态页与 IETF Datatracker显示,RFC 9723 于 2025 年 5 月发布,类别为 Informational,并非 Internet Standards Track specification。勘误查询是规范状态记录,不是实现合格证。
用地址层级承载意图
RFC 9723 没有另造 BGP 地址族。它复用 RFC 2545 所描述的 IPv6 单播跨域传播基础,即 AFI/SAFI 2/1,并携带 RFC 9012 中既有的 Color Extended Community。IANA BGP Extended Communities 注册表保存公共分配面;RFC 9723 本身没有新的 IANA action。
一个 SRv6 PE 可以把 base locator 切分成更具体的 sub-locator,每个子前缀关联一种颜色与意图,例如低时延或高带宽。PE 传播带颜色的具体前缀,也可以同时传播不带颜色的覆盖性 base locator。
某项服务的 Service SID 被分配在相应彩色 locator 之下,服务路由按 RFC 9252 发布。在 RFC 9723 使用的 Option C 情形中,服务路由的下一跳保持原始 PE。意图已经体现在 SID 所属的 locator 结构里,因此服务路由不必再次带 Color Extended Community。
入口 PE 把 Service SID 放进外层 IPv6 目的地址。若相应 CPR route 已经接收并安装,路由器就对 Service SID 与彩色前缀执行最长前缀匹配,得到指向域内 color-aware path 的下一跳;每个跨域边界重复这一过程。它的效率来自普通 IP 转发:无需为整条跨域路径另加专用传输标签或 SID。
风险也来自同一处。业务意图不是在服务路由上再次声明,而是由四项关系推导出来:Service SID、覆盖它的前缀、当时赢得最长匹配的那条路由、该路由当时携带的颜色。任何过期或意外的更具体路由,都能在不改变 Service SID 的情况下改变实际结果。
颜色词典必须有负责人和版本
RFC 的普通情形假设同一受信域内各 AS 对颜色含义保持一致;特殊情形允许边界节点根据 color-mapping policy,把一个域的颜色改写成另一个域代表同一意图的颜色。
两种情形都不会自证。BGP 可以传播 32 位值,却不会认证“低时延”的业务含义、阈值、测量窗口、批准者与生效时间。即使 BGP 会话完成身份和完整性保护,语义协议仍位于线协议之外。
因此颜色词典本身就是受治理的运行资产。每条记录至少应包括:颜色值、自然语言意图、可测目标、适用 AS 与服务范围、版本、所有者、批准人、生效与废止时间、允许的跨域映射。每台边界路由器的策略要能指回它连接的两个确切版本。没有这些字段的 route receipt 只能证明“带来了一个数字”。
RFC 9723 把同一彩色前缀同时出现不同 Color Extended Community 视为 misconfiguration。遇到这种冲突,系统不应偷偷挑一个继续给 SLA 打绿灯。它应保存两份观察、冻结自动保证、定位各自的来源和策略版本,并记录最终由谁解除冲突。
(N,C) 只是交给本地系统的一道题
边界节点收到 CPR route 后,可以用 (N,C)——BGP next hop 与颜色——解析域内 color-aware path。可选机制包括 SRv6 Policy、SR-MPLS Policy、SRv6 Flex-Algo、SR-MPLS Flex-Algo 或 RSVP-TE。详细解析政策由各域自行决定。
同一颜色由此可能在三个 AS 触发三种完全不同的机器。第一个域把 C1 绑定到显式 SR Policy,第二个域用 Flex-Algo,第三个域只在候选路径有效时采用,否则回退。RFC 9256说明 SR Policy 自己还有 candidate path、validity、preference、active path 和 fallback 状态。颜色是路径选择的输入,不是选择结果。
每个域都应保留收到的 prefix、next hop 与 color,映射政策版本,合格的路径机制,被选中的 candidate 及原因,validity/liveness,回退规则和最终编程的下一跳。控制器的 intended state 不能冒充路由器 readback。
最长匹配能保住可达性,也能悄悄抹掉意图
base locator 覆盖彩色 sub-locator。为让更具体的彩色前缀抵达入口 PE,RFC 9723 要求携带 Color Extended Community 的 IPv6 单播路由禁用聚合。
典型误判发生在 /68 彩色前缀撤走而 /64 无色 base locator 仍然存在时。Service SID 依旧可达,一个简单 ping 甚至可能成功。但最长匹配已经变了,包走的也不再是原本的低时延路径。这里恢复的是连接,不是服务意图。
反方向同样危险:一条意外的更具体路由可能遮蔽授权的彩色前缀。因此 FIB 审计不能只问“预期前缀在不在”,而要对代表性 Service SID 计算当时真正获胜的最长匹配,并保存整条覆盖前缀链、路由年龄和撤销历史。正向 canary 要证明该走的处理,负向 canary 要证明不该走的泄漏没有发生。
RIB 接收仍不等于 FIB 安装。RFC 9723 明确要求边界节点与入口 PE 把彩色 locator 前缀装入 RIB 和 FIB。政策拒绝、递归解析失败、硬件容量、编程延迟或线卡陈旧,都可能让控制面看见路由而包行为不变。
增量部署也是一条明确的降级路径
不支持 CPR 的 transit AS 会忽略颜色,按 best effort 解析下一跳,却仍把彩色路由向下游传播。兼容性和可达性因此得到保存,同时端到端保证出现一个定位清楚的断点。
运营记录应建立 capability path:哪些 AS 与边界支持 CPR,哪些接收并解析颜色,哪些忽略颜色,fallback 从何处开始,服务负责人是否授权这次降级。下游重新看见 C1,不能推断上游所有域都按 C1 转发。
多条 EBGP 路径还引入本地政策。路由器可综合链路属性和 CPR route 属性,选择更符合意图的 best path;RFC 9723 把详细政策留在范围外,同时指出多 AS 政策需要一致。这是一项需要证明的运维要求,不是一条自动成立的事实。
“受信域”不是测量结果
RFC 9723 把机制限定在同一运营者的多个 AS,或存在运营信任模型的不同运营者 AS。RFC 8402描述 SR trusted domain,也要求 SID 来自受信来源、冲突有确定性处置,并指出必须用 OAM 验证路径有效性、存活与性能;默认交付仍是 best effort。
“受信”要拆成可核查控制:BGP peer 授权、路由过滤、origin/next-hop policy、颜色词典保管、控制器写权限、配置复核、RIB/FIB readback 和数据面观察。把多个 AS 叫作一个 trusted domain,不能证明它们运行同一版本,也不能排除域内攻击者。
RFC 9723 还指出,颜色与意图的映射对域内 BGP 节点可见,on-path attacker 可能识别特定意图的流量。RFC 4271及 RFC 4272保留 BGP 本身的安全边界;RFC 8754与 RFC 8986则界定 SRv6 数据面和 endpoint behavior。
对 RFC 9602 分配的 5f00::/16,RFC 9723 描述了参与方共同约定的过滤方式:默认丢弃大范围,只放行实际使用的彩色前缀。协议中的共同约定仍需落地为过滤配置、例外列表、硬件安装和包结果四份证据。
最终结论属于服务负责人
低时延意图要用带时钟与测点 provenance 的单向或往返时延,并同时看损失、抖动、可用性与约定窗口。隔离需要证明实际转发和资源边界,而不是不同颜色。带宽需要区分路径容量、预留、拥塞与交付吞吐。
包证据必须能与控制状态关联:Service SID、获胜前缀、FIB next hop、各域入口与出口、封装或 segment list、观察时间和政策版本。路由变化后的测试包不能倒推变化前的状态,健康平均值也可能掩盖一个 legacy AS 的长尾降级。
撤销应沿相反方向闭环。彩色 locator 退休时,保存 origin withdrawal、各下游消失、控制器失效、FIB 删除、fallback 激活以及旧处理上的最后一包。base locator 保住可达性时,更应显式把服务从“保证”降为“仅可达”。
这正是 Lu Heng Running-Code Primacy 的适用处:发布和控制面符号不能压过运行中的网络。他的 Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption让线上的共同承载保持薄,同时要求每个参与方对实际采用负责。On Reality Layers进一步把颜色这种协调事实,与安装路径和测量结果这种可执行事实分开。
RFC 9723 让意图更容易携带,并没有让意图自动成为证据。真正的运营成果不是 C1 穿过三个 AS,而是能明确指出:它在哪里被解释、在哪里被忽略、哪条前缀获胜、哪条路径运行、服务最终交付了什么。
来源
主要规范来源:RFC 9723、RFC Editor 状态页、IETF Datatracker、RFC 9723 勘误查询、RFC 2545、RFC 4271、RFC 4272、RFC 8402、RFC 8754、RFC 8986、RFC 9012、RFC 9252、RFC 9256、RFC 9602与 IANA BGP Extended Communities 注册表。
署名分析框架:Running-Code Primacy、Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption与 On Reality Layers。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
