5.7 KiB
5.7 KiB
11. RTR(RPKI to Router Protocol)
11.1 目标与文档范围
RTR 用于把 RP/Cache 已完成密码学验证的 RPKI 数据下发给路由器。
本文按以下规范整理:
- RFC 6810(RTR v0)
- RFC 8210(RTR v1,更新 RFC 6810)
- draft-ietf-sidrops-8210bis-25(RTR v2,草案)
11.2 协议演进
11.2.1 RFC 6810(v0)
- 只定义 Prefix Origin 相关 payload(IPv4/IPv6 Prefix PDU)。
- 主要 PDU:Serial Notify / Serial Query / Reset Query / Cache Response / Prefix / End of Data / Cache Reset / Error Report。
11.2.2 RFC 8210(v1)
在 v0 基础上新增/强化:
- 新增
Router Key PDU(PDU Type 9,v1 可用,v0 保留)。 - 强化协议版本协商与降级行为。
End of Data在 v1 中携带Refresh/Retry/Expire三个计时参数。
11.2.3 Version 2(草案)
在 v1 基础上新增/强化:
- 新增
ASPA PDU(PDU Type 11,仅 v2)。 - 新增 “Races, Ordering, and Transactions” 章节,要求缓存按规定顺序输出 payload 以降低路由器短暂误判。
- 协议版本提升到
2。 - 明确 PDU 最大长度上限为 64k(65535)。
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 Version:8-bit。PDU Type:8-bit。Session ID:16-bit。Length:32-bit。- 保留位(zero/reserved)发送必须为 0,接收时按规范处理。
11.4 关键 PDU 语义
11.4.1 Serial Notify(Type 0)
- 由 Cache 主动发送,提示有新序列可拉取。
- 是少数可不由 Router 请求触发的消息。
11.4.2 Reset Query(Type 2)与 Cache Response(Type 3)
- Router 启动或失配时发
Reset Query请求全量。 - Cache 回复
Cache Response,随后发送全量 payload,最后End of Data。
11.4.3 Serial Query(Type 1)
- Router 持有上次
Session ID + Serial时请求增量。 - Cache 若可提供增量:返回变化集。
- Cache 若无法从该 serial 补增量:返回
Cache Reset,要求 Router 走全量。
11.4.4 Prefix / Router Key / ASPA payload
IPv4 Prefix(Type 4)/IPv6 Prefix(Type 6):表示 VRP 的 announce/withdraw。Router Key(Type 9,v1+):表示 BGPsec Router Key 的 announce/withdraw。ASPA(Type 11,v2 草案):表示 ASPA 数据单元的 announce/withdraw。
语义要点(v1 / v2 草案):
- 对同一 payload 键(如 Prefix 四元组、Router Key 三元组、ASPA customer 键)应维护清晰的替换/撤销关系。
- Cache 负责把历史变化“合并简化”后再发给 Router,避免无意义抖动。
11.4.5 End of Data(Type 7)
- 标识一次响应结束,并给出当前 serial。
- v0:不含定时器字段。
- v1/v2:携带
Refresh Interval、Retry Interval、Expire Interval。
11.5 协议时序
11.5.1 初始同步(Full Sync)
- Router 建连后发
Reset Query(带支持的协议版本)。 - Cache 回
Cache Response。 - Cache 按规范发送 payload 集合。
- Cache 发
End of Data收尾。
11.5.2 增量同步(Incremental Sync)
- Router 发
Serial Query(session_id, serial)。 - Cache 若可增量,返回变化并以
End of Data收尾。 - 若不可增量,返回
Cache Reset;Router 退回 Full Sync。
11.6 版本协商与降级
- Router 每次新连接必须由
Reset Query或Serial Query启动,携带其协议版本。 - 双方在协商完成后,本连接内版本固定。
- 遇到不支持版本时,可按规范降级(例如 v1 对 v0、v2 对 v1/v0)或返回
Unsupported Protocol Version后断开。 - 协商期若收到
Serial Notify,Router 应按规范兼容处理(通常忽略,待协商完成)。
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必须大于Refresh和Retry。
11.8 Version 2(草案)新增关注点
11.8.1 ASPA PDU
- 新增 ASPA 传输能力(Type 11)。
- 针对同一 customer ASN,Cache 需向 Router 提供一致且可替换的 ASPA 视图。
11.8.2 排序与事务
- 草案新增 race 条件说明(如前缀替换、撤销先后导致短暂误判)。
- 对 Cache 输出 payload 的顺序提出约束。
- 建议 Router 使用“事务式应用”(例如接收到完整响应后再切换生效)降低中间态影响。
11.9 传输与安全
规范定义可承载于多种传输:
- SSH
- TLS
- TCP MD5
- TCP-AO
安全原则:
- Router 与 Cache 之间必须建立可信关系。
- 需要完整性/机密性时优先使用具备认证与加密能力的传输。
- 若使用普通 TCP,部署上应限制在可信受控网络中。
11.10 参考文献
- RFC 6810: https://www.rfc-editor.org/rfc/rfc6810.html
- RFC 8210: https://www.rfc-editor.org/rfc/rfc8210.html
- draft-ietf-sidrops-8210bis-25: https://www.ietf.org/archive/id/draft-ietf-sidrops-8210bis-25.html