服务提供商

OcNOS 上的 RPKI 路由源验证:在对等边缘配置 ROV

路由源验证是运营商可以在互联网边缘添加的成本最低的控制措施,并且已经从可选变为必备。本指南说明它在 OcNOS 上的工作原理,以及如何在对等路由器上配置它,所用命令均已在 OcNOS-SP 上验证。

什么是 RPKI 路由源验证?

资源公钥基础设施(RPKI)通过一种称为路由源授权(ROA)的加密签名记录,将 IP 前缀绑定到有权通告它的网络。路由源验证(ROV)是路由器将传入的 BGP 路由与这些 ROA 进行比对,并将其标记为 valid、invalid 或 not-found 的操作。当源 AS 和前缀长度与某个 ROA 匹配时,路由为 valid;当存在 ROA 但源或长度错误时,为 invalid;当没有任何 ROA 覆盖该前缀时,为 not-found。ROV 一步即可阻止最常见的路由事故和攻击:某个网络通告了并不属于自己的前缀,从而将其他运营商的流量引向错误的方向。

为什么 RPKI 现在很重要

路由源验证不再是可有可无的功能。大型转接提供商默认拒绝 RPKI-invalid 路由,各国监管机构在其指南中提及路由安全,MANRS 行动也将源验证和前缀过滤视为一个正规网络的基本要求。对于在对等边缘承载完整互联网 BGP 表的运营商而言,ROV 只需极少的投入即可消除一整类错误源问题。而且你可以立即获得保护,因为你无需等待互联网的其余部分,就能受益于每一条已经存在的 ROA。

OcNOS 如何验证路由

OcNOS 不会在路由器上保存 RPKI 数据库。它连接到一个外部 RPKI 验证器(也称为 RPKI-to-Router(RTR)缓存),该验证器从信任锚获取并以加密方式验证 ROA,然后向路由器交付一组干净的、已验证的前缀到源记录。OcNOS 将该已验证表保存在内存中,按定时器刷新,并在接收路由时对其进行标记。为实现冗余,你可以让路由器指向多个验证器。任何支持 RTR 协议的验证器都可以使用,包括 Routinator、搭配 StayRTR 的 rpki-client,以及 NLnet Labs 的 Krill 部署。

RPKI route origin validation on an OcNOS peering router: an RTR session to an RPKI validator supplies validated ROAs, a valid BGP route from the IXP is accepted, and an RPKI-invalid route is dropped at the peering edge before it reaches the core.
OcNOS 对等路由器与 RPKI 验证器保持一个 RTR 会话,接受 valid 路由,并在 RPKI-invalid 路由到达核心和客户之前于边缘将其丢弃。

如何在 OcNOS 上配置 RPKI 路由源验证

配置分为三部分:将路由器连接到验证器,让已验证表填充起来,并应用一个基于结果执行的策略。OcNOS 采用事务方式,因此每个阶段都通过以下命令应用 commit.

1. 将路由器连接到 RPKI 验证器

在 BGP 实例下,将路由器指向一个或两个 RTR 缓存。仅地址本身即为一条完整命令,而 port 为可选项,TCP 默认为 3323。

configure terminal
router bgp 64500
 bgp rpki server 10.0.0.10 port 3323
 bgp rpki server 10.0.0.11 port 3323
 commit

2. 匹配验证状态并丢弃 invalid 路由

使用 route-map 来根据 RPKI 状态执行处理。该 route-map 拒绝 invalid 路由并允许其他所有路由,因此 valid 和 not-found 路由被接受,而 invalid 路由被丢弃。

route-map RPKI-EDGE-IN deny 10
 match rpki invalid
!
route-map RPKI-EDGE-IN permit 20
 commit

3. 在对等会话的入方向应用该策略

在需要保护的地址族中,将 route-map 附加到 eBGP 对等体。在以下配置下重复此操作 address-family ipv6 unicast 以用于 IPv6。

router bgp 64500
 address-family ipv4 unicast
  neighbor 203.0.113.1 route-map RPKI-EDGE-IN in
  exit
 commit

如何验证 RPKI 验证是否正常工作?

确认验证器会话已建立、已验证表中有条目,并且路由正在被标记。OcNOS 为此提供了三条命令。

OcNOS# show bgp rpki server
OcNOS# show bgp rpki table
OcNOS# show bgp rpki

show bgp rpki server 会报告每个验证器及其会话是否已建立, show bgp rpki table 会列出路由器下载的已验证前缀到源记录, show bgp rpki 会汇总 RPKI 状态。一旦会话建立且表中有条目,验证失败的路由将带有 invalid 状态,并被边缘的 route-map 丢弃。

对等边缘的 RPKI

Origin validation is one layer of a secure peering edge, not the whole of it. On a complete open peering router, RPKI invalid-route rejection sits alongside prefix filtering aligned with MANRS, BGP FlowSpec for DDoS mitigation, and remote-triggered black-holing, so the router enforces routing hygiene and attack response from the same place it carries the full table. See how the roles fit together on the 开放 IP 核心与对等路由器.

分享