服務提供商

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 核心與對等路由器.

分享