您的问题非常广泛,并且您没有提供很多细节(例如您阅读了哪些文档或您使用的网络拓扑和设备是什么),但我会尝试给您一些指示。
首先,实施 RPKI 包括两部分: 1. 签署您的前缀,以便其他人可以验证它们 2. 在您的网络上实施 RPKI 验证
签名前缀
签署前缀通常是更容易且影响更小的任务。RIR(如 ARIN 和 RIPE)提供在线工具,通过将前缀和前缀长度链接到自治系统来签署您的前缀。请注意有时会以不同的前缀长度或源 ASN 宣布前缀的设置。这通常发生在 DDoS 缓解中,有时会发布更具体的路由,可能来自不同的网络,以将受到攻击的 IP 空间转移到 DDoS 清理中心。
一旦你签署了你的前缀,如果其他人实施了 RPKI 验证,他们就能够验证它们。由于越来越多的网络正在这样做(例如,Tier1 网络 Telia 上周开始这样做),这将防止您的前缀被其他 ASN 有意或无意地劫持。请记住,RPKI 仅提供路由来源验证 (ROV) 的解决方案,通过在 AS 路径中注入 ASN 的中间人攻击仍然是可能的,因为 RPKI 不提供路径验证。
验证前缀
我猜你最感兴趣的是这个。由于您没有提供有关网络的任何详细信息,因此很难具体说明,但我可以提供一些有关如何执行此操作的详细信息。
要进行 RPKI 验证,需要采取一些步骤:
- 安装一个或多个 RPKI 路由验证器。目前有几种选择:RIPE RPKI Validator、NLnetlab 的Routinator 3000和 Cloudflare 的OctoRPKI。路由验证器是一个从所有 IRR 中检索 RPKI 数据并验证签名的软件。
- 使用路由验证器在边界路由器上配置验证会话。这允许您的路由器填充包含经过验证的前缀、前缀长度和源 ASN 组合的验证数据库。
- 在您的外部 BGP 会话上实施 BGP 过滤器。在与对等方、中转和 BGP 客户的所有入站 BGP 会话上,您需要添加一个策略来拒绝任何接收到的 RPKI 无效的前缀。执行此操作的确切方法取决于您使用的设备,请参阅下面的链接,了解一些网站,其中包含各种品牌的配置示例。
最后一步是迄今为止最复杂和最耗时的一步。对此有几点补充说明:
- 只要您不对所有上游 BGP 会话(对等和传输)实施 RPKI 验证,如果从上游学习并通过 iBGP 传播 RPKI 无效路由,它们仍将在您的网络中可用。您需要在任何地方实现它,或者确保所有上游都为您执行它。
- 处理 RPKI 无效的唯一正确方法是拒绝它们。我已经看到一些(大多数是较旧的)示例提到分配较低的本地首选项,但这对您没有一点帮助,因为具有较低本地首选项的更具体的路线总是会从具有较高本地首选项的不太具体的路线中获胜. 这样,您仍然会将流量路由到可能劫持 IP 空间的网络。
- 在 DFZ 中仍然存在(如果我是正确的话,会慢慢下降)RPKI 无效的前缀数量。大多数情况下,这些都是其所有者的错误配置。我(和其他人)的经验是,开始拒绝前缀不是问题(因为 AT&T、CloudFlare 和 Telia 等其他公司也在这样做),但在特定情况下可能会出现问题。验证器提供将特定前缀列入白名单或忽略特定前缀的选项。
- 确保在出站会话中也拒绝 RPKI 无效路由。您不想传播任何无效路线。
- 培训您的支持人员并为他们提供工具来检查 IP 的 RPKI 验证状态。您的支持人员需要了解有关无法到达目的地的投诉可能与 RPKI 有关,他们需要知道如何识别这些投诉以及如何处理这些投诉。
我可以推荐一些关于 RPKI 的好资源: