開始輸入,可搜尋發票、服務、域名、工單,以及 更多...
RPKI(資源公鑰基礎設施)用數字證書證明“哪個 ASN 有權廣播哪個 IP 段”,而 ROA(路由起源授權)就是寫明這一授權的簽名物件。如今越來越多運營商對 RPKI 無效的路由直接丟棄,沒有正確 ROA 的字首可能在部分網路中不可達。本文解釋什麼是 ROA 與 RPKI,介紹如何在 RIPE、APNIC、ARIN、AFRINIC 門戶為 IP 段建立 ROA、如何設定最大字首長度,以及如何用 rpki.cloudflare.com 和 Routinator 在 Debian/Ubuntu、CentOS/Rocky/AlmaLinux 上驗證。
路由器將收到的路由與 ROA 比對,得到三種結果:Valid(起源 ASN 與長度都匹配)、Invalid(ASN 不符或字首比最大長度更細,會被許多網路丟棄)、NotFound(沒有覆蓋該字首的 ROA)。先用 RIPEstat 介面查詢當前狀態:
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=198.51.100.0/24" | grep -o '"status":"[^"]*"'列出您實際廣播的所有字首及其起源 ASN。最大字首長度(Max Length)決定 ROA 還允許哪些更細的子字首:建議等於實際廣播長度,只為確實要廣播的更細字首單獨建立 ROA。把 Max Length 設得過寬(例如一個 /22 把最大長度設為 /24),等於允許他人冒用您的 ASN 廣播子字首進行劫持。
curl -s "https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS64500" | grep -o '"prefix":"[^"]*"'
birdc show route export upstream1 # BIRD 2
vtysh -c "show bgp ipv4 unicast neighbors 203.0.113.1 advertised-routes" # FRRPrefix Origin ASN Max Length
198.51.100.0/24 AS64500 24
198.51.100.0/23 AS64500 23 # only if you also announce the /23
2001:db8:100::/48 AS64500 48只有 IP 資源的持有者(或其授權的會員帳號)才能建立 ROA,各 RIR 入口大致如下(以各 RIR 當前介面為準):
填寫字首、起源 ASN 和最大長度並儲存,通常幾分鐘到一小時內釋出到 RPKI 倉庫。如果 IP 是向 IMIDC 租用的,資源持有者是 IMIDC,請提交工單提供字首、您的 ASN 和最大長度,我們會代為建立 ROA,並可同時建立 IRR route 物件。
Prefix: 198.51.100.0/24
Origin ASN: AS64500
Max Length: 24
IRR route object: yes開啟 rpki.cloudflare.com 的驗證器檢視,輸入 ASN 和字首即可看到 Valid/Invalid 結果,也能瀏覽覆蓋該字首的全部 ROA。RIPEstat、bgp.tools 等站點同樣可以檢視字首的 RPKI 狀態。也可以重複步驟 1 的命令確認結果變為 valid。
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=198.51.100.0/24" | grep -o '"status":"[^"]*"'Routinator 是 NLnet Labs 開源的 RPKI 驗證器,可以在自己的伺服器上獨立驗證,也能作為 RTR 服務給路由器提供資料。以下通過 Rust 工具鏈安裝(NLnet Labs 也提供 Debian/Ubuntu 與 RHEL 系的軟體包倉庫)。首次執行需要同步全部 RPKI 倉庫,可能需要數分鐘。
# Debian / Ubuntu
apt install -y curl build-essential
# CentOS / Rocky / AlmaLinux
dnf install -y curl gcc
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
cargo install --locked routinatorroutinator validate --asn AS64500 --prefix 198.51.100.0/24
routinator vrps --select-asn AS64500需要。很多上遊仍按 IRR 生成字首過濾列表,建議 ROA 與 route/route6 物件同時存在且一致。
RIR 釋出通常在一小時內,各網路的驗證器按自身週期重新整理,一般數十分鐘到數小時內全網可見。
可以,為每個 ASN 各建立一條 ROA 即可,適用於多個 ASN 同時廣播或遷移過渡期。
如仍無法解決,可提交工單聯絡 IMIDC 7×24 技術支援。