RPKI

RouterOS 支持使用资源公钥基础设施(RPKI)进行 BGP 前缀验证,通过 RTR 协议实现安全的路由源验证。配置包括设置 RTR 服务器,并基于 RPKI 有效性状态应用过滤器以接受或拒绝路由。

RPKI

RouterOS 实现了 RFC 8210 中定义的资源公钥基础设施(RPKI)到路由器协议。RTR 是一种轻量、低内存的协议,用于从 RPKI 验证器获取前缀验证数据。请在 RIPE 博客上查看验证器设置示例。

配置位于 /routing/rpki 下。

基本示例

假设你的网络中有一台 IP 地址为 192.168.1.1 的 RTR 服务器:

/routing/rpki
add group=myRpkiGroup address=192.168.1.1 port=8282 refresh-interval=20

group、address、port 和 refresh-interval 参数用于配置 RTR 连接。其他参数包括 vrf、preference、retry-interval 和 expire-interval。

连接建立并收到验证器数据库后,使用 rpki-check 检查前缀有效性:

[admin@rack1_b33_CCR1036] /routing/rpki> rpki-check group=myRpkiGroup prfx=70.132.18.0/24 origin-as=16509
    valid

在路由过滤器中使用缓存的数据库,根据 RPKI 有效性接受或拒绝前缀。首先设置一个定义由哪个 RPKI 组执行验证的 /routing/filter/rule。之后,过滤器即可匹配 RPKI 数据库中的状态。状态可以取以下四个值之一:

  • valid - 数据库中有记录且源 AS 有效。
  • invalid - 数据库中有记录但源 AS 无效。
  • unknown - 数据库中没有关于该前缀和源 AS 的信息。
  • unverified - 当 RPKI 组的任何会话都尚未同步数据库时设置。使用此值来处理 RPKI 完全失效的情况。
/routing/filter/rule
add chain=bgp_in rule="rpki-verify myRpkiGroup"
add chain=bgp_in rule="if (rpki invalid) { reject } else { accept }"