The team’s articlesHow the internet works

为什么网络运营商需要路由源授权(ROA)

换了起点网络,地址没变,路由为什么可能被拒绝?从这个场景理解 ROA 的准备、核验和维护,以及它与实际连通性的区别。

Contents

模型工坊、授权卡和一台网络设备上,有相同的蓝色圆形标记。
来源授权把地址范围与获准宣布它的网络关联起来,并不保证沿途所有环节都安全。

地址没有变,你却准备让另一个网络来宣布通往它们的路由。新连接已经接好,其他网络会接受新路线吗?在切换之前,路由来源授权,也就是 ROA,是需要核对的一项重要记录。

ROA 让地址持有者说明:哪个自治系统获准作为这组地址的路由起点。它给其他网络提供核对的依据。它本身不发布 BGP 通告,不传送数据包,也不保证所有运营商都会接受这条路线。

先写清楚,你到底要宣布什么

自治系统可以理解为实行独立路由政策的网络,以 ASN 标识。通告中的来源 ASN,指的是这条路由的起点;它未必就是地址登记记录中那家机构。

准备授权时,要列清前缀、计划使用的来源 ASN,以及确实需要宣布的更小地址块。RFC 9582定义了 ROA 如何把 ASN 与前缀及允许的最大长度关联起来。前缀越长,表示的地址块越小。

例如,只允许宣布某个 /24,和允许宣布它里面所有更小的地址块,是不同的授权范围。把 maxLength 随手放得很宽,会给出超出实际需要的权限。RFC 9319专门讨论了为什么应当精确设置这个范围。

你发布授权,别人核验和决定

持有者通过自己的 RPKI 服务发布签名记录。接收网络的验证软件检查证书与记录,整理出可用的授权数据。路由器用这些数据比较通告;运营者配置比较结果怎样影响路由。

来源与长度都符合至少一条覆盖授权,是 Valid;有覆盖授权却没有匹配项,是 Invalid;没有覆盖授权,是 NotFound。这三个结果把“没有依据”和“依据不符”分开。ROA 放进仓库,并不意味着虚假通告从此会在全球第一跳就被拦下。

切换顺序,关系到用户能否继续访问

如果准备更换来源 ASN,应先准备所需授权,再依赖新的通告。过渡期间如果确实要让两个来源同时工作,授权也应反映这个安排。随后观察验证数据有没有到达相关网络,确认实际通告和访问结果,最后再撤下不再需要的旧权限。

所有路由器不会在同一秒收到更新。RPKI 的发布、验证和路由器更新有各自的节奏,降低 DNS 的 TTL 并不能控制它们。RFC 7115说明了缓存视图和更新时间的差异。

错误 ASN、过长前缀等场景应在隔离实验环境里测试。生产运行时,应持续检查预期通告、授权数据、验证服务和上游政策。多台验证器可以缓解单机故障,但如果它们依赖相同的软件、配置或数据源,仍可能一起受影响。

来源验证之外,还有什么要做?

来源验证不认证整条 AS 路径,不阻止所有路由泄漏,也不加密通信。前缀过滤、网络之间的关系和其他运营措施仍然重要。遇到失败,要找到具体哪条声明与哪项依据不符;全部关掉验证,或把所有 Invalid 都当成攻击,都不能代替诊断。

安全应当服务于实际运行网络的人

卢恒在第 28 篇札记中主张,必要的记录服务不能变成管理者随意惩罚参与者的工具。一份签名授权能够证明一项技术声明,并不等于给维护记录的机构一份无限期的统治授权。

他的第 64 篇札记(英文原作)进一步要求:共同规则可以自行核验,协调记录能够迁移,未来变化由参与者选择采用。对运营者而言,这关系到连续服务:业务依赖哪些记录,谁能改动它们,当前协调者出问题时,准确证据还能怎样继续被使用?

继续读为什么 IPv4 前缀会更换来源 ASN(英文),就能进一步分清更换路线和更换地址持有者。