肖文龍,馬 迪,,毛 偉,邵 晴
1(中國(guó)科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190)
2(中國(guó)科學(xué)院大學(xué),北京 100049)
3(互聯(lián)網(wǎng)域名系統(tǒng)國(guó)家地方聯(lián)合工程研究中心,北京,100190)
隨著全球互聯(lián)網(wǎng)規(guī)模不斷擴(kuò)大,各個(gè)AS (autonomous system,自治系統(tǒng))間的流量轉(zhuǎn)發(fā)也愈發(fā)頻繁.而不同AS 之間能夠互聯(lián)互通的關(guān)鍵就是BGP (border gateway protocol,邊界網(wǎng)關(guān)協(xié)議) 協(xié)議[1].但其基于互聯(lián)網(wǎng)安全可信原則,沒(méi)有提供保障BGP 消息真實(shí)性和有效性等的安全機(jī)制,致使它很容易因網(wǎng)絡(luò)運(yùn)維者的配置失誤或惡意攻擊的影響,引發(fā)嚴(yán)重的BGP路由泄露與劫持事件,嚴(yán)重威脅全球互聯(lián)網(wǎng)的安全與穩(wěn)定.
有鑒于此,業(yè)界與學(xué)術(shù)界著手制定替代BGP的安全域間路由方案.其中應(yīng)用最為廣泛的是IETF (Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組) 提出的通過(guò)RPKI (resource public key infrastructure,資源公鑰基礎(chǔ)設(shè)施)[2]來(lái)進(jìn)行的BGP 路由起源驗(yàn)證的安全方案,即ROV (route origin validation,路由起源驗(yàn)證)[2].
RPKI 體系的核心設(shè)計(jì)思想是通過(guò)構(gòu)建一套層次結(jié)構(gòu)的PKI (public key infrastructure,公鑰基礎(chǔ)設(shè)施)實(shí)現(xiàn)對(duì) INR (Internet number resource,互聯(lián)網(wǎng)碼號(hào)資源)所有權(quán)的分配和驗(yàn)證[3].如圖1中所示,RPKI 是以RIR (regional internet registry,區(qū)域互聯(lián)網(wǎng)注冊(cè)機(jī)構(gòu))為單一信任錨點(diǎn)的層級(jí)信任模型.該模型通過(guò)逐層簽發(fā)證書,構(gòu)建出從根證書到最低層次的CA (certificate authority,證書頒發(fā)機(jī)構(gòu)) 證書的信任鏈,使得RP (relaying partiy,依賴方)從統(tǒng)一的根證書就可以驗(yàn)證任意CA 證書[3].此外,從圖1可知RPKI 體系對(duì)于IP 地址前綴與路由起源分配關(guān)系的簽發(fā)和驗(yàn)證并不依賴BGP 協(xié)議,這最大程度的降低了在BGP 上廣泛實(shí)施ROV 時(shí),對(duì)全局BGP 路由收斂速度的不利影響.
RPKI 帶外驗(yàn)證的優(yōu)勢(shì)使其迅速成為實(shí)施ROV的主流技術(shù),但至今為止RPKI 覆蓋的IP 地址空間占比仍然較小,實(shí)現(xiàn)全面部署依然漫長(zhǎng).根據(jù)來(lái)自ICANN的最新報(bào)告[4]以及APNIC (Asia Pacific Network Information Centre,亞太網(wǎng)絡(luò)信息中心)的研究[5]表明RPKI 全面部署主要面臨如下幾個(gè)障礙:
(1)數(shù)據(jù)同步一致性問(wèn)題;
(2)供給側(cè)運(yùn)維失誤風(fēng)險(xiǎn);
(3)5 大RIR的權(quán)利濫用風(fēng)險(xiǎn).
1.2.1 數(shù)據(jù)同步非一致性問(wèn)題
由于各個(gè)RP 服務(wù)器與RPKI 資料庫(kù)進(jìn)行數(shù)據(jù)同步及其驗(yàn)證是獨(dú)立的,各個(gè)RP 之間的數(shù)據(jù)同步,驗(yàn)證并不會(huì)相互影響.這使得各個(gè)RP的本地?cái)?shù)據(jù)不一致,這將致使其輸出至各個(gè)AS的有效路由授權(quán)與全局實(shí)際有效路由信息發(fā)生沖突,最終導(dǎo)致不同AS 之間存在路由信息沖突.
1.2.2 供給側(cè)運(yùn)維失誤風(fēng)險(xiǎn)
目前RPKI的CA 證書資料庫(kù)依然是通過(guò)網(wǎng)絡(luò)管理人員進(jìn)行運(yùn)維,難免會(huì)發(fā)生一些人為失誤,主要的失誤為:CA 資料庫(kù)數(shù)據(jù)更新不及時(shí).ISP (Internet service provider,網(wǎng)絡(luò)服務(wù)提供商) 以授權(quán)模型部署RPKI 時(shí),其被上級(jí)資源持有機(jī)構(gòu)授權(quán)自行管理被分配的IP 地址前綴資源的RPKI 簽名對(duì)象.ICANN 指出一些小型ISP 對(duì)于其CA 資料庫(kù)的數(shù)據(jù)運(yùn)維不及時(shí)或是放棄運(yùn)維,導(dǎo)致資料庫(kù)中的RPKI 簽名對(duì)象文件過(guò)期[3].這將導(dǎo)致其他部署RPKI的AS 因該ISP 簽發(fā)的ROA (route origin authorization,路由起源授權(quán))證書過(guò)期而將其驗(yàn)證為無(wú)效.
1.2.3 5 大RIR的權(quán)利濫用風(fēng)險(xiǎn)
(1)單一撤銷機(jī)制
RPKI 證書頒發(fā)機(jī)構(gòu)通過(guò)簽發(fā)CRL (certificate revocation list,證書撤銷列表),對(duì)未過(guò)期的有效證書的撤銷,并且這種撤銷操作是單方面的,即無(wú)需要證書的私鑰持有者許可.文獻(xiàn)[6]指出這種權(quán)力的失衡使IP前綴資源的使用者暴露在隨時(shí)可能被剝奪合法網(wǎng)絡(luò)使用權(quán)的風(fēng)險(xiǎn)下.
(2)隱性撤銷
RPKI 權(quán)威機(jī)構(gòu)亦可以通過(guò)不發(fā)布綁定了IP 前綴使用者的簽名對(duì)象文件,或是拒絕RP 訪問(wèn)該簽名對(duì)象文件,來(lái)達(dá)到IP 前綴與使用者的授權(quán)關(guān)系實(shí)際不生效的效果[6].
(3)資源覆蓋與重寫
RPKI 權(quán)威機(jī)構(gòu)將已分配給下級(jí)資源持有者的前綴區(qū)塊重新簽發(fā)給其他自治系統(tǒng),亦或通過(guò)簽發(fā)新ROA 覆蓋未部署RPKI的事實(shí)有效前綴,這些情況的發(fā)生都將影響B(tài)GP 流量的正常轉(zhuǎn)發(fā).
由于上述風(fēng)險(xiǎn)與問(wèn)題將直接影響RP 對(duì)RPKI 緩存更新結(jié)果的正確性.因此學(xué)者們提出了在CA 側(cè)對(duì)CA 惡意或誤操作的預(yù)防和在RP 側(cè)的錯(cuò)誤檢測(cè)的方案.
劉曉偉等人提出建立CA 側(cè)CA 資源分配誤操作的檢測(cè)方案[7],以防止CA 跨級(jí)的重復(fù)分配等誤操作行為.該方案無(wú)需搭建另外的信任機(jī)制,僅通過(guò)規(guī)范CA的資源分配行為,提高了CA的資源分配的準(zhǔn)確性,降低了供給側(cè)運(yùn)維失誤風(fēng)險(xiǎn).但是無(wú)法預(yù)防CA 惡意的權(quán)力濫用行為.Xing 等人利用區(qū)塊鏈的去中心化的信任模型優(yōu)勢(shì)提出了BGPCoin 方案[8,9].BGPCoin 通過(guò)區(qū)塊鏈公共賬本記錄網(wǎng)絡(luò)資源所有權(quán)的實(shí)時(shí)變化,同時(shí)區(qū)塊鏈的公開、不可篡改的特性使得CA 對(duì)網(wǎng)絡(luò)資源所有權(quán)的分配更加透明和可追溯.但是BGPCoin 記賬的時(shí)間、空間開銷較大,其在實(shí)際網(wǎng)絡(luò)中的性能是否滿足實(shí)際需求仍然有待驗(yàn)證.Shrishak 等人提出通過(guò)門限簽名算法使得每個(gè)RPKI 證書的簽發(fā)與撤銷都需要5 大RIR的協(xié)商同意,從而限制了單個(gè)RIR的絕對(duì)權(quán)力[10].其性能表現(xiàn)在5 大RIR的門限簽名模型中比基于區(qū)塊鏈得方案更加優(yōu)秀,但是為了保證CA 行為受到嚴(yán)格的限制,則需要賦予更多方參與門限簽名,這使得該方案的性能表現(xiàn)大大下降.Kent 等人提出當(dāng)RP因無(wú)法獲取原有證書文件而需要進(jìn)行緩存刪除時(shí),RP可以暫停一段時(shí)間對(duì)此緩存刪除,并允許RP 使用原文件進(jìn)行更新,隨后核實(shí)該操作確為所需后再刪除[11].該方案的優(yōu)勢(shì)在于幾乎不需要投入額外的基礎(chǔ)設(shè)施的建設(shè),但是該方案難以準(zhǔn)確設(shè)定延遲操作的時(shí)間,時(shí)間過(guò)短無(wú)法保證能夠恢復(fù)受影響的數(shù)據(jù),時(shí)間太長(zhǎng)降低了緩存更新的時(shí)效性,此外對(duì)于外部核實(shí)步驟亦沒(méi)有明確的規(guī)則,更是加大了緩存更新的復(fù)雜性.Heilman等人提出資源使用者使用RPKI的資源證書簽發(fā)該資源的.dead 對(duì)象來(lái)表示同意權(quán)威方對(duì)該資源的撤銷,以此來(lái)防止未經(jīng)許可的撤銷或覆蓋發(fā)生[12].該方案在現(xiàn)有的RPKI 機(jī)制中引入了對(duì)資源持有者的權(quán)益保障,對(duì)現(xiàn)有的RPKI 機(jī)制具有較好的兼容性.但該方案中需要對(duì).dead 簽名文件的同步與驗(yàn)證,同樣會(huì)因?yàn)楦鱎P 同步.dead 文件時(shí)間不一致,導(dǎo)致數(shù)據(jù)不一致問(wèn)題.此外,通過(guò)簽發(fā)同意撤銷的.dead 文件的方式,消耗了RP 額外的計(jì)算資源.
1.4.1 事實(shí)所有權(quán)原理
本文的路由起源信息的事實(shí)所有權(quán)源于Hlavacek等人提出的路由起源信息事實(shí)所有權(quán)的驗(yàn)證系統(tǒng)——DISCO[13].DISCO 系統(tǒng)通過(guò)驗(yàn)證路由起源信息事實(shí)所有權(quán)來(lái)確定自治系統(tǒng)與網(wǎng)絡(luò)資源的合法綁定關(guān)系.由ASi在DISCORegistrar中申請(qǐng)資源綁定證書及其私鑰(pk,sk),并在向外宣告的BGPad消息的屬性字段中附加由該資源證書私鑰的簽名Signsk(ASi,IPPrefix).當(dāng)DISCO 部署在實(shí)際網(wǎng)絡(luò)中n≥NThreshold個(gè)有利觀測(cè)點(diǎn)DISCOvp在一定時(shí)間間隔T內(nèi)接收到攜帶于該證書簽發(fā)的資源綁定關(guān)系一致的BGPad消息時(shí),DISCO 判定其路由源對(duì)其IP 地址前綴是享有事實(shí)所有權(quán)的.其主要過(guò)程描述如下:
由此可知,事實(shí)所有權(quán)是指域間路由系統(tǒng)中其他自治域?qū)τ谀硞€(gè)自治域宣稱對(duì)特定IP 前綴資源所有權(quán)聲明的接受或認(rèn)可.具體體現(xiàn)為自治域向其他自治域通告路由起源消息更新時(shí),該條BGP 更新可以通過(guò)其他自治域的本地路由通告過(guò)濾策略被自治域BGP路由器保存至路由轉(zhuǎn)發(fā)信息表中.且該條路由起源在生命周期內(nèi)(生命周期指路由起源信息從被其他路由器接收的時(shí)間接收到至原自治域撤銷的時(shí)間段)內(nèi)不會(huì)被域間路由系統(tǒng)視為異常路由信息,而被其他路由器刪除或忽略.
1.4.2 BGP 路由起源信息的穩(wěn)定性
BGP 路由劫持者發(fā)起的非法的路由起源信息同樣可能被全球BGP 路由器接收,如果僅憑大部分路由器是否接收該路由起源信息作為路由源合法的依據(jù),將可能把非法路由起源信息錯(cuò)誤識(shí)別為合法的.另一方面,非法的路由起源信息并不會(huì)在全局BGP 路由系統(tǒng)中長(zhǎng)期存在.
本文分析了正常情況下路由起源信息(即路由源與IP 地址資源的分配關(guān)系)在網(wǎng)絡(luò)中存續(xù)時(shí)間的分布規(guī)律.數(shù)據(jù)源來(lái)自于比較權(quán)威的RIPE (regional internet registry for Europe,歐洲互聯(lián)網(wǎng)注冊(cè)機(jī)構(gòu))的rrc13 采集器的RIB (route information base,路由信息表)數(shù)據(jù),采集范圍為協(xié)調(diào)世界時(shí)間2020年10月17日0 時(shí)0 分至2020年10月31日0 時(shí)0 分.結(jié)果如圖2所示,縱坐標(biāo)BGP 路由前綴資源分配關(guān)系變化率表示路由源與IP 地址前綴的分配關(guān)系在存活時(shí)間內(nèi)已改變占總數(shù)比,穩(wěn)定存在時(shí)間小于等于8 h的占0.29%,路由源與IP 地址資源的分配關(guān)系穩(wěn)定存在時(shí)間大于272 h的占97.53%.
如圖2所示,在較長(zhǎng)的時(shí)間內(nèi),絕大部分的路由源與IP 地址資源的分配關(guān)系是穩(wěn)定不變的,只有極少部分的路由源與IP 地址資源的分配關(guān)系是存在變化的.那么依靠合法路由起源信息的穩(wěn)定性特征,我們可以通過(guò)設(shè)置觀察期來(lái)觀察一個(gè)新增的路由起源信息是否是穩(wěn)定存在的,進(jìn)而防止短時(shí)存在的非法路由起源信息被誤識(shí)別為事實(shí)存在路由起源信息.
因此,本文結(jié)合路由起源信息的事實(shí)所有權(quán)原理及其穩(wěn)定性特征,提出了一種基于事實(shí)所有權(quán)的RPKI緩存更新沖突檢測(cè)機(jī)制.下面對(duì)本方案的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行詳細(xì)闡述.
BGP 網(wǎng)絡(luò)里AS 之間部署的路由器是獨(dú)立運(yùn)行的,全局的事實(shí)路由起源信息同步結(jié)構(gòu)為P2P (peer to peer,點(diǎn)對(duì)點(diǎn))型.這種P2P 結(jié)構(gòu)的域間信息同步數(shù)據(jù)交互次數(shù)復(fù)雜度為n2.如圖3所示,文獻(xiàn)[14]通過(guò)在RP 服務(wù)器與 AS 之間構(gòu)建多層級(jí)VC (validation cache,有效緩存) 服務(wù)器向不同AS 進(jìn)行RPKI 數(shù)據(jù)分發(fā),以此將各個(gè)獨(dú)立AS 規(guī)劃在統(tǒng)一的管理域內(nèi),保證了RPKI 數(shù)據(jù)的一致性,而且將全球RP 同步次數(shù)復(fù)雜度降低為n.此外,依托于此架構(gòu)與DISCO 事實(shí)所有權(quán)驗(yàn)證方案,可以用底層VCi服務(wù)器代替DISCO 觀測(cè)點(diǎn)DISCOvp,頂層VCtop服務(wù)器代替DISCORegistrar,ASj接入時(shí)上傳其RCj,ROAj至底層VCj,故本方案的事實(shí)所有權(quán)驗(yàn)證過(guò)程如下:
基于對(duì)AS 事實(shí)權(quán)益的保障,在AS 對(duì)網(wǎng)絡(luò)資源事實(shí)所有權(quán)的存續(xù)期間對(duì)引發(fā)其綁定關(guān)系正常使用的RPKI 緩存更新應(yīng)該視為沖突緩存,應(yīng)停止將其更新進(jìn)入路由器中.
所以,基于事實(shí)所有權(quán)的RPKI 緩存更新沖突檢測(cè)機(jī)制分為如下3 個(gè)階段,一是利用底層VC 服務(wù)器同路由器進(jìn)行本地事實(shí)路由起源信息的同步;二是,底層VC 服務(wù)器將改變的本地同步數(shù)據(jù)發(fā)送至頂層VC 服務(wù)器進(jìn)行全局路由起源數(shù)據(jù)匯總;三是,利用全局路由起源信息表對(duì)緩存更新進(jìn)行沖突檢測(cè),排除對(duì)表內(nèi)的路由源的沖突更新.本文在下文中分別對(duì)這3 個(gè)階段的方案進(jìn)行了設(shè)計(jì).
本文使用反向RTR 協(xié)議進(jìn)行本地事實(shí)路由起源信息同步,即通過(guò)新增RTR[15]協(xié)議負(fù)載類型,使原有RTR的只有從RP 側(cè)向BGP 路由器傳輸?shù)膯我环较虻臄?shù)據(jù)同步,增加從BGP 路由器側(cè)至RP 側(cè)傳輸ROI(router origin information,路由起源信息)的反向RIB數(shù)據(jù)同步.當(dāng)RIBLocal發(fā)生ROIs {ROI1(updateStyle,ASn,IPPrefix),ROI2,…,ROIn}更新或ASi的路由源授權(quán)證書ASi.ROA 更新時(shí),通過(guò)反向RTR 協(xié)議發(fā)送序列號(hào)ASi.Notifyn.SN為n的ASi.Notifyn開啟與VCi本地ROI 數(shù)據(jù)庫(kù)VCi.RoiLocal的ROIs 數(shù)據(jù)同步或(RCi,ROAi)更新,同步過(guò)程參照RTR 協(xié)議設(shè)計(jì),具體同步流程如流程1 所示.
流程1.本地事實(shí)路由起源信息同步流程1) while RIBLocal‖(RCi,ROAi) update‖ASi ← VCi.Reset do 2) case:(RCi,ROAi) update 3) VCi.RCi=ASi.RC;VCi.ROAi=ASi.ROAi 4) case:VCi ← ASi.Notifyn 5) if VCi.RLSN==ASi.Notifyn.SN-1 6) VCi.RoiLocal=VCi.RoiLocal+ROIs;VCi.RLSN++7) else 8) ASi ← VCi.Reset 9) end if 10) case:ASi ← VCi.Reset 11) VCi← ASi.RoiLocal 12) VCi.RoiTable=ASi.RoiLocal;VCi.RoiTable.SN=ASi.RoiLocal.SN 13) end while
如圖3所示,本文通過(guò)部署在AS的VC 服務(wù)器利用反向RTR 協(xié)議實(shí)時(shí)采集BGP 路由起源信息,建立本地路由起源信息數(shù)據(jù)庫(kù)VCi.RoiLocal.另外,通過(guò)底層VCi服務(wù)器記錄下同步更新ROI 及其接收時(shí)間,再由頂層VCtop服務(wù)器進(jìn)行匯總統(tǒng)計(jì),最終VCtop將滿足預(yù)設(shè)時(shí)間間隔T的ROIsj更新至VCtop.RoiGlobal,將不滿足時(shí)間間隔T的ROIsj更新至VCtop.RoiRecv,并將本次全局更新結(jié)果VCtop.RoiGlobalIncr 反饋至底層VCi完成一次VCtop.RoiGlobal的更新.具體流程如流程2.
流程2.全局事實(shí)路由起源信息同步流程1) while VCi ← VCtop.RequestSN‖VCtop ← VCi.Reset‖ VCi←VCtop.RoiGlobalIncr 2) case:VCi← VCtop.RequestSN 3) if VCtop.RequestSN==VCi.RGSN+1 4) for j=1;j≤VCi.ROIs.Length;j++do 5) if VCi.ROIsj.LifeTime ≥ T 6) VCtop.RoiGlobal=VCtop.RoiGlobal+VCi.ROIsj 7) else 8) VCtop.RoiRecv=VCtop.RoiRecv+VCi.ROIsj 9) end if 10) end for 11) VCtop.RoiGlobal.SN++;VCi←VCtop.RoiGlobalIncr 12) else 13) VCtop ← VCi.Reset 14) case:VCi←VCtop.RoiGlobalIncr 15) VCi.RoiGlobal=VCi.RoiGlobal+VCtop.RoiGlobalIncr;VCi.RoiGlobal.SN++16) case:VCtop ← VCi.Reset 17) VCi ← VCtop.RoiGlobal 18) VCi.RoiGlobal=VCtop.RoiGlobal;VCi.RoiGlobal.SN=VCtop.RoiGlobal.SN 19) end while
通過(guò)對(duì)第1 節(jié)中RPKI 全面部署面臨的障礙的分析,本文將RPKI 緩存更新與實(shí)際域間網(wǎng)絡(luò)起源信息的沖突總結(jié)為以下4 種.
(1)因RPKI 證書維護(hù)不及時(shí)導(dǎo)致過(guò)期失效沖突.
(2)CA 失誤撤銷RPKI 證書導(dǎo)致證書無(wú)效沖突.
(3)資料庫(kù)訪問(wèn)失敗,原有證書過(guò)期失效沖突.
(4)CA 跨級(jí)簽發(fā)已分配的IP 前綴的子前綴沖突.
因此,當(dāng)頂層VC 服務(wù)器接收RPKI 緩存更新時(shí),應(yīng)提取撤銷和新增操作的RPKI 緩存更新分別與最新的全局路由起源信息表核對(duì),校驗(yàn)是否存在撤銷當(dāng)前仍然存在于網(wǎng)絡(luò)中的路由起源信息,并輸出存在沖突的RPKI 緩存更新.
2.4.1 RPKI 緩存撤銷更新沖突檢測(cè)
在對(duì)ROAi與當(dāng)前全局路由起源信息核對(duì)過(guò)程中,首先需要查找出與該ROAi相關(guān)的ROI.雖然在當(dāng)前ROA 中IP 前綴資源綁定大多是某條特定的前綴,但也存在部分的是IP 前綴區(qū)塊(例如,{ASn:3,IPPrefix:103.134.63/22,maxLength:24}),故本前綴匹配函數(shù)ROILPM(ROAi)輸出的是對(duì)ROAi前綴長(zhǎng)度匹配的最長(zhǎng)前綴,及其maxLength 劃定的區(qū)塊中包含的全部ROI 前綴.另外,當(dāng)匹配的ROIj與撤銷的ROAi相同或?yàn)槠鋮^(qū)塊內(nèi)子前綴的資源分配關(guān)系,則此撤銷更新ROAi為無(wú)效.具體算法如算法1.
算法1.RPKI 緩存撤銷更新沖突檢測(cè)1) 輸入:撤銷緩存更新ROAi.2) 輸出:本次檢測(cè)結(jié)果Ri.3) 初始化:Ri=valid 4) ROI=ROILPM(ROAi)5) for j=1;j≤ROI.Length;j++do 6) if (ROIj.IPPrefix ? ROAi.IPPrefixBlock)||(ROIj.IPPrefix==ROAi.IPPrefix)7) if (ROIj.ASn==ROAi.ASn)8) Ri=invalid;break 9) end if 10) end if 11) end for
2.4.2 RPKI 緩存新增更新沖突檢測(cè)
ROILPM 函數(shù)輸出的ROIj同上,當(dāng)ROIj為其區(qū)塊內(nèi)子前綴或相同前綴,但資源分配關(guān)系不一致時(shí),則此新增更新ROAi為無(wú)效.另外ROI為IP 前綴與ASn的綁定關(guān)系,為防止出現(xiàn)ROIj所屬的ROAj區(qū)塊與檢測(cè)的ROAi存在交叉覆蓋,故當(dāng)該ROAj與被檢測(cè)的ROAi存在子前綴交集時(shí),其也為無(wú)效.具體算法如算法2.
算法2.RPKI 緩存新增更新沖突檢測(cè)1) 輸入:新增的緩存更新ROAi.2) 輸出:本次檢測(cè)結(jié)果Ri.3) 初始化:Ri=valid 4) ROI=ROI LPM(ROAi)5) for j=1;j≤ROI.Length;j++do 6) if (ROIj.IPPrefix∈ROAi.IPPrefixBlock)&&(ROAi.ASn≠ROIj.ASn)7) Ri=invalid 8) end if 9) if (ROAi.IPPrefix==ROIj.IPPrefix) &&(ROAi.ASn≠ROIj.ASn)10) Ri=invalid 11) end if if ROAj∩ROAi 12)13) Ri=invalid 14) end if 15) end for
2.4.3 實(shí)際部署中的方案優(yōu)化
此外,在實(shí)際BGP 網(wǎng)絡(luò)的運(yùn)行中還需要針對(duì)BGP網(wǎng)絡(luò)與RPKI的運(yùn)維特性對(duì)本方案的相關(guān)參數(shù)及判定進(jìn)行相應(yīng)優(yōu)化.
(1)時(shí)間間隔參數(shù)T
在實(shí)際BGP 網(wǎng)絡(luò)中BGP 通告全局傳播存在一定的時(shí)延,即其他AS 收到的BGP 通告存活時(shí)間相較于真實(shí)存活少了時(shí)延Ts,因此對(duì)于各個(gè)AS 收到通告的存活時(shí)間T應(yīng)該加上傳播時(shí)延Ts,而一般BGP 消息的全局傳播時(shí)延Ts在38 s 至2 min 之間[16].
(2)全局快速撤銷與未在網(wǎng)使用撤銷確認(rèn)
如圖4所示,正常情況下AS的BGP 路由器停用前綴,會(huì)先主動(dòng)斷開BGP 連接,如有必要在RPKI 中撤銷該前綴,還會(huì)進(jìn)行請(qǐng)求CA 撤銷該ROA.當(dāng)全局VC絕大多數(shù)都收到一個(gè)BGP 撤銷消息時(shí),此時(shí)不必等待時(shí)間間隔T,立即確認(rèn)全局ROI 撤銷事實(shí)成立.另一方面,ISP 會(huì)簽發(fā)少量特定用途的ROA,比如用在流量工程中,這些ROA 簽發(fā)后并不會(huì)立即啟用,故針對(duì)此類ROA的撤銷應(yīng)該通過(guò)VCtop與該AS 相連的VC 進(jìn)行撤銷確認(rèn).
(3)新增快速確認(rèn)
如圖5所示,在部署了RPKI的AS 每當(dāng)啟用新的前綴資源時(shí)需要先簽發(fā)ROA,即使沖突檢測(cè)為有效,但此時(shí)AS 與該前綴綁定關(guān)系存在時(shí)間小于預(yù)設(shè)T,此期間對(duì)其發(fā)起的錯(cuò)誤撤銷則無(wú)法檢測(cè)出,故當(dāng)此ROA沖突檢測(cè)為有效且新增的ROA 與VCtop接收的ROA相同時(shí),應(yīng)立即確認(rèn)其新增事實(shí)成立.
為了驗(yàn)證方案的可行性和性能表現(xiàn),本文配置了1 臺(tái)服務(wù)器分別對(duì)全局路由起源信息的同步和RPKI緩存更新沖突檢測(cè)的數(shù)據(jù)同步性能進(jìn)行了測(cè)試,實(shí)驗(yàn)所用服務(wù)器配置如表1.
表1 服務(wù)器配置
全局路由起源信息同步實(shí)驗(yàn)中各模塊數(shù)據(jù)流如圖6所示,底層VC 服務(wù)器通過(guò)反向RTR 來(lái)采集路由起源更新信息,并且在解析,校驗(yàn)反向RTR PDU 數(shù)據(jù)包和請(qǐng)求更新的序列號(hào)無(wú)誤后,進(jìn)行更新本地路由起源信息表.底層VC 服務(wù)器定期向匯聚層發(fā)送對(duì)全局路由起源信息表的路由起源更新信息.匯聚層VC 服務(wù)器校驗(yàn)更新序列號(hào)無(wú)誤后,進(jìn)行更新信息匯總,統(tǒng)計(jì)每條更新信息提交的AS 數(shù),統(tǒng)計(jì)完畢后將匯聚結(jié)果發(fā)送至頂層VC 服務(wù)器進(jìn)行全局同步.
實(shí)驗(yàn)使用1 號(hào)物理機(jī)22229 端口模擬底層VC 服務(wù)器進(jìn)行本地同步和底層全局同步,2181 端口模擬匯聚層VC 服務(wù)器進(jìn)行匯聚處理,33339 端口作為頂層VC 服務(wù)器進(jìn)行頂層全局路由起源信息同步.并且通過(guò)向1 號(hào)物理機(jī)的匯聚層服務(wù)器的路由起源消息接收隊(duì)列中分別并行發(fā)送(2 000 個(gè),4 000 個(gè),6 000 個(gè),8 000 個(gè),10 000 個(gè))路由源數(shù)據(jù)包,每個(gè)數(shù)據(jù)包含有100 條路由起源更新信息,以此模擬不同的AS 接入規(guī)模,并記錄同步花費(fèi)的時(shí)間(單位:s).
由圖7可知,隨著接入的底層VC 服務(wù)器增多,本方案的全局路由起源信息同步時(shí)間也將越來(lái)越長(zhǎng).
3.2.1 效率分析
本文依照文獻(xiàn)[12]的全網(wǎng)部署的假設(shè)條件,在實(shí)際RPKI 數(shù)據(jù)中隨機(jī)選擇5 組不同規(guī)模的AS 組成的5 個(gè)規(guī)模的域間網(wǎng)絡(luò).分別測(cè)試了不同規(guī)模下單節(jié)點(diǎn)進(jìn)行.dead 對(duì)象和全量全局路由信息數(shù)據(jù)同步的時(shí)間消耗.如圖8所示,橫坐標(biāo)表示網(wǎng)絡(luò)中AS的數(shù)量,縱坐標(biāo)為同步耗時(shí)(單位:s).
本方案不僅在數(shù)據(jù)的全量同步時(shí)間消耗上表現(xiàn)更佳,而且部署在服務(wù)器上的全量數(shù)據(jù)所占用的存儲(chǔ)空間也更少.對(duì)比結(jié)果如圖9所示.
文獻(xiàn)[12]的方案需要每個(gè)AS 對(duì)來(lái)自不同的上級(jí)CA 簽發(fā)的證書,動(dòng)態(tài)維護(hù)一個(gè)包含同意刪除的資源集合簽名.dead 對(duì)象,則每個(gè)AS 至少維護(hù)一個(gè).dead 資料庫(kù).并且RP 需要對(duì)其進(jìn)行同步和鏈?zhǔn)津?yàn)證,不同于ROA的驗(yàn)證的是.dead的驗(yàn)證是逆向的,即葉子節(jié)點(diǎn)的.dead 對(duì)象只需驗(yàn)證葉子證書的有效性,中間CA 簽發(fā)的.dead 對(duì)象則需驗(yàn)證其包含的全部子資源的.dead對(duì)象.因此,如圖8所示,雖然其需要簽發(fā)的文件少于ROA,但對(duì)其簽名文件的同步驗(yàn)證依然將消耗比本方案更多的計(jì)算時(shí)間.同時(shí),隨著部署率上升對(duì)于部署文獻(xiàn)[12]方案的存儲(chǔ)消耗也遠(yuǎn)超本方案.
3.2.2 檢出性能分析
本文基于文獻(xiàn)[12]中的假設(shè),即在網(wǎng)絡(luò)全部部署RPKI,各個(gè)AS 與RP 行為是誠(chéng)實(shí)可信且公鑰密碼體系無(wú)法破解的條件下,僅就兩方案對(duì)于由權(quán)威方過(guò)失行為導(dǎo)致的沖突緩存的檢測(cè)性能進(jìn)行分析.實(shí)驗(yàn)數(shù)據(jù)取自6月4日的RPKI 數(shù)據(jù)和實(shí)際長(zhǎng)期存活的BGP 數(shù)據(jù),隨機(jī)選取的100 個(gè)AS 對(duì)應(yīng)的前綴分配數(shù)據(jù),并就3 種沖突情況分別進(jìn)行了模擬.在本方案和文獻(xiàn)[12]的部署率下降時(shí)的沖突檢出率進(jìn)行了對(duì)比.實(shí)驗(yàn)結(jié)果如下:
(1)CA 單邊撤銷證書與資料庫(kù)證書異常過(guò)期失效
撤銷更新的檢測(cè)實(shí)驗(yàn)?zāi)M的數(shù)據(jù)分為兩類,一類是對(duì)已在網(wǎng)絡(luò)中使用BGP 前綴的ROA 進(jìn)行單邊撤銷(異常過(guò)期失效),另一類是對(duì)已簽發(fā)ROA 但是ROA的前綴未在BGP 中使用的單邊撤銷(異常過(guò)期失效),兩類數(shù)據(jù)量占比相等.
如圖10所示,本方案的檢出率下降速度慢于文獻(xiàn)[12]方案.因?yàn)楸痉桨笇?duì)全局ROI的采集率不會(huì)隨著部署率的下降而下降,這使得其在部署率下降的情況下仍能保護(hù)網(wǎng)絡(luò)中在使用的BGP 前綴.另一方面,對(duì)于未在現(xiàn)網(wǎng)中使用的ROA的撤銷依賴于AS 對(duì)VCtop的撤銷確認(rèn)機(jī)制,此類情況下同文獻(xiàn)[12]一樣檢出率等同于方案的部署率.故在相同部署率下本方案的綜合檢出率更高.
(2)資源重寫沖突檢測(cè)
資源重寫沖突檢測(cè)實(shí)驗(yàn)?zāi)M的數(shù)據(jù)分為兩類,一大類是對(duì)已在網(wǎng)絡(luò)中使用BGP 前綴的ROA 重寫,其中重寫的類型亦分為全部重寫(ROA 包含的全部前綴區(qū)塊)與部分重寫(ROA 包含的部分前綴區(qū)塊).另一大類是對(duì)ROA 已簽發(fā)但是其前綴未在BGP 中使用的ROA 重寫,其中重寫的類型同上.各類數(shù)據(jù)量比例相等.
如圖11所示,對(duì)于已在網(wǎng)使用的ROA,本方案可以不受部署率限制獲取網(wǎng)絡(luò)中的全局ROI,但是CA 可以部分重寫ROA 區(qū)塊,避開與ROI 存在沖突的部分.文獻(xiàn)[12]則需要通過(guò)發(fā)布的.dead 文件,才能對(duì)重寫沖突進(jìn)行校驗(yàn).故在相同部署率下本方案的檢出率更高.
如圖12所示,對(duì)于未在網(wǎng)使用的ROA,本方案無(wú)法獲取在網(wǎng)使用的ROI,只能通過(guò)AS 上傳至VC的ROA 進(jìn)行重寫檢測(cè),檢出性能受部署率變化與文獻(xiàn)[12]相同故在相同部署率下本方案的檢出率無(wú)優(yōu)勢(shì).
(3)資源覆蓋沖突檢測(cè)
資源覆蓋的沖突檢測(cè)實(shí)驗(yàn)針對(duì)未被ROA 數(shù)據(jù)覆蓋但已在網(wǎng)使用的IP 前綴,故RPKI的部署率始終為0.即僅依靠ROI 或簽發(fā).dead 對(duì)象能夠檢出資源覆蓋沖突的比率.
如圖13所示,對(duì)于已在網(wǎng)使用的IP 前綴,雖然本方案檢出性能不受部署率變化的影響,但是本方案事實(shí)所有權(quán)路由源判定模型屬于多方共識(shí)決策模型,故實(shí)際部署中參與決策的節(jié)點(diǎn)(部署的節(jié)點(diǎn))的數(shù)量比例不應(yīng)太低.
(4)RPKI 數(shù)據(jù)一致性問(wèn)題分析
文獻(xiàn)[12] 描述了一種鏡像世界的數(shù)據(jù)不一致情況,在這種情況下兩個(gè)資源持有者因同步的時(shí)間先后,產(chǎn)生完全不同的RPKI 視野,該種情況下文獻(xiàn)[12]方案無(wú)法通過(guò)驗(yàn)證.dead 文件保持全局RPKI 視野一致.而本方案的全局路由起源信息表是嚴(yán)格序列全局同步的,全局各節(jié)點(diǎn)處在統(tǒng)一的事實(shí)有效路由信息和RPKI緩存視圖.
隨著部署RPKI 進(jìn)行ROV的網(wǎng)絡(luò)運(yùn)營(yíng)商的不斷增多,RPKI 在域間路由系統(tǒng)實(shí)際部署中的存在的問(wèn)題和風(fēng)險(xiǎn)也愈加凸顯.在此背景下,本文通過(guò)分析RPKI進(jìn)入全面部署的問(wèn)題和風(fēng)險(xiǎn),定位阻礙RPKI 全面部署的根源所在,并提出基于事實(shí)BGP 路由起源信息的原理和路由起源信息的穩(wěn)定性,實(shí)現(xiàn)了一種基于事實(shí)所有權(quán)的RPKI 緩存更新沖突檢測(cè)機(jī)制.最后模擬了5 種不同規(guī)模的BGP 網(wǎng)絡(luò),實(shí)驗(yàn)對(duì)比了本方案與現(xiàn)有的其它方案的時(shí)間效率.另外對(duì)3 種沖突緩存更新的檢出性能,實(shí)驗(yàn)結(jié)果與分析表明本文方案3 種沖突緩存更新檢出性能上存在一定優(yōu)勢(shì).
計(jì)算機(jī)系統(tǒng)應(yīng)用2022年2期