李晨琛++申圣
[摘 要]IPv4、IPv6過(guò)渡技術(shù)是當(dāng)前網(wǎng)絡(luò)技術(shù)領(lǐng)域研究的熱點(diǎn)之一,過(guò)渡技術(shù)在網(wǎng)絡(luò)進(jìn)化的過(guò)程中已不可或缺。DS-Lite技術(shù)是一種為IPv6用戶提供IPv4網(wǎng)絡(luò)接入服務(wù)的過(guò)渡技術(shù),具有效率高、適用范圍廣等優(yōu)勢(shì),但DS-Lite技術(shù)對(duì)于設(shè)備穩(wěn)定性及工作效率有較高的要求。在大量用戶的情況下,容易出現(xiàn)通信時(shí)延增大,數(shù)據(jù)包轉(zhuǎn)發(fā)效率降低的問(wèn)題。本文結(jié)合現(xiàn)有文獻(xiàn),分析DS-Lite技術(shù)的不足,并根據(jù)DS-Lite技術(shù)的缺點(diǎn)提出域內(nèi)隧道功能的解決方案。
[關(guān)鍵詞]過(guò)渡技術(shù);DS-Lite技術(shù);隧道技術(shù)
doi:10.3969/j.issn.1673 - 0194.2017.16.086
[中圖分類號(hào)]TP393 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1673-0194(2017)16-0-02
現(xiàn)代網(wǎng)絡(luò)的不同參與者對(duì)IPv6部署的積極性不同,工業(yè)界,包括某些大型應(yīng)用服務(wù)提供商,需要耗費(fèi)較多資源才能對(duì)IP協(xié)議進(jìn)行升級(jí)。針對(duì)此類問(wèn)題,學(xué)術(shù)界提出了過(guò)渡技術(shù),希望通過(guò)過(guò)渡技術(shù)對(duì)IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)進(jìn)行融合,最終將整個(gè)網(wǎng)絡(luò)全部平滑升級(jí)為IPv6網(wǎng)絡(luò)。過(guò)渡技術(shù)一般分為雙棧、隧道、翻譯等方式,無(wú)論是哪種技術(shù)都涉及一定的復(fù)雜度和相對(duì)較多的資源消耗,如何達(dá)到最低的過(guò)渡成本,已成為工程部署上的難題。
DS-Lite過(guò)渡技術(shù),結(jié)合三種基礎(chǔ)過(guò)渡方式:雙棧、隧道、翻譯。其中,AFTR作為隧道集中器,是整個(gè)DS-Lite的核心設(shè)備,承擔(dān)地址轉(zhuǎn)換功能的功能,但AFTR設(shè)備也有其不足之處,如DS-Lite基于星型拓?fù)浼軜?gòu),對(duì)AFTR的依賴性是阻礙DS-Lite發(fā)展的因素之一。
1 主機(jī)模式下DS-Lite域內(nèi)隧道設(shè)計(jì)模型
1.1 DS-Lite主機(jī)模式應(yīng)用場(chǎng)景
DS-Lite主機(jī)模式適用于新型大范圍的網(wǎng)絡(luò)部署,可以針對(duì)具有雙棧特點(diǎn)的網(wǎng)絡(luò)設(shè)備,DS-Lite的應(yīng)用范圍不局限于固定網(wǎng)絡(luò),還可以應(yīng)用于移動(dòng)網(wǎng)絡(luò)。主機(jī)模式中,用戶終端發(fā)起隧道,AFTR作為隧道終點(diǎn)和聚集點(diǎn),負(fù)責(zé)數(shù)據(jù)報(bào)文的解析和地址轉(zhuǎn)換,雙棧用戶配以私有IPv4地址,通過(guò)隧道進(jìn)行通信,在AFTR處,通過(guò)用戶終端的隧道地址端點(diǎn)來(lái)區(qū)分私有IPv4地址相同的用戶。
典型DS-Lite主機(jī)模式中,由于AFTR設(shè)備需進(jìn)行大量的網(wǎng)絡(luò)地址協(xié)議轉(zhuǎn)換,因此,其轉(zhuǎn)換速度和資源利用率成為整個(gè)網(wǎng)絡(luò)的性能“瓶頸”。
本設(shè)計(jì)是對(duì)典型的DS-Lite主機(jī)模式進(jìn)行改進(jìn)。如圖1所示,CPE_A與CPE_B屬于一個(gè)AFTR域內(nèi),而CPE_C與CPE_D屬于另一個(gè)AFTR域內(nèi),IPv4網(wǎng)絡(luò)表示域外通信流量。該通信流量先經(jīng)由AFTR的地址及端口轉(zhuǎn)換,再通過(guò)路由器連接到相應(yīng)的AFTR設(shè)備上,隨后再進(jìn)行地址翻譯和數(shù)據(jù)包的封裝,再發(fā)送到目的主機(jī)。此外,域外通信包括典型的終端與IPv4服務(wù)器通信,通信經(jīng)由AFTR設(shè)備進(jìn)行翻譯及解封裝,依據(jù)純IPv4網(wǎng)絡(luò)中的路由表轉(zhuǎn)發(fā)至相應(yīng)的IPv4服務(wù)提供商主機(jī)上。
其次,CPE_A與CPE_B間表示終端域內(nèi)通信,域內(nèi)通信旨在將域內(nèi)的流量直接定向到目的主機(jī)上,不經(jīng)由AFTR翻譯及解封,減輕了AFTR處的負(fù)載及減少了網(wǎng)絡(luò)中的流量,降低了用戶的通信延遲。通過(guò)這樣的方式,降低了整個(gè)網(wǎng)絡(luò)的負(fù)載。
1.2 DS-Lite網(wǎng)絡(luò)參數(shù)自動(dòng)配置設(shè)計(jì)
本設(shè)計(jì)主要對(duì)Android終端進(jìn)行適應(yīng)性修改和功能增強(qiáng)。通過(guò)在底層代碼修改DHCPv6邏輯代碼,使用戶終端獲得IPv6地址以及相關(guān)網(wǎng)絡(luò)參數(shù)。通過(guò)“腳步”對(duì)網(wǎng)絡(luò)進(jìn)行配置和查詢,使客戶端配置透明。
自動(dòng)配置是IPv6中一個(gè)重要的特性,在本項(xiàng)目中,DHCPv6安裝在Android移動(dòng)端系統(tǒng)中,從網(wǎng)絡(luò)自動(dòng)獲取需要使用的相關(guān)參數(shù),本地自動(dòng)配置。DHCPv6雖然簡(jiǎn)單,且其具有信息自定義機(jī)制,通過(guò)配置文檔,可以實(shí)現(xiàn)自定義網(wǎng)絡(luò)及操作系統(tǒng)的自動(dòng)配置,DHCPv6這種特性能夠更好地實(shí)現(xiàn)移動(dòng)互聯(lián)網(wǎng)用戶的前期接入。因此,將DHCPv6移植到移動(dòng)終端,實(shí)現(xiàn)通過(guò)DHCPv6選項(xiàng)(DHCPv6 option)傳遞網(wǎng)絡(luò)參數(shù),并支持移動(dòng)終端自動(dòng)配置是有相應(yīng)的應(yīng)用場(chǎng)景及實(shí)踐意義的。
修改后的DHCPv6選項(xiàng),按照傳統(tǒng)的點(diǎn)分十進(jìn)制,配合子網(wǎng)長(zhǎng)度定義得到地址格式,由于該格式化表達(dá)方式已經(jīng)被廣泛應(yīng)用于當(dāng)前網(wǎng)絡(luò)的通信過(guò)程中,因此,使用同一套地址格式可以使設(shè)備具有更好的兼容性。
在Linux系統(tǒng)中,Shell腳本具有高度自動(dòng)化功能。在Shell腳本的幫助下,可以實(shí)現(xiàn)對(duì)用戶透明,不需要額外配置。本設(shè)計(jì)使用腳本完成自動(dòng)化設(shè)計(jì)模式。Android本地化腳本首先嘗試開(kāi)啟DHCPv6客戶端,把從DHCPv6服務(wù)器接收到的參數(shù)配置到相應(yīng)的接口上,隨后將上文所述的地址進(jìn)行無(wú)狀態(tài)轉(zhuǎn)換,并將相應(yīng)的IPv4地址配置到物理接口,并運(yùn)行開(kāi)啟隧道的相關(guān)配置,使用戶終端能夠自動(dòng)建立DS-Lite隧道,同時(shí)將IPv4地址存入Android系統(tǒng)屬性中,用于后續(xù)應(yīng)用的調(diào)用。
2 基于Android的DS-Lite隧道的實(shí)現(xiàn)
整個(gè)Android的DS-Lite隧道的實(shí)現(xiàn)分為兩部分,第一部分是服務(wù)器,路由的配置的實(shí)現(xiàn);第二部分是用戶終端的實(shí)現(xiàn)。
服務(wù)器位置如圖1所示,從圖1可以看出,內(nèi)容提供給服務(wù)器設(shè)置在IPv4網(wǎng)絡(luò)中,用戶設(shè)備在IPv6網(wǎng)段,同時(shí),AFTR設(shè)備與用戶終端并不處于同一網(wǎng)段中,中間以路由器進(jìn)行分隔,跨越多個(gè)網(wǎng)絡(luò),這樣的部署更加具有普遍性。最后,在網(wǎng)絡(luò)拓?fù)渲?,AFTR設(shè)備的兩側(cè)網(wǎng)絡(luò)制式必須不同,其中一側(cè)為純IPv6網(wǎng)絡(luò),另一側(cè)為純IPv4網(wǎng)絡(luò)。
本設(shè)計(jì)的重點(diǎn)是針對(duì)移動(dòng)用戶設(shè)備的修改。用戶設(shè)備是基于Android操作系統(tǒng)的。通過(guò)交叉編譯工具鏈的工作原理,使用NDK進(jìn)行交叉編譯,在系統(tǒng)底層對(duì)DHCPv6進(jìn)行移植,實(shí)現(xiàn)通過(guò)DHCPv6傳遞網(wǎng)絡(luò)參數(shù),支持自動(dòng)化配置,修改后的Android系統(tǒng)的網(wǎng)絡(luò)配置更加透明化、智能化、自動(dòng)化。
另外,Android還需要重點(diǎn)實(shí)現(xiàn)域內(nèi)隧道功能模塊。Linux系統(tǒng)內(nèi)核本身已經(jīng)提供了一個(gè)IPv4-in-IPv6隧道功能,此功能可以對(duì)從上層來(lái)的使用隧道功能的報(bào)文報(bào)頭封裝,并構(gòu)造相應(yīng)的數(shù)據(jù)報(bào)文。整個(gè)隧道處理發(fā)生報(bào)文的流程如圖2所示。
其中,增加IPv6報(bào)頭的部分由內(nèi)核本身提供的ip4ip6_tnl_xmit函數(shù)執(zhí)行,之后,在發(fā)送函數(shù)ip6_tnl_xmit2中,增加判斷功能和提取地址功能。本設(shè)計(jì)擴(kuò)展了ip6_tnl_xmit2本身的封裝功能,由于需要提取IPv4報(bào)頭中的信息,函數(shù)會(huì)首先對(duì)IPv4報(bào)頭中的目的地址進(jìn)行提取,并對(duì)比目的地址信息與私有IPv4地址信息,當(dāng)發(fā)現(xiàn)目的地址與本機(jī)不屬于同一個(gè)AFTR域時(shí),執(zhí)行函數(shù)本身的默認(rèn)流程會(huì)將AFTR的隧道端點(diǎn)作為IPv6數(shù)據(jù)包頭的目的地址,完成典型的DS-Lite的通信過(guò)程。
3 基于Android的DS-Lite方案的測(cè)試
搭建測(cè)試環(huán)境的目的是測(cè)試和驗(yàn)證基于Android設(shè)備的DS-Lite的有效性和正確性。測(cè)試拓?fù)淙鐖D3所示。
測(cè)試拓?fù)渲?,CPE_A 和CPE_B終端用戶均處于2001:da8:
202:102::/64網(wǎng)段。其中,CPE_A配置有隧道功能,CPE_B作為參照物沒(méi)有配置隧道,路由器作為IPv6中的默認(rèn)網(wǎng)關(guān),起到模擬真實(shí)環(huán)境的作用,AFTR設(shè)備的IPv6位于IPv6和IPv4網(wǎng)絡(luò)的交界處,其中,IPv6網(wǎng)絡(luò)的地址前綴為2001:da8:202:103::/64;IPv4網(wǎng)絡(luò)地址前綴為202.204.22.0/24;AFTR的虛擬DS-Lite隧道端點(diǎn)地址為2001:da8:202:102::2。測(cè)試過(guò)程為:首先,通過(guò)腳本對(duì)DS-Lite進(jìn)行配置,其次,在配置有DS-Lite功能及域內(nèi)隧道模塊用戶終端CPE_A執(zhí)行ping和ping6命令,模擬用戶進(jìn)行網(wǎng)絡(luò)訪問(wèn)IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)。
主要參考文獻(xiàn)
[1]趙金萍,熊君星,羅華群.對(duì)IPv4到IPv6協(xié)議轉(zhuǎn)換技術(shù)的研究[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2007(10).
[2]李濤.IPv4向IPv6過(guò)渡策略的分析及應(yīng)用[J].計(jì)算機(jī)與網(wǎng)絡(luò),2007(9).endprint