賴(lài)強(qiáng)
摘要:近幾年,網(wǎng)絡(luò)虛擬化由于其自身優(yōu)勢(shì)備受各個(gè)國(guó)家的青睞,各個(gè)國(guó)家都在投入大量的人力物力進(jìn)行網(wǎng)絡(luò)虛擬化的研究,很多廠商的網(wǎng)絡(luò)設(shè)備也提供支持網(wǎng)絡(luò)虛擬化的服務(wù)。該文將結(jié)合現(xiàn)在移動(dòng)互聯(lián)網(wǎng)的實(shí)際需求,對(duì)在基于LISP協(xié)議下的網(wǎng)絡(luò)虛擬化方案進(jìn)行進(jìn)一步優(yōu)化。
關(guān)鍵詞:LISP協(xié)議環(huán)境;網(wǎng)絡(luò)虛擬化;優(yōu)化方案
中圖分類(lèi)號(hào):TP3? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? 文章編號(hào):1009-3044(2018)36-0030-03
1 移動(dòng)互聯(lián)網(wǎng)網(wǎng)絡(luò)的需求分析
移動(dòng)互聯(lián)網(wǎng),顧名思義,就是將移動(dòng)通信與互聯(lián)網(wǎng)結(jié)合起來(lái),它集互聯(lián)網(wǎng)技術(shù)、平臺(tái)、商業(yè)模式和應(yīng)用與移動(dòng)通信技術(shù)為一體,是一種新型網(wǎng)絡(luò)技術(shù)。移動(dòng)互聯(lián)網(wǎng)所依靠的主要數(shù)據(jù)傳輸方式是移動(dòng)無(wú)線通信,它包括三個(gè)部分,分別是終端、軟件和應(yīng)用。較之于傳統(tǒng)的有線互聯(lián)網(wǎng),其主要的不同點(diǎn)在于移動(dòng)互聯(lián)網(wǎng)的終端以及接入網(wǎng)絡(luò)具有很大的獨(dú)特性。目前,國(guó)內(nèi)外許多學(xué)者及科研機(jī)構(gòu)都認(rèn)為,未來(lái)移動(dòng)互聯(lián)網(wǎng)領(lǐng)域?qū)?huì)有巨大的發(fā)展?jié)摿桶l(fā)展空間,其市場(chǎng)價(jià)值將不斷擴(kuò)大。然而,隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,也隨之帶來(lái)了一些問(wèn)題,具體如下:
(1) 終端的移動(dòng)性:根據(jù)IP的通信過(guò)程,我們知道IP地址的功能是承擔(dān)主機(jī)標(biāo)識(shí)和路由標(biāo)識(shí),如果使用終端移動(dòng)而導(dǎo)致接入位置發(fā)生改變,網(wǎng)絡(luò)則立即給它分配新的IP地址,因?yàn)樵贗P地址上捆綁了傳輸協(xié)議,若IP地質(zhì)發(fā)生某些變化,就會(huì)造成傳輸協(xié)議被終止,這也就意味著終端通信會(huì)話(huà)關(guān)閉。
(2) 路由表膨脹等問(wèn)題:當(dāng)有大量的BGP被更新或注入,邊界AS將會(huì)變得異常不穩(wěn)定,進(jìn)而導(dǎo)致整個(gè)路由系統(tǒng)的癱瘓BGP的更新攪動(dòng)致使路由計(jì)算和轉(zhuǎn)發(fā)表下發(fā)頻繁,極大程度上破壞到路由的收斂。
本文將上面的移動(dòng)互聯(lián)網(wǎng)問(wèn)題作為出發(fā)點(diǎn),以目前的研究熱點(diǎn)LISP協(xié)議為基礎(chǔ),設(shè)計(jì)出符合要求的網(wǎng)絡(luò)虛擬化方案。
LISP協(xié)議即位置標(biāo)識(shí)和身份標(biāo)識(shí)分離協(xié)議,它是一種針對(duì)互聯(lián)網(wǎng)未來(lái)提出的一種全新的路由架構(gòu)。LISP架構(gòu)的提出可以給邊緣網(wǎng)絡(luò)更大的靈活性,同時(shí)對(duì)解決BGP路由表的膨脹和終端移動(dòng)性增多等問(wèn)題效果顯著。因?yàn)樗鼘⑺淼绤f(xié)議應(yīng)用在不同LISP本地網(wǎng)絡(luò)間,這在很大程度上有利于在虛擬網(wǎng)絡(luò)下實(shí)現(xiàn)LISP架構(gòu)。
2 LISP協(xié)議網(wǎng)絡(luò)架構(gòu)和功能實(shí)體分析
就移動(dòng)互聯(lián)網(wǎng)中存在的日益膨脹邊界網(wǎng)關(guān)協(xié)議(BGP)路由表的問(wèn)題,LISP架構(gòu)設(shè)計(jì)了全新的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)分離位置和標(biāo)識(shí)。該架構(gòu)的中心思想是將之前的IP地址分開(kāi)終端的身份和位置信息,把IP地址在語(yǔ)義上劃分成身份標(biāo)識(shí)(EID)和位置標(biāo)識(shí)(RLOC)兩個(gè)空間。
其中,身份標(biāo)識(shí)EID使用IPv4或IPv6地址形式,它的名址結(jié)構(gòu)不關(guān)聯(lián)整體網(wǎng)絡(luò)拓?fù)洌皇窃贚ISP局部網(wǎng)絡(luò)內(nèi)進(jìn)行傳遞數(shù)據(jù)使用,全局網(wǎng)絡(luò)的路由不參與。若移動(dòng)終端不變,EID不變,但會(huì)使其對(duì)應(yīng)的位置標(biāo)識(shí)RLOC發(fā)生變化,并將服務(wù)器MS中的映射關(guān)系進(jìn)行更新。
位置標(biāo)識(shí)采用與身份標(biāo)識(shí)一樣的地址形式,即IPv4或IPv6,準(zhǔn)確地說(shuō),它對(duì)應(yīng)局部網(wǎng)絡(luò)的出口隧道路由器ETR相應(yīng)的地址。身份標(biāo)識(shí)和位置標(biāo)識(shí)之間的映射關(guān)系是一對(duì)多的關(guān)系[1]。在LISP網(wǎng)絡(luò)中,通常借助隧道路由器來(lái)保持各個(gè)主機(jī)之間的信息傳遞。在該網(wǎng)絡(luò)中,每一個(gè)執(zhí)行功能都各不相同,基于這一特點(diǎn),可以將隧道路由器分為以下兩種類(lèi)型:入口隧道路由器(ITR)和出口隧道路由器(ETR)。其中前者主要用來(lái)對(duì)LISP主機(jī)發(fā)出的數(shù)據(jù)包進(jìn)行接收,通過(guò)EID-to——RLOC的映射關(guān)系,對(duì)目的主機(jī)的位置標(biāo)識(shí)進(jìn)行查找,同時(shí)根據(jù)LISP包格式把RLOC作為隧道數(shù)據(jù)包頭、EID作為隧道載荷實(shí)行封裝,向ETR發(fā)送,而后者的作用是對(duì)入口隧道路由器發(fā)出的LISP數(shù)據(jù)包進(jìn)行接收,將封裝的數(shù)據(jù)包進(jìn)行解封裝,之后按照目的主機(jī)身份標(biāo)識(shí)EID把相對(duì)應(yīng)的數(shù)據(jù)包向LISP主機(jī)發(fā)送。
通過(guò)以上的功能實(shí)體分析,下面將簡(jiǎn)要分析3種LISP網(wǎng)絡(luò)場(chǎng)景結(jié)構(gòu)。
2.1 LISP網(wǎng)絡(luò)間靜止節(jié)點(diǎn)的互通
(1) LISP主機(jī)X以源地址EID1發(fā)送數(shù)據(jù)給目的地址EID2,默認(rèn)網(wǎng)關(guān)是在局部網(wǎng)絡(luò)LISP網(wǎng)絡(luò)A中的入口隧道路由器ITR,根據(jù)默認(rèn)路由將IP數(shù)據(jù)發(fā)給ITR。
(2) 通過(guò)查詢(xún)映射服務(wù)器MS,入口隧道ITR獲得地址標(biāo)識(shí)RLOC2,該標(biāo)識(shí)與身份標(biāo)識(shí)EID2相對(duì)應(yīng),由此一來(lái),就建立了出口隧道路由器ETR將LISP之間的隧道通信。此時(shí),入口隧道路由器ITR的端口地址是其隧道IP地址源地址,即RLOC2,出口隧道路由器RLOC2是目的地址。在確定源地址和目的地址之后,將源地址和目的地址分別是EID1和EID2的IP數(shù)據(jù)封裝成數(shù)據(jù)包,由ITR向ETR發(fā)送該數(shù)據(jù)包[2]。
(3) 在LISP的封裝數(shù)據(jù)包送達(dá)出口隧道路由器后,進(jìn)行數(shù)據(jù)包的解封裝,并將身份標(biāo)識(shí)EID1和位置標(biāo)識(shí)RLOC1之間的映射關(guān)系緩存,然后按照身份標(biāo)識(shí)為EID2的目的地址將解封裝后的內(nèi)層數(shù)據(jù)包向LISP主機(jī)Y發(fā)送。
(4) 隨后,按照上述的反過(guò)程將LISP的回復(fù)數(shù)據(jù)包向主機(jī)X發(fā)送。當(dāng)出口隧道路由器ETR接收到該數(shù)據(jù)包時(shí),因?yàn)橹耙呀?jīng)將EID1-RLOC1間的映射關(guān)系包存在ETR中,因此隨即將LISP隧道數(shù)據(jù)的封裝完成,并向入口隧道路由器ITR發(fā)送該數(shù)據(jù)。
(5) 當(dāng)數(shù)據(jù)到達(dá)入口隧道路由器ITR后,對(duì)其實(shí)行解封裝,并將解封裝后的數(shù)據(jù)發(fā)至主機(jī)X。至此,端到端的交互過(guò)程全部完成。
2.2 LISP網(wǎng)絡(luò)和非LISP網(wǎng)絡(luò)的互通
LISP協(xié)議網(wǎng)絡(luò)結(jié)構(gòu)除了將LISP主機(jī)間的互通進(jìn)行考慮外,還對(duì)LISP和非LISP主機(jī)間的通信進(jìn)行了考慮。如圖3給出了LISP和非LISP之間互通的整體網(wǎng)絡(luò)架構(gòu)。
該網(wǎng)絡(luò)示例的是LISP主機(jī)X、Y之間如何進(jìn)行數(shù)據(jù)通信。LISP主機(jī)X將以源地址為身份標(biāo)識(shí)EID1發(fā)送IP數(shù)據(jù)給主機(jī)Y的IP地址為IP1 的目的地址,根據(jù)默認(rèn)路由該IP數(shù)據(jù)包向入口隧道路由器ITR發(fā)送。到達(dá)入口隧道路由器ITR后,ITR會(huì)向映射服務(wù)器MS發(fā)送請(qǐng)求查詢(xún)命令,查找與IP1地址相對(duì)應(yīng)的位置標(biāo)識(shí)RLOC信息。因?yàn)镮P1地址并不是LISP架構(gòu)中身份標(biāo)識(shí)信息,映射服務(wù)器MS在查找位置標(biāo)識(shí)信息時(shí)無(wú)法給予定位,于是給予的查找回復(fù)時(shí)無(wú)效的。為了解決這種弊端,LISP協(xié)議架構(gòu)將代理隧道路由器引入到網(wǎng)絡(luò)中,它位于LISP和非LISP網(wǎng)絡(luò)的網(wǎng)絡(luò)邊緣,它的最主要作用就是實(shí)現(xiàn)相關(guān)的互通。此時(shí)入口隧道路由器ITR將目的地址設(shè)為代理隧道路由器PETR對(duì)應(yīng)的端口地址,源地址設(shè)為ITR的RLOC1,以此來(lái)封裝LISP的隧道數(shù)據(jù)。當(dāng)封裝的數(shù)據(jù)包到達(dá)代理隧道路由器PETR后,解封裝該條數(shù)據(jù)包,然后以IP地址IP1為目的地址、身份標(biāo)識(shí)信息為EID1為源地址,根據(jù)IP1的路由信息在非LISP網(wǎng)絡(luò)中將該數(shù)據(jù)包向主機(jī)Y發(fā)送。
當(dāng)主機(jī)Y 向LISP主機(jī)Y進(jìn)行回復(fù)數(shù)據(jù)包的發(fā)送時(shí),主機(jī)A將以身份標(biāo)識(shí)EID1為目的地址將該條IP數(shù)據(jù)包發(fā)送出去。需要注意的是,由于在LISP網(wǎng)絡(luò)中EID是身份標(biāo)識(shí)信息,因此無(wú)法在公網(wǎng)上進(jìn)行路由和轉(zhuǎn)發(fā)數(shù)據(jù)[3]。
3 基于LISP架構(gòu)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化的優(yōu)化方案
因?yàn)長(zhǎng)ISP架構(gòu)具有較好的隧道封裝機(jī)制,因此它能夠更好地實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化。對(duì)此,本文設(shè)計(jì)了一種基于LISP架構(gòu)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化的優(yōu)化方案。該優(yōu)化方案主要對(duì)隧道路由器進(jìn)行了一定的變動(dòng),并在其端口上新增了訪問(wèn)控制列表,以此來(lái)建立虛擬網(wǎng)絡(luò)。本文主要介紹了兩種類(lèi)型的網(wǎng)絡(luò)虛擬化優(yōu)化方案。
3.1 兩個(gè)LISP網(wǎng)絡(luò)間的虛擬專(zhuān)用網(wǎng)接入
場(chǎng)景假設(shè):若兩個(gè)LISP網(wǎng)絡(luò)a和b之間要建立虛擬專(zhuān)用網(wǎng),網(wǎng)絡(luò)a與網(wǎng)絡(luò)b的隧道路由器的網(wǎng)絡(luò)側(cè)接口分別為if0和if1,且兩個(gè)網(wǎng)絡(luò)的IP承載網(wǎng)測(cè)接口分別為if1和if0。
場(chǎng)景分析:若要在LISP網(wǎng)絡(luò)a與b之間建立虛擬專(zhuān)用網(wǎng),則這兩種網(wǎng)絡(luò)之間需要具備一定的數(shù)據(jù)傳輸能力。對(duì)網(wǎng)絡(luò)a來(lái)講,只有網(wǎng)絡(luò)b的數(shù)據(jù)包能夠無(wú)阻礙的進(jìn)入網(wǎng)絡(luò)a中,且網(wǎng)絡(luò)a向外輸出的數(shù)據(jù)包也只能發(fā)送給網(wǎng)絡(luò)b。反之對(duì)于網(wǎng)絡(luò)b來(lái)講,情況也是一樣。基于此種情況,可以將ACL列表添加在IP承載網(wǎng)側(cè),其列表如圖4,以此將出入RLOC的數(shù)據(jù)包控制為固定的數(shù)值。
網(wǎng)絡(luò)b若是接收到RLOC1的數(shù)據(jù)包,則會(huì)被其隧道路由器處理,而其他類(lèi)型的數(shù)據(jù)包則會(huì)被遺棄,這也就表明網(wǎng)絡(luò)b只能接收來(lái)自網(wǎng)絡(luò)a的數(shù)據(jù)包,而向外輸送的數(shù)據(jù)包也只有RLOC1數(shù)據(jù)包才能通過(guò)。反之,網(wǎng)絡(luò)a同樣如此。這兩種網(wǎng)絡(luò)之間的數(shù)據(jù)轉(zhuǎn)發(fā)流程具體如下:
流程1:構(gòu)造EID1是節(jié)點(diǎn)X的源地址,EID2的LISP數(shù)據(jù)包是目的地址,并將其發(fā)送到入口隧道路由器上;
流程2:利用映射服務(wù)器,入口隧道路由器ITR能夠?qū)ID2所對(duì)應(yīng)的位置標(biāo)識(shí)RLOC2進(jìn)行查找,然后在RLOC1為源地址和RLOC2為目的地址的數(shù)據(jù)包內(nèi)將步驟1的數(shù)據(jù)包進(jìn)行封裝,并將封裝后的數(shù)據(jù)包向IP承載網(wǎng)發(fā)送[4];
流程3:數(shù)據(jù)包在被封裝之后,需要在入口隧道路由器的出口處來(lái)對(duì)ACL列表進(jìn)行驗(yàn)證,若檢驗(yàn)為RLOC2是目的地址,則數(shù)據(jù)包能夠輸送出去,直接進(jìn)入流程4,反之則遺棄;
流程4:ETR作為出口隧道路由器,在接收到封裝的數(shù)據(jù)包之后,首先應(yīng)該對(duì)其進(jìn)行ACL驗(yàn)證,若驗(yàn)證之后得出RLOC1是其源地址,則直接進(jìn)入數(shù)據(jù)包解封裝轉(zhuǎn)發(fā)程序,進(jìn)入流程5,反之則遺棄;
流程5:數(shù)據(jù)包在被解封裝之后,按照目的地址EID2將其轉(zhuǎn)發(fā)至LISP網(wǎng)絡(luò)b內(nèi)。至此,數(shù)據(jù)包全部抵達(dá)節(jié)點(diǎn)Y,整個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)流程結(jié)束。
節(jié)點(diǎn)Y到節(jié)點(diǎn)X的數(shù)據(jù)轉(zhuǎn)發(fā)流程與此相似。
這種場(chǎng)景主要適用于一個(gè)網(wǎng)絡(luò)中有許多分支網(wǎng)絡(luò),利用該方法,就可以將內(nèi)部各個(gè)網(wǎng)絡(luò)之間建立起虛擬專(zhuān)用網(wǎng),從而提高網(wǎng)絡(luò)配置。
3.2 普通LISP節(jié)點(diǎn)與另一個(gè)LISP網(wǎng)絡(luò)的虛擬專(zhuān)用網(wǎng)絡(luò)連接
場(chǎng)景假設(shè):假設(shè)LISP網(wǎng)絡(luò)a的X節(jié)點(diǎn)需要借助虛擬專(zhuān)用網(wǎng)絡(luò)來(lái)進(jìn)入網(wǎng)絡(luò)b。網(wǎng)絡(luò)a與網(wǎng)絡(luò)b的隧道路由器的網(wǎng)絡(luò)側(cè)接口分別為if0和if1,且兩個(gè)網(wǎng)絡(luò)的IP承載網(wǎng)測(cè)接口分別為if1和if0。
場(chǎng)景分析:LISP網(wǎng)絡(luò)b若要與節(jié)點(diǎn)X之間建立一個(gè)虛擬專(zhuān)用網(wǎng)絡(luò),則只有源地址為EID1的數(shù)據(jù)包才能發(fā)送到網(wǎng)絡(luò)b中,且網(wǎng)絡(luò)b所發(fā)出的數(shù)據(jù)包的目的地址也必須為EID1。對(duì)此,可以將ACL列表增添至網(wǎng)絡(luò)b的if1接口上,其列表如圖5。
就LISP網(wǎng)絡(luò)b而言,IP承載網(wǎng)的數(shù)據(jù)包在被隧道路由器接收后進(jìn)行了解封并被轉(zhuǎn)發(fā),此時(shí),若出口處的ACL控制列表檢驗(yàn)出數(shù)據(jù)包的源地址不是EID1,則會(huì)對(duì)其進(jìn)行遺棄處理。與此同時(shí),網(wǎng)絡(luò)b的數(shù)據(jù)包也會(huì)被隧道路由器接收,此時(shí),入口處的ACL控制列表則會(huì)不接收目的地址為EID1的數(shù)據(jù)包[5]。這樣一來(lái),LISP網(wǎng)絡(luò)b只會(huì)接收來(lái)自節(jié)點(diǎn)X的數(shù)據(jù)包,具體流程如下:
流程1:構(gòu)造EID1是節(jié)點(diǎn)X的源地址,EID2的LISP數(shù)據(jù)包是目的地址,并將其發(fā)送到入口隧道路由器上;
流程2:在使用映射服務(wù)器的基礎(chǔ)上,入口隧道路由器ITR能夠迅速查找出EID2所對(duì)應(yīng)的位置標(biāo)識(shí)RLOC2,之后在RLOC1為源地址和RLOC2為目的地址的數(shù)據(jù)包內(nèi)將步驟1的數(shù)據(jù)包進(jìn)行封裝,最后再將封裝后的數(shù)據(jù)包發(fā)送至IP承載網(wǎng);
流程3:當(dāng)封裝后的數(shù)據(jù)包被出口隧道路由器ETR所接收后,應(yīng)當(dāng)對(duì)其進(jìn)行解封裝工作,之后按照目的地址EID2將其轉(zhuǎn)發(fā)為內(nèi)層數(shù)據(jù)包,并使用ACL控制列表對(duì)其進(jìn)行驗(yàn)證。如驗(yàn)證結(jié)果顯示EID1是源地址,則直接進(jìn)入流暢,反之則遺棄數(shù)據(jù)包;
流程4:按照目的地址EID2,將數(shù)據(jù)包轉(zhuǎn)發(fā)至節(jié)點(diǎn)Y。至此,端到端的數(shù)據(jù)交互流程全部結(jié)束。
節(jié)點(diǎn)Y到節(jié)點(diǎn)X的數(shù)據(jù)交互流程與此相似。
這種場(chǎng)景主要適用于員工在外辦公時(shí)的網(wǎng)絡(luò)使用,這樣做既可以使用公司內(nèi)部網(wǎng)絡(luò),也可以接入外部公共網(wǎng)絡(luò)。
4 結(jié)束語(yǔ)
本文從移動(dòng)互聯(lián)網(wǎng)的發(fā)展需求為落腳點(diǎn),對(duì)基于LISP協(xié)議環(huán)境下的虛擬化方案進(jìn)行了研究,并在此基礎(chǔ)上給出了兩種優(yōu)化方案,基于LISP協(xié)議的網(wǎng)絡(luò)虛擬化具有很多優(yōu)勢(shì),例如:保證LISP節(jié)點(diǎn)能夠和其他LISP移動(dòng)之間互通等,但也有缺點(diǎn),例如對(duì)映射服務(wù)器要求較高,因此還有待進(jìn)一步研究。
參考文獻(xiàn):
[1] 江亞?wèn)|.基于IPv6的標(biāo)識(shí)承載網(wǎng)絡(luò)的關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D].東南大學(xué),2017.
[2] 張勛俊,劉亞萍,鄧文平.LISP與非LISP站點(diǎn)間交互機(jī)制研究[J].現(xiàn)代計(jì)算機(jī):專(zhuān)業(yè)版,2017(11):36-41.
[3] 許名廣,劉亞萍,鄧文平.網(wǎng)絡(luò)控制器OpenDaylight的研究與分析[J].計(jì)算機(jī)科學(xué),2015,42(S1):249-252.
[4] 張?zhí)蹶桑蔚?LISP協(xié)議下基于指針Chord的增強(qiáng)型映射系統(tǒng)設(shè)計(jì)(英文)[J].中國(guó)通信,2013,10(07):134-147.
[5] 徐暢,任勇毛,李俊.LISP-HIMS:一種基于LISP的層次化標(biāo)識(shí)映射系統(tǒng)[J].計(jì)算機(jī)科學(xué),2012,39(10):35-39.
[通聯(lián)編輯:代影]