馬迪/MA Di
(互聯(lián)網(wǎng)域名系統(tǒng)國家地方聯(lián)合工程研究中心,中國 北京 100102 )
自2012年國際互聯(lián)網(wǎng)工程任務組(IETF1)完成基礎協(xié)議的標準化工作以來,歷經(jīng)國際互聯(lián)網(wǎng)體系結構委員會(IAB2) 的背書[1]以及國際互聯(lián)網(wǎng)路由安全自律協(xié)定(MANRS3)項目面向全球網(wǎng)絡運行機構的推廣倡議,互聯(lián)網(wǎng)碼號資源公鑰基礎設施(RPKI)已成為解決當前互聯(lián)網(wǎng)域間路由安全問題的技術路線共識。RPKI 的理念肇始于互聯(lián)網(wǎng)安全協(xié)議專家S. KENT 博士的論文[2],并通過對傳統(tǒng)的基于X.509公鑰基礎設施進行擴展[3],進入到IETF的工業(yè)標準體系。
RPKI 的部署和運行是一個復雜的系統(tǒng)工程,需要網(wǎng)絡運行機構(網(wǎng)絡運營商、互聯(lián)網(wǎng)交換中心、內容分發(fā)網(wǎng)絡服務商等)、RPKI 數(shù)據(jù)服務機構(互聯(lián)網(wǎng)IP 地址注冊機構、RPKI 依賴方系統(tǒng)服務商等)以及路由器制造商等角色的配合和協(xié)調。其中,RPKI依賴方(RP)系統(tǒng)充當了地址管理系統(tǒng)和路由控制系統(tǒng)之間RPKI 數(shù)據(jù)傳遞的橋梁,是連接RPKI數(shù)據(jù)供給側和RPKI數(shù)據(jù)需求側的RPKI生態(tài)關鍵環(huán)節(jié)。
RPKI 依賴方系統(tǒng)的部署,涉及網(wǎng)絡運行機構的路由控制策略、安全保障策略和地址分配策略,需要統(tǒng)籌網(wǎng)絡規(guī)模、拓撲結構、互聯(lián)互通策略以及地址資源分配格局等要素。這些要素會因應業(yè)務和技術的演進而隨之變化。設計一個既可以處理RPKI依賴方系統(tǒng)功能訴求的“普遍性”問題,又能兼顧具體網(wǎng)絡(及其變化)“特殊性”問題的可擴展部署機制,是RPKI 技術在網(wǎng)絡運營商、互聯(lián)網(wǎng)交換中心等網(wǎng)絡運行機構落地應用的關鍵。
RPKI 是一種公鑰證書基礎設施。基于當前全球的互聯(lián)網(wǎng)碼號資源分配關系,RPKI 構建了一個面向IP地址及互聯(lián)網(wǎng)自治系統(tǒng)(AS)號碼的授權認證體系,并以X.509 證書擴展及若干簽名對象的形式加以呈現(xiàn)。如圖1 所示,RPKI 體系中的碼號資源分配者在分配資源的同時,為下游節(jié)點簽發(fā)資源證書(基于X.509 證書的擴展)。依托RPKI 提供的認證功能,互聯(lián)網(wǎng)碼號資源(IP 地址及AS 號碼)的最終用戶單位(資源持有者)通過簽發(fā)相關數(shù)據(jù)對象,來完成路由通告相關信息的發(fā)布(例如路由起源授權等)。作為RPKI認證體系的依賴方,參與域間路由交互的網(wǎng)絡運行機構(例如網(wǎng)絡運營商、互聯(lián)網(wǎng)交換中心等)定期從RPKI 資料庫系統(tǒng)(基于碼號資源分配關系組織起來的分布式數(shù)據(jù)存儲體系)同步資源證書以及包括各類基于RPKI 的數(shù)據(jù)對象,并將經(jīng)過驗證的信息推送給邊界路由器,供其在接收路由通告時進行真?zhèn)闻袛唷?/p>
▲圖1 RPKI的工作原理
概括地講,RPKI 生態(tài)有3個組成部分:RPKI 供給側、RPKI 依賴方、RPKI 需求側。如圖2 所示,RPKI 供給側包含全球分布的RPKI 認證中心(CA)以及用于存儲RPKI資源證書和各類RPKI數(shù)據(jù)對象的分布式RPKI資料庫系統(tǒng)。RPKI需求側是當前互聯(lián)網(wǎng)的域間路由系統(tǒng),由部署在不同網(wǎng)絡自治域的邊界網(wǎng)關協(xié)議(BGP)路由器組成。RPKI 依賴方是連接“供給”和“需求”的橋梁,負責收集RPKI 供給側產生的數(shù)據(jù)并加以驗證后交付給RPKI需求側參考使用。
▲圖2 RPKI的生態(tài)結構
RPKI 數(shù)據(jù)盡可能快速、完整、準確地從供給側擴散至需求側的關鍵在于RPKI 依賴方。全盤考察RPKI 的運行機制,并結合相關RPKI 依賴方系統(tǒng)的運行實踐,筆者歸納了影響RPKI依賴方系統(tǒng)效能的4對矛盾:
矛盾1:RPKI資料庫(發(fā)布點)越來越多,與實時感知全球RPKI數(shù)據(jù)更新情況之間的矛盾;
矛盾2:RPKI數(shù)據(jù)對象數(shù)量越來越多,與快速同步全球RPKI數(shù)據(jù)之間的矛盾;
矛盾3:RPKI 數(shù)據(jù)授權鏈(深度和廣度)越來越復雜,和快速構建全球RPKI數(shù)據(jù)認證路徑之間的矛盾;
矛盾4:RPKI依賴方系統(tǒng)集中化趨勢(遠離網(wǎng)絡邊緣),和路由器快速獲得RPKI認證數(shù)據(jù)之間的矛盾。
以上矛盾既有在“RPKI 基本原理范疇”的普遍性,又有在“網(wǎng)絡互聯(lián)互通特征范疇”的特殊性,因此需要構建一個能夠因應網(wǎng)絡規(guī)模和信任模型變化而靈活調整的可擴展RPKI 依賴方系統(tǒng)部署機制。該機制映射至解決方案層面,即RPKI 依賴方系統(tǒng)應當有哪些組件,組件如何在網(wǎng)絡上分布及以何種邏輯關系進行分布。
可擴展RPKI依賴方系統(tǒng)部署機制在“RPKI基本原理范疇”的首要任務是,通過對RPKI 依賴方系統(tǒng)核心功能實施解耦,形成彼此“正交”的RPKI 依賴方系統(tǒng)的組件布局。按此原則,基于IETF RFC8897[4],筆者從工程實踐的角度梳理了RPKI 依賴方系統(tǒng)在理論上的最低技術要求,包括:同步RPKI 資料庫的數(shù)據(jù)、處理RPKI 資源證書、處理RPKI 數(shù)據(jù)簽名對象、分發(fā)驗證過的RPKI認證信息以及本地化控制。一個具備IETF RFC8897所列舉功能的系統(tǒng),可以稱為RPKI依賴方系統(tǒng)。
RPKI 依賴方系統(tǒng)在全球各個網(wǎng)絡內的部署已逾10 年,形成了一些運行實踐和討論。筆者在起草IETF 標準和進行RPKI系統(tǒng)設計的工作中,有兩點體會:在部署層面,RPKI依賴方系統(tǒng)的功能仍需要進一步模塊化(正交化);在運行層面,IETF RFC8897 所列舉的功能無法滿足商用路由控制系統(tǒng)對RPKI依賴方系統(tǒng)的需求。為此,構建可擴展的RPKI依賴方系統(tǒng)的第一步是將其核心功能模塊化,并給出各個模塊彼此解耦之后的邏輯關系(接口關系)。圖3 是筆者對RPKI依賴方系統(tǒng)的設計思考和建議。
▲圖3 RPKI依賴方系統(tǒng)組件
1)更新感知系統(tǒng)
將“更新感知”功能同“數(shù)據(jù)同步”功能進行解耦,是互聯(lián)網(wǎng)內容分發(fā)范疇常見的工程設計思路。當這一思路被應用到RPKI體系時,更新感知系統(tǒng)便成為了一個獨立的RPKI依賴方系統(tǒng)組件。該系統(tǒng)采用實時或不定時的方式獲得RPKI資料庫(RPKI數(shù)據(jù)發(fā)布點)的數(shù)據(jù)更新情況,并將這些更新信息傳遞給數(shù)據(jù)同步系統(tǒng)。
2)數(shù)據(jù)同步系統(tǒng)
數(shù)據(jù)同步系統(tǒng)以“全量”或“增量”的方式,將RPKI資料庫內發(fā)布的各類RPKI資源證書及RPKI數(shù)字簽名對象下載到本地網(wǎng)絡,以形成與RPKI 資料庫一致的且具有一定時效的數(shù)據(jù)副本。在當前的RPKI 生態(tài)中,數(shù)據(jù)同步系統(tǒng)和RPKI資料庫之間的接口已經(jīng)在IETF形成標準[5]。
3)數(shù)據(jù)驗證系統(tǒng)
數(shù)據(jù)驗證系統(tǒng)先后對相關證書及數(shù)據(jù)簽名對象進行語法檢查和RPKI 邏輯驗證。其中,語法檢查包括檢查相關數(shù)據(jù)格式是否符合技術標準、是否在有效期內等,RPKI 邏輯驗證包括驗證PKI數(shù)字簽名、驗證相關的互聯(lián)網(wǎng)碼號資源包含關系[6]以及其他與RPKI 授權體系相關的邏輯驗證等。
4)數(shù)據(jù)分析系統(tǒng)
RPKI 是一個分布式系統(tǒng),因此位于不同RPKI 授權體系子樹上的數(shù)據(jù)可能存在沖突關系(碼號資源分配、授權信息等)。數(shù)據(jù)分析系統(tǒng)旨在根據(jù)一定的算法,輔之以WHOIS 數(shù)據(jù)、BGP 廣播存檔數(shù)據(jù)等帶外數(shù)據(jù),對潛在的沖突關系進行檢測,給出可能的(本地化)修正方案,并輸出至本地控制系統(tǒng)。
5)本地控制系統(tǒng)
出于網(wǎng)絡管理和安全保障的需求,網(wǎng)絡運行機構可能希望以“本地過濾和添加”的形式建立RPKI 路由認證數(shù)據(jù)的本地視圖,對來自全球RPKI 的數(shù)據(jù)進行覆蓋。本地控制系統(tǒng)對“驗證緩存”直接進行操作,增加或刪減相關的路由認證數(shù)據(jù)條目。工業(yè)界將這種操作稱為RPKI 本地化控制(SLURM)。SLURM配置文件格式已經(jīng)在IETF形成標準[7]。
6)數(shù)據(jù)分發(fā)系統(tǒng)
經(jīng)過驗證并最終可以供給路由器進行RPKI 路由認證的數(shù)據(jù)稱為“驗證緩存”?;凇爸鲝哪P汀保瑪?shù)據(jù)分發(fā)系統(tǒng)將“驗證緩存”從一個網(wǎng)絡節(jié)點分發(fā)至其他一個或多個有信任關系的網(wǎng)絡節(jié)點,實現(xiàn)RPKI 驗證數(shù)據(jù)的共享。對于數(shù)據(jù)分發(fā)系統(tǒng),RPKI 意義上的數(shù)字簽名已不復存在,其完整性依賴于傳輸信道(如超文本傳輸安全協(xié)議)。
7)路由器對接系統(tǒng)
RPKI 供給側形成的路由認證數(shù)據(jù),通過同步、驗證、分發(fā)、本地化處理,最終形成副本,然后經(jīng)路由器對接系統(tǒng),注入至BGP 路由器?;凇翱蛻舳?服務器”操作模型,維護“驗證緩存”的網(wǎng)絡節(jié)點充當服務器,同時路由器充當客戶端。兩者之間的通信由一種RTR 的IETF 標準化協(xié)議承載[8]。
基于RPKI 依賴方系統(tǒng)核心組件的解耦機制,本節(jié)探討可擴展RPKI 依賴方系統(tǒng)部署機制在“網(wǎng)絡互聯(lián)互通特征范疇”的特殊性,就如何將相關組件編排在網(wǎng)絡運行機構所管理的云和網(wǎng)的不同位置,設計一個能夠適配各類規(guī)模網(wǎng)絡(骨干網(wǎng)運營商、互聯(lián)網(wǎng)交換中心、內容分發(fā)網(wǎng)絡服務商等)的RPKI依賴方系統(tǒng)組件部署機制(框架)。
針對前文所述RPKI 依賴方系統(tǒng)的4 對矛盾,面向一個規(guī)模網(wǎng)絡的一般特征,筆者建議在RPKI 依賴方系統(tǒng)的組件顆粒度上展開相關設計,包括:一個RPKI 依賴方系統(tǒng)北向分布式節(jié)點群組、一個RPKI 依賴系統(tǒng)方南向分布式節(jié)點群組和一個RPKI 依賴方系統(tǒng)主控中心。如圖4 所示,北向分布式節(jié)點群組面向RPKI供給側,從分布式的RPKI資料庫獲取RPKI 原始數(shù)據(jù),包含RPKI 更新感知節(jié)點和RPKI 數(shù)據(jù)同步節(jié)點;南向分布式節(jié)點群組面向RPKI 需求側,將驗證過的RPKI 路由認證數(shù)據(jù)分發(fā)給分布式網(wǎng)絡的邊界路由器,即RPKI數(shù)據(jù)分發(fā)節(jié)點的集合;主控中心負責RPKI數(shù)據(jù)的驗證和其他綜合處理任務,包含RPKI更新匯聚節(jié)點、RPKI邏輯驗證節(jié)點、RPKI本地管理節(jié)點、RPKI數(shù)據(jù)分析節(jié)點等。
▲圖4 規(guī)模網(wǎng)絡上的RPKI依賴方系統(tǒng)組件部署示例
RPKI 依賴方系統(tǒng)的各個組件在該架構下的部署機制如下:
1)更新感知系統(tǒng)
鑒于RPKI 資料庫的全球分布特征,更新感知系統(tǒng)相應地采用分布式的更新獲取方法。該系統(tǒng)擁有“更新感知模塊”和“更新匯聚模塊”。前者部署在分布式的“更新感知節(jié)點”之上。全體“更新感知節(jié)點”按照一定的編排算法各自分工,完成對RPKI 資料庫的遍歷,并傳遞給負責整合更新信息的“更新匯聚節(jié)點”。“更新匯聚節(jié)點”再將更新信息傳遞至數(shù)據(jù)同步系統(tǒng)。
全球大型運營商(例如Tier 1 ISP)或頭部流量的互聯(lián)網(wǎng)交換中心,可以考慮將更新感知系統(tǒng)的尋址信息(域名、IP地址等)和接口方式公布出去,供相關的RPKI 發(fā)布點主動推送更新信息。
2)數(shù)據(jù)同步系統(tǒng)
面向全球RPKI 資料庫的分布特征,數(shù)據(jù)同步系統(tǒng)也采用分布式的部署形態(tài),根據(jù)一定的編排算法,將同步任務分散至不同的“數(shù)據(jù)同步節(jié)點”。“更新匯聚節(jié)點”負責運行該編排算法,在統(tǒng)籌更新任務來源、同步節(jié)點數(shù)量、同步節(jié)點分布位置等要素的前提下,實現(xiàn)同步任務的動態(tài)分配。多個“數(shù)據(jù)同步節(jié)點”的分布采用和“更新感知節(jié)點”類似的策略。
3)數(shù)據(jù)驗證系統(tǒng)
面向RPKI 的數(shù)據(jù)驗證系統(tǒng)的核心是建立數(shù)據(jù)對象之間的關聯(lián),包括經(jīng)典公鑰基礎設施(PKI)體系下的數(shù)字簽名驗證路徑構建,以及RPKI 特有的碼號資源包含關系驗證。這種“關聯(lián)性”的驗證任務(證書路徑驗證、資源包含關系驗證)由數(shù)據(jù)驗證系統(tǒng)的RPKI 邏輯驗證模塊負責。該模塊站在全局視角,以集中化的方式對來自不同“數(shù)據(jù)同步節(jié)點”的合規(guī)數(shù)據(jù)進行綜合處理,并以“RPKI邏輯驗證節(jié)點”的形式部署在網(wǎng)絡運行機構的網(wǎng)運中心(NOC)。數(shù)據(jù)驗證系統(tǒng)的語法檢查模塊不涉及對數(shù)據(jù)關聯(lián)性的驗證,可以部署在“數(shù)據(jù)同步節(jié)點”之上,對相關數(shù)據(jù)進行語法合規(guī)檢查,實現(xiàn)“邊同步,邊語法檢查”的高效機制。合規(guī)數(shù)據(jù)會匯聚至“RPKI邏輯驗證節(jié)點”。
4)數(shù)據(jù)分析系統(tǒng)
數(shù)據(jù)分析系統(tǒng)承擔的是RPKI 數(shù)據(jù)同步、驗證等任務之外的旁路功能,宜獨立部署在專用的RPKI 數(shù)據(jù)分析節(jié)點之中。
5)本地控制系統(tǒng)
本地控制系統(tǒng)將連同其他一些面向RPKI 的互聯(lián)網(wǎng)碼號資源本地管理支撐系統(tǒng)(可視化、運行監(jiān)控等),部署在專用的RPKI本地管理節(jié)點之中。
6)數(shù)據(jù)分發(fā)系統(tǒng)
鑒于數(shù)據(jù)分發(fā)系統(tǒng)的核心任務是將RPKI 驗證緩存從集中管理的RPKI 依賴方系統(tǒng)主控節(jié)點分發(fā)至分布式部署的路由控制系統(tǒng),其部署節(jié)點宜根據(jù)網(wǎng)絡運行機構所轄自治域的數(shù)量和管理機制進行規(guī)劃,以方便BGP 邊界路由器在就近獲取RPKI 驗證緩存的同時,在網(wǎng)絡運行機構的網(wǎng)絡管理邊界之內形成一致的RPKI 數(shù)據(jù)視圖。數(shù)據(jù)分發(fā)系統(tǒng)部署在數(shù)據(jù)分發(fā)節(jié)點之上,并根據(jù)該系統(tǒng)所定義的“主從模型”使相關節(jié)點(“分發(fā)服務器模塊” 與“分發(fā)客戶端模塊”)形成一個有序的數(shù)據(jù)共享體系。
7)路由器對接系統(tǒng)
路由器對接系統(tǒng)部署在面向路由器服務的末梢數(shù)據(jù)分發(fā)節(jié)點之上。
RPKI 依賴方系統(tǒng)主控中心可部署在網(wǎng)絡運行機構的NOC 之中。北向分布式節(jié)點群組的節(jié)點數(shù)量和分布規(guī)則,可結合網(wǎng)絡拓撲以及去RPKI 資料庫之“遠近”(路由及尋址)情況量體裁衣。南向分布式節(jié)點群組的節(jié)點數(shù)量和分布規(guī)則,可參考網(wǎng)絡運行機構的網(wǎng)絡互聯(lián)互通情況和管理機制進行規(guī)劃設計。
RPKI 依賴方系統(tǒng)連接RPKI 供給側和RPKI 需求側,是各類網(wǎng)絡運行機構開展RPKI 應用實踐的一個關鍵環(huán)節(jié)。RPKI依賴方系統(tǒng)的研發(fā)和部署,既需要關注RPKI核心功能的“普遍性”問題,又需要兼顧網(wǎng)絡互聯(lián)互通特征的“特殊性”問題。相關解決方案需要考慮RPKI 依賴方系統(tǒng)有哪些組件,各個組件如何在網(wǎng)絡上分布,以及以何種邏輯關系分布。因此,各類網(wǎng)絡運行機構使用RPKI 依賴方系統(tǒng)實施路由認證,不僅是簡單的軟硬件集成,更需要設計能夠“因地制宜”涵蓋功能編排、部署方法及運行機制的一攬子解決方案。
面向RPKI 依賴方系統(tǒng)的核心功能,本文梳理了影響RPKI 依賴方系統(tǒng)運行效能的4 對矛盾,并提出了一種可擴展的RPKI 依賴方系統(tǒng)部署機制,包含軟件層面的解耦機制和硬件層面的部署機制。本文相關論述是對RPKI 依賴方系統(tǒng)在規(guī)模網(wǎng)絡運行機構內進行服務模式設計的宏觀思考。骨干網(wǎng)運營商、CDN 服務商和互聯(lián)網(wǎng)交換中心,在互聯(lián)互通格局和碼號資源管理等范疇具有不同特征。面向這些特征,探索如何在現(xiàn)有網(wǎng)絡運維管理系統(tǒng)上增量部署RPKI 依賴方系統(tǒng)組件以及對應的運行機制,是RPKI 路由認證領域下一步值得深入研究的問題。