RPKI、ROA、ROV、Valid、Invalid、NotFound、maxLength、IRR 和 BGPsec 有什么区别?
BGP路由安全讨论中,“这个前缀有ROA”“这条路由RPKI Invalid”“运营商开启了ROV”经常被混为同一件事。实际上,RPKI是互联网号码资源的公钥基础设施,ROA是地址持有者签发的起源授权对象,ROV是路由器利用已验证数据判断BGP前缀与起源AS是否匹配的过程。Valid、Invalid和NotFound是验证结果,不是路由可达性状态。
本文目录(48 节)
一句话结论
RPKI建立IP地址和AS号资源证书信任链;ROA声明某个AS可起源一个或多个前缀,并可用maxLength限制更具体路由;Relying Party验证全球对象并向路由器提供Validated ROA Payload;ROV为BGP路由计算Valid、Invalid或NotFound;IRR依赖注册对象和维护者机制生成过滤策略;BGPsec对AS路径传播进行密码学保护。ROA与ROV解决起源授权,不能替代路径安全。
BGP 起源AS是什么
BGP UPDATE的AS_PATH记录路由经过的自治系统。常规AS_SEQUENCE中,最右侧AS通常视为origin AS。ROV使用路由前缀和这个起源AS与授权数据比较,而不是检查每一跳运营商关系。
RPKI 是什么
Resource Public Key Infrastructure是与互联网号码资源分配体系对齐的PKI。资源证书扩展X.509以表达IP地址块和AS号,分布式repository发布证书、清单、撤销列表和签名路由对象。
RPKI 不是什么
它不是BGP路由协议本身,不向全网传播可达性,也不直接决定路由器选路。RPKI提供可验证授权数据,运营网络再通过本地策略决定如何使用验证结果。
Resource Certificate 是什么
资源证书表明证书主体控制哪些IP前缀或AS资源,并形成从RIR层级向下的授权链。它不是网站TLS证书,浏览器也不会用它验证HTTPS域名。
ROA 是什么
Route Origin Authorization是RPKI中的签名对象,允许地址资源持有者声明某个AS可在BGP中起源指定前缀。一个ROA含一个asID和一个或多个IP prefix授权项。
ROA 与 BGP Announcement
ROA是控制平面授权声明,不会自动生成BGP公告;BGP公告说明路由器当前宣告可达路径。只有公告前缀、起源AS和ROA范围匹配,路由才可能获得Valid结果。
ROA Prefix 是什么
ROA中的prefix定义授权覆盖的地址块,例如203.0.113.0/24。它可授权该前缀本身,并在配置maxLength时授权一定范围内的更具体前缀。
maxLength 是什么
maxLength规定被授权公告可以达到的最长前缀长度。例如ROA prefix为/20、maxLength为/24时,从/20到/24的覆盖公告在AS匹配时可Valid;/25会超出授权并成为Invalid候选。
不写 maxLength 的含义
若没有更长授权,通常只授权ROA中精确前缀长度。运营人员不应默认“有覆盖ROA就允许所有more-specific”。发布流量工程或DDoS缓解更具体路由前,必须检查长度。
maxLength 设太宽的风险
将IPv4大块直接允许到/24虽然方便,却扩大被同一起源AS错误宣告更具体前缀的授权范围。应只授权业务确实可能发布的长度,并用监控提前发现即将发生的变更。
多起源前缀怎么授权
同一前缀需要由多个AS起源时,应为每个AS发布相应授权。一个ROA的asID只有一个AS;不能在同一asID字段写列表。变更上游或迁移ASN前要预发布新授权并等待传播。
一个ROA放多个前缀好吗
技术上可含多个前缀,但RFC 9455作为BCP建议每个ROA只含一个IP前缀,以减少某个资源或对象问题影响多个授权的操作风险。托管平台界面可能抽象对象细节,应确认实际发布结果。
Relying Party 是什么
RP软件从分布式RPKI repositories获取对象,验证证书链、签名、清单和撤销状态,生成路由器可消费的有效payload。路由器通常不直接遍历全球repository。
Validator 与 Router 的边界
Validator负责RPKI对象验证与缓存,路由器通过RPKI-Router协议等方式获取前缀、最大长度和ASN映射,再对BGP路由计算状态。两者应独立监控,防止“会话在线但数据过旧”。
VRP 是什么
Validated ROA Payload是从有效ROA导出的可用于起源验证的三元组,通常包括prefix、maxLength和origin ASN。VRP是验证后的运行数据,不等于原始CMS签名ROA文件。
ROV 是什么
Route Origin Validation把收到的BGP路由前缀与origin AS同本地VRP集合比较,产生验证状态。然后路由策略可拒绝、降低优先级、标记community或仅监控。
Valid 是什么
若至少一个覆盖VRP同时满足origin AS相同且路由前缀长度不超过maxLength,路由为Valid。存在其他不匹配VRP不妨碍它被一个正确VRP验证。
Invalid 是什么
若路由前缀至少被一个VRP覆盖,但没有任何VRP同时匹配origin AS与允许长度,它是Invalid。原因可能是ASN错误,也可能是前缀长度超出maxLength。
NotFound 是什么
若没有任何VRP覆盖该路由前缀,结果为NotFound。它表示RPKI中没有可用覆盖授权,不等于恶意、无效或不存在。部分采用环境中大量合法路由仍可能NotFound。
Invalid 与 NotFound 的关键差异
Invalid表示已有资源持有者授权信息却与公告冲突;NotFound表示没有覆盖数据。常见策略更倾向拒绝Invalid,而继续接受NotFound并监控,但最终动作由本地网络政策决定。
Valid 不等于“路由安全”
Valid只证明该origin AS被地址持有者授权。授权AS仍可能配置错误,路径中间AS也可能被劫持,流量目的服务也可能不可信。它不验证性能、可达性、HTTPS证书或内容。
Origin Invalid 的两种主要原因
一是公告origin ASN与ROA asID不同,二是公告比maxLength允许值更具体。监控应分别标记ASN mismatch与length mismatch,因为修复责任和操作不同。
AS0 ROA 是什么
AS0 ROA表达相关前缀及覆盖范围不应在公共路由语境中使用。AS0不会成为普通可匹配起源,因此对实际公告产生Invalid效果。它适用于明确不计划路由的资源,误用会导致合法公告被过滤。
RPKI 缓存为何可能不一致
repository抓取、签名发布、缓存刷新和网络故障存在延迟,不同RP可能暂时拥有不同视图。变更ROA前应考虑全球传播时间,避免先发布新BGP路由、后补授权造成短期Invalid。
Fail-open 与 Fail-closed
当Validator或RTR会话故障时,路由器如何处理旧数据与验证状态是运营策略。完全fail-closed可能因RPKI基础设施故障大面积丢路由,完全忽略又失去保护。应使用冗余RP、数据过期阈值和明确降级方案。
ROV 过滤应放在哪里
通常在外部BGP入口对收到路由应用验证策略,并保留状态供选路、日志和出口传播政策使用。具体实现与路由器平台有关。不要只在单一边界开启却宣称全网覆盖。
为什么不应只降低 Local Preference
把Invalid仅降优先级可能在没有其他路径时仍被选中。若组织政策是拒绝Invalid,应明确过滤;若处于观察阶段,需清楚标记“监控不拦截”,避免安全报告夸大效果。
IRR 是什么
Internet Routing Registry保存route、route6、aut-num、as-set等路由策略对象,运营商常据此生成前缀和AS路径过滤器。数据由维护者机制管理,质量、时效和授权模型因registry而异。
IRR 与 RPKI 的区别
IRR表达更丰富的路由策略和AS集合,RPKI ROA提供基于资源证书的起源授权。IRR route对象和ROA可能一致也可能冲突。两者可互补,不能因有IRR对象就宣称具备密码学ROV。
IRR 过滤的优势
它可在邻接建立前生成客户允许前缀清单、prefix-length限制和AS-SET展开,覆盖RPKI尚未注册的NotFound路由。缺点是陈旧对象、递归集合和不同registry信任质量需要治理。
RPKI 与 Prefix Filter
ROV是动态验证收到路由的origin授权;客户前缀过滤可从合同、IRR、RPKI和人工清单构建。仅做ROV不能阻止客户宣告一个NotFound但不属于其合同范围的前缀,因此仍需邻居级过滤。
BGPsec 是什么
BGPsec扩展BGP UPDATE,让参与的AS对路径传播进行密码学签名,以验证AS_PATH的传播链。它使用RPKI router certificates,与ROA起源验证互补,而不是ROA的新名称。
BGPsec 与 ROV 的区别
ROV检查prefix与origin AS;BGPsec验证参与路径的签名。BGPsec需要沿路径逐步部署并增加协议与运算复杂度。即使使用BGPsec,仍需ROA确认最初起源授权。
Path Validation 不等于商业关系验证
路径签名可证明UPDATE按相应顺序传播,但不自动证明每个AS之间的客户、对等或提供商关系符合预期。Route Leak检测还需要AS关系模型、策略信号或其他机制。
ASPA 放在哪一层
AS Provider Authorization旨在表达客户AS授权的上游提供商关系,用于路径验证和route leak防护。其标准化与部署状态应以当前IETF文档和设备支持为准,不能把它与已广泛部署的ROA起源验证混写成同一成熟度。
ROA 变更安全顺序
先创建覆盖新origin和长度的ROA,等待RIR发布、RP抓取和监控点看到Valid,再发送新BGP公告;确认迁移稳定后撤销旧授权。回滚时也要保留足够重叠窗口。
DDoS 缓解与 maxLength
清洗服务可能临时起源更具体路由或使用不同ASN。应预先授权必要ASN和长度,或建立紧急变更流程。攻击发生后才创建ROA,全球缓存延迟可能让路由仍被部分网络拒绝。
Anycast 与多ASN
Anycast常由多个站点使用相同ASN起源同一前缀,单一授权即可;若使用不同ASN,则每个origin都需授权。AS_PATH不同不影响ROV,只要最终origin与ROA匹配。
聚合与更具体路由
发布/20聚合和多个/24更具体时,ROA必须同时允许实际长度。只为/20且未允许/24会让more-specific Invalid;只授权/24又不一定覆盖/20的授权需求。应从真实BGP计划生成ROA矩阵。
监控至少看什么
监控自身前缀在多个RPKI观察点的Valid/
变更前验证清单
列出每个生产前缀、实际origin ASN、可能最长长度、DDoS与迁移ASN;比对ROA和IRR;在测试路由器导入VRP;验证策略对三种状态的动作;准备撤销与路由回滚;最后观察多个外部视角。
常见错误一:maxLength复制为最大值
为了省事把所有IPv4授权到/24、IPv6授权到很长范围,会扩大授权面。应依据会发布的具体前缀长度最小授权,并在新增更具体路由前修改。
常见错误二:把 NotFound 当 Invalid
这会在RPKI部分部署环境误拒大量合法路由。路由策略必须区分三态,并明确组织对NotFound的处理,而不是用一个布尔“RPKI通过”。
常见错误三:ROA与BGP变更顺序相反
先切origin再发布ROA会产生Invalid窗口。所有路由迁移Runbook都应把授权传播作为前置门槛,而不是事后修复步骤。
FAQ
1. 有ROA就表示这条BGP路由Valid吗?
不一定。路由的origin ASN与prefix length都必须匹配至少一个覆盖VRP。
2. RPKI Invalid一定是劫持吗?
不一定,也可能是ROA过期、ASN迁移未更新或maxLength配置错误,但应按高风险事件处理。
3. NotFound是否应该全部拒绝?
通常不能简单如此。它只表示没有覆盖VRP,具体策略取决于网络目标和当前全球采用率。
4. Valid能证明整个AS_PATH真实吗?
不能。ROV只验证起源,完整路径保护属于BGPsec等不同机制。
5. IRR route对象能替代ROA吗?
不能。IRR适合策略注册和过滤,但不提供同样的资源证书起源授权模型。
6. 同一前缀可以授权多个ASN吗?
可以,需要为每个origin ASN创建相应授权,而不是在一个asID中放多个值。
7. maxLength越长越方便吗?
方便但授权面更宽。只应允许运营计划确实需要发布的最具体长度。
8. 发布ROA后能立即切BGP吗?
不应假设立即全球可见。要等待repository、RP和路由器缓存传播,并从外部验证后再切换。
IETF权威资料
- https:
/ / www. rfc- editor. org/ rfc/ rfc6480. html - https:
/ / www. rfc- editor. org/ rfc/ rfc9582. html - https:
/ / www. rfc- editor. org/ rfc/ rfc6483. html - https:
/ / www. rfc- editor. org/ rfc/ rfc6811. html - https:
/ / www. rfc- editor. org/ rfc/ rfc9455. html - https:
/ / www. rfc- editor. org/ rfc/ rfc8205. html - https:
/ / www. rfc- editor. org/ rfc/ rfc8374. html
最终部署原则
把RPKI看成授权数据供应链,而非路由开关:地址持有者签ROA,RP验证并生成VRP,路由器计算三态,本地政策再决定动作。对每个生产前缀最小化maxLength,先授权后公告,以冗余Validator保证数据可用,并继续保留客户prefix过滤、IRR治理和路径异常监控。只有起源、路径和运营策略分层防护,BGP安全才不是一个“RPKI已开启”的复选框。