摘要

  • ASPA 用客户 AS 签名的提供商集合验证 AS_PATH 的结构,但上行或下行算法由验证方对邻居关系的本地判断决定。
  • 第 28 版建议把 Unknown 与 Valid 置于同一偏好层,把 Invalid 排除于选路但留在 Adj-RIB-In;这些标签均不证明路由已入 FIB 或流量已经送达。

算法之前,还有一个方向判断

假设同样的压缩 AS_PATH 出现在两台边界路由器上。第一台把邻居视为客户,使用上行算法,只允许从起源方向连续上升。第二台把邻居视为提供商,使用下行算法,允许路径先上升再下降。两台设备可以取得不同状态,而且都正确执行了各自选择的程序。

差异不在 ASPA 对象。差异来自本地关系输入。RFC 9234 的 BGP Role 能在 OPEN 中交叉核对角色,第 28 版也建议用它自动选择程序。但 Role 仍是参与双方的配置,不是 ASPA 从全球视角替运营商定义的商业关系。

该草案发布于 2026 年 8 月 24 日,2027 年 2 月 25 日到期。Datatracker 将其列为 SIDROPS 工作组活跃草案,状态为 WG Consensus: Waiting for Write-Up,IESG 状态仍是 I-D Exists。它不是 RFC、最终批准或部署成效报告。

客户签署的是有限关系声明

配套 ASPA Profile 允许客户 AS 标识持有人签署完整提供商列表。非透明路由服务器若把自身 ASN 放进 AS_PATH,也应列入。RPKI 链证明有权控制客户 ASN 的一方签了这份内容,不证明合同、会话或流量当下存在。

每个客户最好只有一个 ASPA。若出现多个密码学有效对象,验证使用它们的提供商并集。这能降低过渡期间遗漏提供商的风险,也会扩大可被接受的集合。密码学有效与业务准确必须分别核验。

AS0 ASPA 表示该 AS 没有中转提供商,也不是非透明路由服务器的客户。它并不表示 AS 没有邻接、没有发布前缀,或任何目的地一定可达。

三值函数保留“未知”

对有序对 (x, y),Provider+ 表示 y 出现在客户 x 的有效集合中;Not Provider+ 表示集合存在但不含 y;No Attestation 表示没有取到可用对象。

后两者不能合并。前者是对完整声明的矛盾,后者是证据空缺。若把空缺当否定,尚未发布 ASPA 的网络会让大量正常路径被错误拒绝。

算法先重建四字节 ASN 的 AS_PATH,再压缩相邻重复 ASN。它用三值结果计算客户到提供商“上坡”和“下坡”的最小、最大长度。最大范围仍覆盖不了路径时为 Invalid;最大可以、最小因缺失对象无法确认时为 Unknown;最小已足以覆盖时为 Valid。

这只证明“在当前对象快照与本地角色下,该路径形状通过何种边界”。它没有重放 UPDATE 的真实传播,也不能证明每个 AS 都诚实追加了路径。

Complex 关系暴露模型边界

两家网络可能对一组前缀是客户—提供商,对另一组是对等互联。RFC 9234 称之为 Complex。第 28 版优先建议分会话,或按前缀选择算法。若均不可行,可使用更宽容的下行程序,避免误报。

这是可用性选择,而非关系事实被简化。审计记录必须包括邻居、Role、AFI/SAFI、前缀例外和最终选用的算法。只保存 Valid、Unknown、Invalid 会丢掉决定答案的输入。

ASPA 之前还需执行普通 BGP 检查。AS_SET 按 RFC 9774 走 treat-as-withdraw;最近加入的 ASN 通常应与邻居 ASN 匹配,透明路由服务器另有例外。一个笼统的“ASPA Invalid”告警若不保存原因,会把格式错误、邻居不符与提供商矛盾混成一件事。

同一偏好,不是同一证据

第 28 版建议让 Unknown 与 Valid 获得同一偏好层级。目的在于不因覆盖不足损害连通性。Unknown 的语义并未改变:仍是缺少足够声明,无法把可能性收紧为肯定。

Invalid 应当不具选路资格,但必须留在 Adj-RIB-In,以便新 ASPA 到来时重新计算。对象发布、依赖方取回、缓存传输和路由器导入都可能在没有新 BGP UPDATE 的情况下改变结果。

偏好之后还有 BGP 选路;选路之后还有 Loc-RIB;再之后才是 FIB 编程、下一跳和数据包。Valid 不证明这些步骤发生,Unknown 被同等对待也不证明两条路径最终结果相同。

一份并集同时服务 IPv4 与 IPv6

U-SPAS 不区分 IPv4 与 IPv6 单播。若某客户只在 IPv4 使用某提供商,这份授权也会让 IPv6 检查同样宽容。草案把它视为简化注册、避免错误 Invalid 的合理折衷。

因此 Valid 不能单独证明该关系适用于当前地址族。会话清单、合同范围与设备配置需要提供额外收据。数据模型明确没有表达的事实,不能从绿色状态里反推出来。

错误也有方向性:多列一个提供商会削弱检测;少列真实提供商则可能拒绝合法路由。应急提供商应提前写入,CA 迁移期间两边对象应保持一致,原因都在于对象传播与路由传播的时钟不同。

Invalid 仍不是责任判决

设备应记录产生 Not Provider+ 的跳点,但草案明确说,记录者未必能确定造成泄漏的 AS。第一个可见矛盾可能源于更早的错误、过期对象或迁移残留。

此外,提供商对客户路径的某些操纵可能逃过 ASPA;增加或删除 AS prepend 重复也不在检测范围内。ROA 证明前缀起源授权,BGPsec 证明签名传播链,OTC 约束传播方向。它们与 ASPA 互补,不是可互换的“路由安全分数”。

完整证据链应保存草案版本、对象内容与哈希、仓库快照、验证时间、路由器导入版本、邻居角色、原始与重建 AS_PATH、每个有序对结果、坡段边界、最终状态、策略动作、Loc-RIB/FIB 以及流量结果。

按 Lu Heng 的运行代码原则,公开协调记录只对自身有限声明具有权威。路由器执行的本地规则决定本地互操作后果,线上观测才描述真实服务。三者不能互相借用结论。

来源不能证明什么

冻结来源证明草案提出了上述对象、算法、策略和限制。它们不证明任何具体实现符合规范,不证明全球部署率,也不证明某次泄漏被拦截。本文分析控制边界,不虚构生产事件。

来源