RPKI 在加强全球路由安全中的作用
RPKI 可以帮助网络拒绝未经授权的路由起源。了解决定其实际效果的共享证据、各网络的本地决策,以及运维依赖关系。


共享证据由各个网络分别检查。它的效果取决于这些网络收到的数据,以及各自执行的策略。
一个网络中的路由错误,可能影响远在他处的人。当错误的起源信息传播开来,一个正常运行的网站可能变得无法访问,流量也可能被导向非预期的目的地。RPKI 让接收网络能够在依赖一条宣告之前,先检查其中的一个部分。
它的价值来自一连串行动:持有者发布可用的授权,软件验证授权,运营者执行路由策略。理解这条链条,既能看清它提供的保护,也能看清可能失效的环节。
究竟在检查什么?
网络通过 BGP 交换可达性信息。前缀是一个 IP 地址块;ASN 用于标识一个自治系统。路由起源授权,也就是 ROA,声明持有者允许哪个 ASN 为指定前缀发起路由宣告。
验证软件检查签名记录和证书,然后提供已验证的授权数据。路由器将路由的起源和前缀长度与这些数据进行比对。运营者决定如何处理结果。这种分工明确区分了记录发布、证据验证和路由决策。
三种结果,各有不同含义
- Valid(有效):至少有一条覆盖该前缀的授权,允许所宣告的起源与前缀长度。
- Invalid(无效):存在覆盖该前缀的授权数据,但没有任何一条允许这一组合。
- NotFound(未找到):正在使用的数据中,没有覆盖该路由的授权。
这些规则来自 RFC 6811。尤其需要注意,没有覆盖该前缀的 ROA,不等于路由处于 Invalid 状态。Valid 也不意味着整条宣告路径都已通过认证。
保护在哪里生效
如果接收网络拒绝 Invalid 宣告,与授权相冲突的起源就可以在这里被拦下,而不会继续经由该网络向外传播。实际效果取决于授权、可用数据,以及真正部署的策略。发布更多 ROA 与让更多网络使用起源验证,是相互关联却又不同的两种采用方式。
RFC 8481 明确了运营者的角色:确定验证状态,与依据状态采取行动,是两回事。不存在一个能让所有网络同时遵循相同策略的全球总开关。
发生泄漏的路由仍可能保留获授权的起源。伪造的路径也可以保留这个起源值。因此,起源验证仍留下了一些重要的路由风险;运营者依然需要其他控制措施,也需要掌握路由如何传播。
证据系统本身也需要维护
如果授权写错了 ASN,或未涵盖计划使用的前缀长度,合法的路由宣告就可能被判定为 Invalid。存储库、证书或验证器出现问题,也可能改变路由器能够获得的数据。由于缓存和更新时间不同,各网络不一定会同时看到相同的数据状态。
实际准备工作包括精确的授权、经过测试的路由变更、受监控的验证器,以及针对数据过期或缺失的书面应对流程。第二个验证器是否有用,取决于它在多大程度上减少了你要应对的故障。它并不能消除所有共同依赖。RFC 7115 讨论运维问题;RFC 8211 则研究 RPKI 发布和认证系统中的不利行为。
保护不应变成永久依赖
这也是一个制度设计问题。控制关键证据的机构,能够影响那些既不由它运营、也不由它在政治上代表的网络。Lu Heng 在札记 28 中主张,注册管理职能必须止于准确的行政管理,而不能成为胁迫手段。
他的札记 64 提出了更进一步的设计目标:共同规则应保持最小必要范围,并可在本地验证;记录应当可迁移;未来变更则应取决于参与者的自愿采纳。安全保障与更换失效协调方的能力,必须一并纳入设计。
这种紧迫性很具体。用户一旦失去访问能力,查明谁控制着必需的记录,就会成为一项紧急任务。应当趁网络仍在运行时,梳理这些依赖关系。接下来,请了解记录变更如何导致路由被拒绝。