rpki/specs/11_rtr.md
2026-04-01 16:24:01 +08:00

5.7 KiB
Raw Blame History

11. RTRRPKI to Router Protocol

11.1 目标与文档范围

RTR 用于把 RP/Cache 已完成密码学验证的 RPKI 数据下发给路由器。

本文按以下规范整理:

  • RFC 6810RTR v0
  • RFC 8210RTR v1更新 RFC 6810
  • draft-ietf-sidrops-8210bis-25RTR v2草案

11.2 协议演进

11.2.1 RFC 6810v0

  • 只定义 Prefix Origin 相关 payloadIPv4/IPv6 Prefix PDU
  • 主要 PDUSerial Notify / Serial Query / Reset Query / Cache Response / Prefix / End of Data / Cache Reset / Error Report。

11.2.2 RFC 8210v1

在 v0 基础上新增/强化:

  • 新增 Router Key PDUPDU Type 9v1 可用v0 保留)。
  • 强化协议版本协商与降级行为。
  • End of Data 在 v1 中携带 Refresh/Retry/Expire 三个计时参数。

11.2.3 Version 2草案

在 v1 基础上新增/强化:

  • 新增 ASPA PDUPDU Type 11仅 v2
  • 新增 “Races, Ordering, and Transactions” 章节,要求缓存按规定顺序输出 payload 以降低路由器短暂误判。
  • 协议版本提升到 2
  • 明确 PDU 最大长度上限为 64k65535

11.3 PDU 与版本矩阵

PDU 类型(按规范注册表):

PDU Type 名称 v0 (RFC6810) v1 (RFC8210) v2 (8210bis-25)
0 Serial Notify 支持 支持 支持
1 Serial Query 支持 支持 支持
2 Reset Query 支持 支持 支持
3 Cache Response 支持 支持 支持
4 IPv4 Prefix 支持 支持 支持
6 IPv6 Prefix 支持 支持 支持
7 End of Data 支持 支持(含计时参数) 支持
8 Cache Reset 支持 支持 支持
9 Router Key 保留 支持 支持
10 Error Report 支持 支持 支持
11 ASPA 保留 保留 支持

通用字段约束:

  • Protocol Version8-bit。
  • PDU Type8-bit。
  • Session ID16-bit。
  • Length32-bit。
  • 保留位zero/reserved发送必须为 0接收时按规范处理。

11.4 关键 PDU 语义

11.4.1 Serial NotifyType 0

  • 由 Cache 主动发送,提示有新序列可拉取。
  • 是少数可不由 Router 请求触发的消息。

11.4.2 Reset QueryType 2与 Cache ResponseType 3

  • Router 启动或失配时发 Reset Query 请求全量。
  • Cache 回复 Cache Response,随后发送全量 payload最后 End of Data

11.4.3 Serial QueryType 1

  • Router 持有上次 Session ID + Serial 时请求增量。
  • Cache 若可提供增量:返回变化集。
  • Cache 若无法从该 serial 补增量:返回 Cache Reset,要求 Router 走全量。

11.4.4 Prefix / Router Key / ASPA payload

  • IPv4 PrefixType 4/ IPv6 PrefixType 6表示 VRP 的 announce/withdraw。
  • Router KeyType 9v1+):表示 BGPsec Router Key 的 announce/withdraw。
  • ASPAType 11v2 草案):表示 ASPA 数据单元的 announce/withdraw。

语义要点v1 / v2 草案):

  • 对同一 payload 键(如 Prefix 四元组、Router Key 三元组、ASPA customer 键)应维护清晰的替换/撤销关系。
  • Cache 负责把历史变化“合并简化”后再发给 Router避免无意义抖动。

11.4.5 End of DataType 7

  • 标识一次响应结束,并给出当前 serial。
  • v0不含定时器字段。
  • v1/v2携带 Refresh IntervalRetry IntervalExpire Interval

11.5 协议时序

11.5.1 初始同步Full Sync

  1. Router 建连后发 Reset Query(带支持的协议版本)。
  2. Cache 回 Cache Response
  3. Cache 按规范发送 payload 集合。
  4. Cache 发 End of Data 收尾。

11.5.2 增量同步Incremental Sync

  1. Router 发 Serial Query(session_id, serial)
  2. Cache 若可增量,返回变化并以 End of Data 收尾。
  3. 若不可增量,返回 Cache ResetRouter 退回 Full Sync。

11.6 版本协商与降级

  • Router 每次新连接必须由 Reset QuerySerial Query 启动,携带其协议版本。
  • 双方在协商完成后,本连接内版本固定。
  • 遇到不支持版本时,可按规范降级(例如 v1 对 v0、v2 对 v1/v0或返回 Unsupported Protocol Version 后断开。
  • 协商期若收到 Serial NotifyRouter 应按规范兼容处理(通常忽略,待协商完成)。

11.7 计时器与失效v1/v2

End of Data 下发三个参数:

  • Refresh Interval:多久后主动刷新。
  • Retry Interval:失败后重试间隔。
  • Expire Interval:本地数据最长可保留时长。

规范边界RFC 8210

  • Refresh: 1 .. 86400推荐 3600
  • Retry: 1 .. 7200推荐 600
  • Expire: 600 .. 172800推荐 7200
  • Expire 必须大于 RefreshRetry

11.8 Version 2草案新增关注点

11.8.1 ASPA PDU

  • 新增 ASPA 传输能力Type 11
  • 针对同一 customer ASNCache 需向 Router 提供一致且可替换的 ASPA 视图。

11.8.2 排序与事务

  • 草案新增 race 条件说明(如前缀替换、撤销先后导致短暂误判)。
  • 对 Cache 输出 payload 的顺序提出约束。
  • 建议 Router 使用“事务式应用”(例如接收到完整响应后再切换生效)降低中间态影响。

11.9 传输与安全

规范定义可承载于多种传输:

  • SSH
  • TLS
  • TCP MD5
  • TCP-AO

安全原则:

  • Router 与 Cache 之间必须建立可信关系。
  • 需要完整性/机密性时优先使用具备认证与加密能力的传输。
  • 若使用普通 TCP部署上应限制在可信受控网络中。

11.10 参考文献