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