01 · 数据源全景
ROA质量分析需要把"应该是什么"(注册数据)与"实际宣告了什么"(BGP数据)以及"密码学上授权了什么"(RPKI数据)三方对齐。对应五类数据源:
| 数据源 | 内容 | 在质量分析中的角色 |
|---|---|---|
| RIR存储库(rsync/RRDP) | 各RIR发布的RPKI对象全集:CA/EE证书、ROA、Manifest、CRL、Ghostbusters | ROA"授权真相"的权威来源;用于字段级正确性、证书新鲜度、越界判断 |
| RP验证器输出 | Routinator/rpki-client/OctoRPKI 经验证后导出的ROA/VRP(Validated ROA Payload)列表 | 已通过密码学验证的"可用ROA视图",接近路由器实际消费的形态 |
| BGP路由表(RIB) | RouteViews/RIS/BGPStream 的MRT格式全路由表快照与更新流 | "实际宣告"的现实;用于一致性比对(有ROA无宣告/有宣告无ROA) |
| RDAP / WHOIS | IP/AS注册数据(持有者、资源范围、状态) | 资源归属与状态核验;识别越界授权与已回收地址上的僵尸ROA |
| IRR(路由注册库) | operator发布的route/route6策略对象(含origin声明) | 与ROA起源声明交叉印证;识别ROA与IRR不一致的"双轨"风险 |
| NIST RPKI Monitor等公共观测平台 | 基于公开数据的三态(Valid/Invalid/NotFound)连续观测与可视化 | 质量指标的第三方基准校验;避免自采数据的系统性偏差 |
02 · 采集通道:rsync 与 RRDP
RIR存储库的同步有两条官方通道,二者在可用性、增量能力、部署成本上各有取舍,直接影响"数据可得性"这一KQ-1。
| 维度 | rsync(传统) | RRDP(RFC 8182,HTTPS) |
|---|---|---|
| 传输 | rsync协议,需维护长连接与目录树 | HTTPS + XML,利用标准Web基础设施 |
| 增量 | 全量或基于文件差异,带宽占用偏高 | 支持snapshot/delta增量,带宽效率更高 |
| 可用性 | 对开放端口与rsync服务可用性依赖强,易被限流 | 复用443端口,穿透性更好,但依赖Web服务可用性 |
| 一致性 | 与RRDP可能短暂不一致(双通道发布存在时延差) | 与rsync同样存在发布时延差 |
| 运维 | 历史久、工具链成熟 | 现代RP(如Routinator)默认优先RRDP并回退rsync |
采集策略建议:生产级质量监控应同时从RRDP与rsync拉取并比对,并以"两者一致的子集"作为高置信基准;对仅在一侧出现的对象,需标注"通道分歧"而非直接判定为错误。这既是KQ-1(完整性)的要求,也能规避因单通道故障导致的"假性质量缺陷"。
03 · 解析与密码学验证流水线
从存储库拉取到的是CMS签名对象与X.509证书,必须经过一条严格的验证流水线,才能确认其"当前有效"。这一流水线本身就是质量的第一道过滤网。
3.1 四道闸门与对应质量缺陷
| 闸门 | 校验内容 | 不通过意味着 |
|---|---|---|
| 证书链(签名) | 从Trust Anchor Locator(RFC 6490)起逐级验签,确认对象由合法CA签发 | 对象被伪造或上级CA失效 → 整批不可信 |
| 资源范围(RFC 3779) | ROA的地址必须落在签发证书的资源扩展范围内 | 越界授权(over-claim)→ 该ROA本不应存在 |
| Manifest一致性 | 对象内容的哈希必须出现在当前Manifest中 | Manifest陈旧或对象被悄悄替换 → 验证器拒绝 |
| 新鲜度 | EE/CA证书在有效期内、未被CRL撤销、Manifest未过期 | 证书过期/被撤/Manifest陈旧 → 对象瞬间失效(生命周期型缺陷) |
3.2 为什么不能"跳过验证直接读字段"
初学者常误以为"读取ROA里的asID与前缀"即可分析质量。但一个能通过验证器、却被路由器实际消费的ROA,必须满足上述四道闸门。若只做字段解析,会把"已被验证器拒绝的僵尸/越界对象"误算进覆盖率与保护度,造成质量指标虚高——这正是质量分析必须"先验证、后分析"的根本原因。
3.3 本地策略覆盖层:SLURM(RFC 8416)
实际部署中,RP验证器可加载SLURM(Simplified Local Internet Number Resource Management with the RPKI,RFC 8416)文件,对VRP做本地过滤或追加断言。这意味着路由器最终看到的VRP ≠ RP原始验证输出——质量分析若忽略了SLURM层,可能把"被本地策略过滤掉的合法ROA"误判为"缺失保护"。本课题在比对口径上要求:以"未加载SLURM的纯净验证输出"为质量分析基准,SLURM仅作为消费侧策略记录,不参与质量打分。
3.4 消费侧实现标准:RFC 6811 与 NIST SP 800-189
路由器如何执行ROV另有实现规范:RFC 6811《BGP Prefix Origin Validation》(2013年)定义了在BGP会话中对UPDATE做起源验证的运转模型,NIST SP 800-189《Resilient Interdomain Traffic Exchange: BGP Security and DDoS Traffic Mitigation》(2019年)给出了美国政府的部署指南与三态命名(Not-Found/Valid/Invalid)。NIST RPKI Monitor等公共观测平台即按此口径运行。质量分析引用第三方三态数据时,应注意其采用的是"唯一前缀-起源对"口径(同一前缀被多AS宣告时逐对计数),与"地址空间"口径的覆盖率不可直接互换——混用口径是质量指标虚高或虚低的常见原因。
04 · 数据治理:去重、对齐与时间序列
- 去重与归一化:同一ROA可能在多个collector、多个RP输出、rsync与RRDP中重复出现;需按"对象哈希 + 签发者 + 序列号"去重,并以RFC 6482对象本身为规范表达。
- 实体对齐(Entity Alignment):把ROA的(asID, prefix)三元组与BGP RIB中的(origin AS, prefix)、RDAP中的持有者、IRR中的route对象,按IP前缀与ASN做空间对齐(含前缀包含关系运算),这是第5页一致性比对的基石。
- 时间序列化:ROA是有时效的数据,需按采集时刻建立时间序列,跟踪"某ROA何时出现、何时过期/被撤、maxLength何时变更",才能识别"短暂错误窗口""迁移期矛盾ROA"等时序型质量缺陷。
- 可信基线:以"rsync与RRDP一致 + 通过四道闸门"的对象作为高置信基线集,其余标注置信等级,避免把采集噪声误判为真实错误。
05 · 质量基线指标
本课题定义一组可复现的ROA质量基线指标(具体量化见第5页),此处给出指标定义与采集口径:
| 指标 | 定义 | 采集口径 |
|---|---|---|
| 覆盖率(Coverage) | 被ROA覆盖的地址空间 / 已分配地址空间(或 被覆盖的BGP前缀占比) | 来自RIR存储库与BGP RIB比对 |
| 保护度(Protection) | 既被ROA覆盖、又确实在BGP中宣告且Valid的前缀占比 | ROA ∩ BGP 且 Valid |
| 过期率(Expiry) | EE/CA证书已过期但对象仍在库的占比 | 新鲜度闸门统计 |
| 越界率(Over-claim) | ROA授权范围超出其资源证书范围的占比 | 资源范围闸门 + RDAP核验 |
| 僵尸率(Stale) | 有ROA但长期(如≥90天)无对应BGP宣告的占比 | ROA − BGP 长时间空集 |
| maxLength合理度 | ROA maxLength与真实最具体宣告长度一致的比例 | ROA × BGP 长度分布比对 |
采集频率与规模参考:以2025年底全球约34.4万张ROA、78.8万条VRP的规模计(RPKIViews年度统计),单次全量验证在现代多线程RP上约需数十秒量级(RPKIViews对rpki-client的公开基准:4核环境约35—46秒完成全球对象集验证);本课题建议——RIR存储库同步周期不低于每小时一次(ROA/证书变更以小时级为主;参考各RP默认值:Routinator默认RRDP轮询约10分钟、FORT Validator默认验证间隔3600秒),BGP RIB快照每日至少一次全量+持续更新流,RDAP核验按"异常触发+周期性复核"执行。频率过高会触发RIR限流(见下节),过低则会错过错误ROA的"短暂存在窗口"。
06 · 采集中的常见坑
| 坑 | 现象 | 规避 |
|---|---|---|
| rsync限流/封禁 | 高频全量拉取触发RIR侧限速,数据缺失 | 控制频率、优先RRDP、遵循各RIR服务条款 |
| RRDP可用性波动 | Web端点偶发不可达,单通道视图不全 | 双通道互补 + 回退,标记分歧 |
| 时钟不同步 | 本地时间偏差导致误判证书"已过期/未生效" | NTP同步,验证器与采集端统一时钟源 |
| RP实现差异 | 不同RP对"陈旧Manifest/异常对象"处理策略不同,输出视图不一致 | 多RP交叉比对,标注实现差异 |
| BGP采集偏差 | RouteViews/RIS观测覆盖不均,部分AS/区域采样不足 | 多collector交叉,影响面外推需谨慎 |
| 时间戳语义混淆 | 把"对象发布时间"当"生效时间",把"采集时间"当"过期时间" | 严格区分 notBefore/notAfter 与采集时刻 |
| RRDP通知服务/delta链断裂 | notification.xml指向的snapshot/delta序列与服务端实际状态不一致,或历史delta被清理 | 检测到序列异常时回退全量snapshot重同步,并标记该窗口数据置信度降级 |
合规提醒:RIR存储库为公开数据,但高频/大规模拉取须遵守各RIR速率限制与服务条款;本课题采集仅用于质量分析,不修改、不重新发布任何RPKI对象。
本节参考来源(第3页)
以下为真实可查权威来源,支撑本页技术表述。
RFC 8182《The RPKI Repository Delta Protocol (RRDP)》:rfc-editor.org/rfc/rfc8182。HTTPS增量同步协议。
RFC 6484《Certificate Policy (CP) for the RPKI》与 RFC 6487《X.509 PKIX Resource Certificates》:rfc6484 / rfc6487。验证策略与证书Profile。
RFC 6490《Trust Anchor Locator》与 RFC 3779《X.509 Extensions for IP Addresses and AS Identifiers》:rfc6490 / rfc3779。
RP验证器:Routinator(NLnet Labs)nlnetlabs.nl;rpki-client rpki-client.org;OctoRPKI(Cloudflare)github.com/cloudflare/cfrpki。均支持rsync/RRDP并输出VRP。
RDAP(Registration Data Access Protocol,RFC 7480-7484)与 IRR(Internet Routing Registry,WHOIS路由对象):用于资源归属与路由策略核验的公开注册数据。
RFC 8416《Simplified Local Internet Number Resource Management with the RPKI (SLURM)》:rfc-editor.org/rfc/rfc8416。RP本地策略覆盖层规范。
NIST RPKI Monitor:rpki-monitor.antd.nist.gov;RPKIViews:rpkiviews.org。公共观测与年度统计基准。
BGP路由采集:RouteViews routeviews.org、RIS/RIPE NCC ris.ripe.net、BGPStream bgpstream.caida.org。MRT格式路由表与更新流。