傳統存取控制列表(ACL)在骨幹路由器上逐封包比對 IP 黑名單,效能極差且難以維護。GFW(長城防火牆)採用路由擴散技術,利用動態路由協定的路由重分發機制,將封鎖目標 IP 轉化為黑洞路由並透過 BGP/OSPF 擴散至全網核心節點,實現線速、無狀態、大規模封鎖。本文深度解析其原理。
背景:ACL 的效能瓶頸
- ACL 工作於 L2/L3,每封包需逐條比對規則表(線性或樹狀查找)。
- 骨幹路由器轉發量達 Tbps 級,百萬條 ACL 規則會嚴重增加查表延遲、消耗 TCAM 資源,導致轉發效能下降、甚至封包丟棄。
- ACL 變更需逐台設備下發,管理複雜度極高。
動態路由協定與重分發基礎
路由協定層級
- IGP(內部閘道協定):OSPF、IS-IS、RIP — AS 內部路由計算,收斂快、度量標準統一。
- EGP(外部閘道協定):BGP — AS 間路由交換,策略豐富、支援海量路由(全網路由表 90 萬+ 條)。
路由重分發
將某協定學習到的路由「注入」另一協定宣告。典型場景:
- OSPF ↔ BGP 互相重分發:資料中心內部路由宣告至網際網路,或引入外部路由至內部。
- 靜態路由 → OSPF/IS-IS:管理員手動配置靜態路由(如黑洞路由),由 IGP 擴散至全域網路,免逐台配置。
GFW 路由擴散封鎖機制
- 策略中心:依法規/情報產生封鎖目標 IP 清單(單一 IP、CIDR 區塊)。
- 生成黑洞靜態路由:在核心路由器(或專用策略伺服器)配置:
ip route 目標_IP 255.255.255.255 Null0(或 blackhole)。
該路由導向 Null0 介面(虛擬介面,收到封包直接丟棄,不產生 ICMP Unreachable)。
- 重分發至 IGP (OSPF/IS-IS):配置
redistribute static route-map GFW_BLOCK,將黑洞路由注入 OSPF 域內,作為 Type 5 External LSA 洪泛至全域區域(或特定區域)。
- 可選:重分發至 BGP:對跨 AS 封鎖,透過
redistribute static into BGP 搭配 Community 屬性(如 65535:666)標記,下游 AS 依策略接收並同樣導向 Null0。
- 轉發平面零負擔:資料平面僅依最長前綴匹配(LPM)查找 FIB,命中黑洞路由即丟棄,無額外 ACL 查表、無狀態檢查、無封包檢測延遲,實現線速封鎖。
關鍵技術細節
- 路由優先級:靜態路由 AD=1,優於 OSPF (110)、BGP (20/200),確保黑洞路由生效。
- 防止路由洩漏:Route-map/策略過濾,僅允許標記 Community 的黑洞路由進入 BGP,避免污染全網路由表。
- 聚合壓縮:將分散 IP 聚合為 CIDR 區塊(如 /24、/20),減少路由條目數量,節省 TCAM/FIB 空間。
- 快速收斂:OSPF LSA 刷新/老化機制、BGP Route Refresh,封鎖名單變更可在秒級推送至全網。
- 旁路部署:核心轉發路徑不經檢測設備,檢測設備僅負責產生路由策略,透過 BGP/OSPF 下發,實現「檢測與轉發分離」。
防禦與繞過視角
- 防禦者:監控路由表異動(BGPmon、RIPE RIS)、偵測異常黑洞路由、部署 RPKI/ROA 驗證路由來源合法性。
- 研究者:分析路由擴散路徑、測量封鎖生效時間、探測邊界節點。
- 使用者:加密流量(TLS/VPN/Proxy)繞過內容檢測,但無法繞過路由層面的黑洞封鎖(除非改變目的 IP 或使用未被封鎖的中繼節點)。
路由擴散技術展示了「將安全策略編碼為路由資訊」的架構思維:以控制平面決策替代資料平面檢查,以協定標準化替代廠商私有 ACL,以分散式擴散替代集中式下發。此模式亦廣泛應用於DDoS 黑洞清洗(RTBH)、資料中心微分段、SDN 控制器下發流表等現代網路安全架構中。