開始輸入,可搜尋發票、服務、域名、工單,以及 更多...
當企業的業務發展到一定規模,常常會遇到這樣的需求:希望使用自己的 IP 地址、在多個機房之間遷移而不換 IP、或者讓全球使用者就近訪問同一個地址。這些都離不開 BGP、ASN 與 Anycast。本文用通俗的語言解釋這幾個概念,並梳理申請 ASN 與 IP 段、完成路由廣播的完整流程。
本文適合以下讀者:
建議提前準備:公司註冊資料、網路規劃說明(為什麼需要獨立路由策略、計劃接入哪些上遊)、技術聯絡人資訊。
BGP(Border Gateway Protocol,邊界閘道器協議,當前版本為 BGP-4)是網際網路上各個網路之間交換路由資訊的協議。每個網路通過 BGP 告訴鄰居:"這些 IP 段在我這裡,可以經過我到達。"全球路由表就是由數萬個網路相互宣告形成的。
ASN(Autonomous System Number,自治系統號)用於唯一標識一個獨立管理路由策略的網路。目前常見的是 4 位元組 ASN,範圍可達約 42 億個。其中 64512–65534 以及 4200000000–4294967294 為私有 ASN,只能在內部使用,不能出現在公網全球路由表中。
Anycast(任播)是指在多個地點通過 BGP 同時宣告同一個 IP 段。使用者訪問該 IP 時,會根據路由選擇被導向"網路距離"最近的節點。公共 DNS、CDN 和 DDoS 清洗網路普遍採用 Anycast,它的優勢包括:
全球 IP 地址與 ASN 由 IANA 統一分配給五個區域網際網路註冊管理機構(RIR):
| RIR | 服務區域 |
|---|---|
| APNIC | 亞太地區(含中國香港、台灣、日本、新加坡等) |
| RIPE NCC | 歐洲、中東及中亞(含俄羅斯) |
| ARIN | 美國、加拿大及部分加勒比地區 |
| LACNIC | 拉丁美洲及部分加勒比地區 |
| AFRINIC | 非洲(含南非) |
一般應向公司註冊地或網路主要所在地對應的 RIR 申請。
申請 ASN 時,RIR 通常要求說明多宿主(Multihoming)或獨立路由策略需求,即計劃同時與兩個及以上上遊網路建立 BGP 互聯。
IPv4 地址在各 RIR 均已基本耗盡,新會員通常只能通過等待名單獲得少量地址,或通過 IP 轉讓市場購買、向持有者租用。IPv6 地址則資源充足,新申請一般較容易獲批,建議同步規劃 IPv6。需要注意的是,公網路由中 IPv4 最小可廣播字首通常為 /24,IPv6 通常為 /48。
拿到 ASN 與 IP 段後,還需要讓上遊服務商幫你把路由宣告到全球。這一過程涉及以下幾個關鍵環節。
LOA(Letter of Authorization)是 IP 段持有者出具的授權檔案,證明你授權某服務商(或其上遊)廣播指定字首。上遊網路通常會核對 LOA 與 RIR 資料庫中的持有人資訊是否一致。
IRR(Internet Routing Registry)是公開的路由註冊資料庫。你需要在 RIR 資料庫或 RADB 等 IRR 中建立 route / route6 物件,宣告"某個字首由某個 ASN 發起"。很多上遊根據 IRR 自動生成過濾規則,缺少路由物件會導致宣告被拒絕。查詢示例:
whois -h whois.radb.net 203.0.113.0/24
whois -h whois.radb.net -- '-i origin AS64500'
RPKI 通過密碼學證書驗證"誰有權發起某個字首"。在 RIR 會員後臺為字首建立 ROA(Route Origin Authorization),指定允許發起的 ASN 和最大字首長度。如今越來越多的運營商會丟棄 RPKI 驗證為 Invalid 的路由,沒有正確的 ROA,路由很可能在部分網路不可達。可以用以下命令檢視字首所屬資訊:
whois -h whois.apnic.net 203.0.113.0
若服務商為你提供 BGP Session,可在 Linux 伺服器上使用 BIRD 2 宣告字首。以下示例中的 ASN、IP 均為文件保留值,請替換為服務商提供的實際引數:
apt install -y bird2
/etc/bird/bird.conf 示例:
router id 192.0.2.10;
protocol device { }
protocol static announce_v4 {
ipv4;
route 203.0.113.0/24 unreachable;
}
protocol bgp upstream {
local 192.0.2.10 as 64500;
neighbor 192.0.2.1 as 64496;
ipv4 {
import none;
export where net = 203.0.113.0/24;
};
}
過載配置並檢查會話狀態:
systemctl restart bird
birdc show protocols
birdc show route export upstream
會話狀態顯示為 Established 即表示 BGP 已建立。注意還需把該 IP 段中實際使用的地址配置到網絡卡上,業務才能正常對外提供服務。
可以。部分服務商支援使用其 ASN 代為宣告你的 IP 段,只需提供 LOA 並配合完成 IRR、ROA 設定即可,適合暫時不打算申請 ASN 的使用者。
視 RIR 及資料完整程度而定,資料齊全時通常數個工作日到數週不等。成為 RIR 會員的流程會更長一些。
Anycast 最適合無狀態或短連線業務,如 DNS、CDN、API 閘道器。長連線或強狀態業務需要額外設計,避免路由變化導致連線切換到其他節點。
先檢查 ROA 是否覆蓋正確的 ASN 與字首長度、IRR 物件是否已生效,再用 bgp.tools 等公開工具或 Looking Glass 檢視全球路由傳播情況。
BGP 讓網路互聯,ASN 標識網路身份,Anycast 則讓同一地址在全球就近服務;而 LOA、IRR 與 RPKI ROA 是讓自有 IP 被正確廣播的三項關鍵準備。IMIDC 是 RIPE NCC、APNIC、ARIN、AFRINIC 的會員,可為企業提供 ASN 與 IP 段相關諮詢、BGP 廣播與 Anycast 方案,並支援在多個機房的伺服器與託管業務中接入。由於具體流程需要人工稽核資料,如有需求請在客戶中心提交工單,7x24 小時技術團隊會與你確認細節。