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 }"