ESC

開始輸入,可搜尋發票、服務、域名、工單,以及 更多...

搜尋... Ctrl+K
IP 與 ASN

用自有 ASN 廣播租用 IP 段:LOA 授權書、IRR 路由物件、ROA 與 BGP 生效檢查

6 個步驟 9 分鐘閱讀 29 次閱讀 0
本文目錄

從 IMIDC 租用了 IPv4 / IPv6 地址段,想在自己的機房或其他服務商處用自有 ASN 做 BGP 廣播?這類需求通常需要三樣東西:IP 持有方出具的 LOA 授權書、IRR 中的路由物件(route / route6),以及 RPKI 的 ROA。本文梳理整個流程:LOA 是什麼、申請時需要提供哪些資訊、IRR 與 ROA 怎麼配合、上遊如何過濾,以及如何用 bgp.tools、bgp.he.net、RIPEstat 確認廣播生效。適用於已經擁有 ASN、並與上遊建立了 BGP 會話的網路運營者。

本文使用文件示例地址 203.0.113.0/24、2001:db8:1000::/48 與私有 ASN AS64500,請替換為你的實際資源。BGP 會話本身的建立請參考幫助中心“BGP 會話”教程,ROA 的細節請參考“ROA/RPKI”教程。

步驟 1:瞭解 LOA 授權書在 BGP 廣播中的作用

LOA(Letter of Authorization,授權書)是 IP 地址持有方出具的書面檔案,宣告“允許 ASxxx 廣播某某字首”。大多數上遊運營商和 IX 在接受客戶字首前都會核驗:這段 IP 屬於誰、你有沒有權利廣播。僅憑 LOA 不夠,現在多數上遊還會自動檢查 IRR 和 RPKI,所以 LOA、IRR 路由物件和 ROA 三者應保持一致。

步驟 2:向 IMIDC 申請 LOA 時需要提供的資訊

通過工單提交 LOA 申請,並準備好以下資訊。資訊越完整,處理越快:

Prefix(es):        203.0.113.0/24   2001:db8:1000::/48
Origin ASN:        AS64500
Company / holder:  Example Networks Ltd
Upstream(s):       AS64510 (Transit Provider A), AS64520 (IX route server)
Announce from:     2026-10-10
IRR source:        RIPE / RADB
Technical contact: [email protected]
  • 字首:IPv4 全球路由通常最小接受 /24,IPv6 通常最小 /48,更小的字首大機率會被過濾。
  • 源 ASN:你將用來廣播的 ASN,以及該 ASN 的持有主體名稱。
  • 上遊:上遊服務商名稱與 ASN,部分上遊要求 LOA 上寫明它們的名稱。
  • 開始時間:計劃開始廣播的日期,便於安排 IRR 與 ROA 的更新。

步驟 3:建立 IRR 路由物件(RIPE DB / RADB)

IRR(Internet Routing Registry)是全球路由註冊資料庫,許多上遊用它自動生成字首過濾器。對於 RIPE 區域的地址,route 物件建立在 RIPE 資料庫中,需要地址持有方授權,通常由 IMIDC 代為建立或授權;非 RIPE 區域地址常用 RADB。具體寫法見幫助中心“IRR 路由物件建立”教程。建立後可以用 whois 查詢確認:

# install whois: Debian/Ubuntu
apt install -y whois
# CentOS/Rocky/AlmaLinux
dnf install -y whois

# route object in the RIPE database
whois -h whois.ripe.net -T route 203.0.113.0/24
whois -h whois.ripe.net -T route6 2001:db8:1000::/48
# route object mirrored / registered in RADB
whois -h whois.radb.net 203.0.113.0/24

確認輸出中的 origin 欄位就是你的 ASN。

步驟 4:確認 ROA 已簽發,避免 RPKI Invalid

越來越多的運營商對 RPKI Invalid 的路由直接丟棄。如果這段 IP 已存在 ROA 但授權的是其他 ASN,你的廣播會被判為 Invalid。請在工單中要求為你的 ASN 簽發 ROA,並注意最大字首長度(maxLength)要覆蓋你實際廣播的長度。可以用 RIPEstat 介面檢查狀態:

# RPKI status of origin AS64500 for the prefix (RIPEstat API)
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=203.0.113.0/24" | python3 -m json.tool | grep -E '"status"|"validating_roas"' -A2

狀態為 valid 才算正常;unknown 表示沒有 ROA,多數網路仍會接受;invalid 必須先修正再廣播。

步驟 5:讓上遊更新過濾器並在路由器上釋出字首

上遊通常按你的 ASN 或 as-set 從 IRR 生成字首列表,有的每天自動重新整理,有的需要你提交工單通知並附上 LOA。上遊確認後,在你自己的路由器上釋出字首。以 BIRD 2 為例:

# BIRD 2 example (see the "BGP session" guide for the full config)
protocol static announce_v4 {
    ipv4;
    route 203.0.113.0/24 blackhole;
}

filter export_upstream {
    if net = 203.0.113.0/24 then accept;
    reject;
}

# reload and check
birdc configure
birdc show route export upstream_v4
只匯出你被授權的字首,務必使用明確的匯出過濾器,不要把從其他對等方學到的路由轉發給上遊,以免造成路由洩露。

步驟 6:用 bgp.tools、bgp.he.net 與 RIPEstat 檢查廣播生效

廣播後一般幾分鐘內就會出現在全球路由表中。在瀏覽器開啟 bgp.tools 或 bgp.he.net 搜尋字首,檢視源 ASN、上遊路徑與 RPKI 狀態;RIPEstat(stat.ripe.net)的 Routing Status 可以看到多少個 RIS 採集點看到了這條路由。命令列也可以查詢:

# who sees the prefix and with which origin (RIPEstat)
curl -s "https://stat.ripe.net/data/routing-status/data.json?resource=203.0.113.0/24" | python3 -m json.tool | head -40
# how many RIS peers see it
curl -s "https://stat.ripe.net/data/visibility/data.json?resource=203.0.113.0/24" | python3 -m json.tool | grep -E '"ris_peers_seeing"|"total_ris_peers"'

# from your router: is the session up and the route exported?
birdc show protocols
# test reachability of an address in the prefix from outside
mtr -rwc 20 203.0.113.1

典型時間線:提交完整資料後,LOA 與 IRR/ROA 的準備通常需要數個工作日內完成(視資料完整度與稽核情況而定);上遊更新過濾器從幾小時到幾天不等,取決於上遊的自動化程度;路由本身在全球傳播通常只需幾分鐘;部分地理位置資料庫更新會更慢,可參考“Geofeed”教程。

常見問題

bgp.tools 上看不到我的字首?

依次檢查:BGP 會話是否 Established;路由器上是否真的匯出了該字首;上遊是否已更新過濾器(可在上遊的 Looking Glass 中查詢);RPKI 是否為 Invalid。

可以把 /24 拆成更小的段廣播嗎?

IPv4 小於 /24 的字首在網際網路上普遍被過濾,不建議這樣做。可以在 /24 內部自行劃分子網使用,對外仍然廣播完整的 /24。

更換上遊或 ASN 需要重新申請嗎?

更換 ASN 需要重新出具 LOA,並更新 IRR 路由物件和 ROA;只更換上遊時,通常只需讓新上遊更新過濾器,部分上遊會要求新的 LOA。

如仍無法解決,可提交工單聯絡 IMIDC 7×24 技術支援:https://www.imidc.com/submitticket.php

這篇文章有幫助嗎?

相關教程