RPKI 路由源验证:怎样确认一个网络前缀确实由某个 AS 宣告?

TL;DR

RPKI 路由源验证通过 ROA 检查前缀与起源 AS 是否匹配。本文解释 Valid、Invalid、NotFound 的含义,以及它为何不验证整条路由路径。

RPKI 路由源验证通过 ROA 检查前缀与起源 AS 是否匹配。本文解释 Valid、Invalid、NotFound 的含义,以及它为何不验证整条路由路径。

RPKI 路由源验证:怎样确认一个网络前缀确实由某个 AS 宣告?

互联网路由系统需要不断传播“某个 IP 前缀可以经由哪个自治系统(AS)到达”的信息。若有人误配置或恶意宣告了并不属于自己的前缀,流量可能被错误引导。RPKI(Resource Public Key Infrastructure)路由源验证可以帮助网络运营者检查:某个路由通告中的起源 AS,是否被该前缀的资源持有者授权。

资源持有者可以发布 ROA(Route Origin Authorization),描述一个 IP 前缀允许哪些 AS 作为起源,以及可接受的前缀长度范围。验证器据此比较收到的 BGP 路由通告,通常给出 Valid、Invalid 或 NotFound 等状态。Valid 表示找到匹配授权;Invalid 表示有授权信息但路由起源或前缀长度不符合;NotFound 则表示当前没有可用的授权记录。

要特别区分“路由源验证”和“整条路径验证”。RPKI ROA 主要回答谁有权作为这个前缀的起源,不会单独证明 BGP AS_PATH 中经过的每个自治系统都真实可信,也不意味着整个路由协议已经获得完整密码学保护。看到某条路径经过了某些 AS,并不能仅凭 RPKI 起源验证就断言这些中间路径都已验证。

网络运营者如何处理 Invalid 路由是一项策略选择。常见的做法可以拒绝或降低其优先级,但上线前需要评估 ROA 是否准确、授权是否及时更新,以及过滤策略会怎样影响连通性。错误配置的 ROA 可能使合法路由变成 Invalid;NotFound 也不等于恶意,只表示尚无对应授权。验证结果要和运营流程、监控与变更管理配套。

这一机制的意义不在于“一键防劫持”,而在于让资源授权信息能被机器化检查,并在路由决策中作为一个信号。它是一层可部署的源授权保护,需要网络各方正确维护记录,不能替代对路由变化、上游选择和运维流程的持续监控。

RPKI 把 IP 地址资源的分配关系连接到路由起源检查,为互联网路由安全增加了一道验证步骤;理解它的边界,尤其是它不验证完整路径,和理解它本身同样重要。

来源:RFC 6811:BGP Prefix Origin Validation

KEEP READING