朱健 楊庚
(南京郵電學(xué)院計算機(jī)科學(xué)與技術(shù)系 南京210003)
摘 要 本文對移動IP技術(shù)中的各種路由方案進(jìn)行了分析研究。首先,我們介紹了移動IP的功能實體和基本的通信過程;然后對三角路由和反向隧道兩種路由方案做了測試分析,并指出了他們的不足。在此基礎(chǔ)上,我們提出了一種路由優(yōu)化方案并引入了可靠的安全機(jī)制。
關(guān)鍵詞 移動IP 三角路由 反向隧道 對端代理
1 引言
現(xiàn)有的IP路由體系有一個重要的規(guī)則:路由選擇只依據(jù)目的IP地址的網(wǎng)絡(luò)部分,而不是整個IP地址,即路由是針對網(wǎng)絡(luò)的。若主機(jī)從一個子網(wǎng)移動到一個新的子網(wǎng)并保持IP地址不變,則它的IP地址就不能反映出它的當(dāng)前位置,由此引發(fā)的后果就是現(xiàn)有的IP路由體系不能把報文投遞給該主機(jī)。在這種情況下,主機(jī)必須配置一個新的屬于當(dāng)前子網(wǎng)的IP地址來反映它的新位置。而對于一個TCP連接來說,有四個元素來唯一地標(biāo)識它:源IP地址、目的IP地址、TCP源端口號、TCP目的端口號,改變其中任何一個都會導(dǎo)致TCP連接的中斷或丟失。因此,要保持移動主機(jī)移動時傳輸層的連接,必須保持IP地址不變。根據(jù)這些要求,IETF提出了移動IP技術(shù)。近年來,隨著對移動IP技術(shù)的理論探討不斷深入,人們發(fā)現(xiàn)它存在著一些不足,尤其在路由機(jī)制和安全機(jī)制方面還不能滿足現(xiàn)代通信的需求。
2 移動IP路由
2.1 基本原理
2.1.1 功能實體
移動IP定義了三個功能實體: 家鄉(xiāng)代理(HA,Home Agent)、外地代理(FA,F(xiàn)oreign Agent)和移動節(jié)點(diǎn)(MN,Mobile Node)。
。1)移動節(jié)點(diǎn)(MN):當(dāng)接入點(diǎn)從一條鏈路切換到另一條鏈路上時仍能保持所有正在進(jìn)行的通信的移動主機(jī)。它有兩個IP地址,一個是家鄉(xiāng)地址(Home address),用來標(biāo)識TCP連接的永久地址;另一個是轉(zhuǎn)交地址(COA,Care of Address),是當(dāng)移動節(jié)點(diǎn)漫游到其他子網(wǎng)時所獲得的供IP包選路使用的臨時地址。轉(zhuǎn)交地址可以由外地代理提供,也可以由外地網(wǎng)絡(luò)的DHCP服務(wù)器分配。
。2)家鄉(xiāng)代理(HA):移動節(jié)點(diǎn)本地網(wǎng)絡(luò)上的路由器。其作用是負(fù)責(zé)維護(hù)移動節(jié)點(diǎn)當(dāng)前的位置信息,并且把送往移動節(jié)點(diǎn)家鄉(xiāng)地址的數(shù)據(jù)包通過隧道發(fā)往移動節(jié)點(diǎn)的轉(zhuǎn)交地址!
(3)外地代理(FA):移動節(jié)點(diǎn)當(dāng)前連接到的外地網(wǎng)絡(luò)上的路由器。其作用是在為移動節(jié)點(diǎn)提供路由服務(wù),并且對經(jīng)家鄉(xiāng)代理封裝后發(fā)給移動節(jié)點(diǎn)的數(shù)據(jù)包進(jìn)行解封裝,然后轉(zhuǎn)發(fā)給移動節(jié)點(diǎn)。
2.1.2 工作機(jī)制
移動IP的工作機(jī)制如下。
。1)家鄉(xiāng)代理和外地代理周期性發(fā)廣播報文,以此來向它們所在的網(wǎng)絡(luò)中的節(jié)點(diǎn)宣告它們的存在。
。2)移動節(jié)點(diǎn)收到廣播報文后,檢查報文的內(nèi)容來判斷它所連接的是家鄉(xiāng)網(wǎng)絡(luò)還是外地網(wǎng)絡(luò)。當(dāng)連在家鄉(xiāng)網(wǎng)絡(luò)上時,采用傳統(tǒng)的IP通信方式而不使用移動IP的功能。
。3)當(dāng)移動節(jié)點(diǎn)移動到外地網(wǎng)絡(luò)時,它可以從當(dāng)前網(wǎng)絡(luò)的外地代理發(fā)出的代理廣播消息中獲得轉(zhuǎn)交地址,或者通過DHCP服務(wù)器配置獲得,但在目前的移動IPv4中一般采用外地代理轉(zhuǎn)交地址。
。4)移動節(jié)點(diǎn)通過外地代理向家鄉(xiāng)代理注冊轉(zhuǎn)交地址,注冊可以通過移動IP中定義的注冊消息來完成。
。5)家鄉(xiāng)代理對移動節(jié)點(diǎn)的注冊請求進(jìn)行鑒權(quán)、認(rèn)證,認(rèn)證通過則發(fā)注冊成功消息到移動IP的轉(zhuǎn)交地址,外地代理收到消息后再轉(zhuǎn)發(fā)給移動節(jié)點(diǎn)。
(6)此后所有發(fā)往移動節(jié)點(diǎn)的數(shù)據(jù)會先發(fā)往移動節(jié)點(diǎn)的家鄉(xiāng)網(wǎng)絡(luò),然后由家鄉(xiāng)代理通過IP in IP隧道封裝,發(fā)往移動節(jié)點(diǎn)注冊的轉(zhuǎn)交地址。
(7)外地代理收到數(shù)據(jù)包后先解封裝,再轉(zhuǎn)發(fā)給移動節(jié)點(diǎn)。而移動節(jié)點(diǎn)發(fā)往與它通信的其他主機(jī)的數(shù)據(jù)會直接經(jīng)過外地代理轉(zhuǎn)發(fā)到相應(yīng)主機(jī)。這就形成了一個“三角路由”。
2.2 反向隧道
目前,在很多局域網(wǎng)中采用了入口過濾路由器來防止拒絕服務(wù)攻擊,即路由器在轉(zhuǎn)發(fā)數(shù)據(jù)包之前檢查IP數(shù)據(jù)報的源地址域,對于來自內(nèi)部網(wǎng)絡(luò)而源地址不是內(nèi)部網(wǎng)絡(luò)的報文,路由器會直接將它丟棄。采用這樣的方法對傳統(tǒng)的IP網(wǎng)絡(luò)不會帶來影響,但是將導(dǎo)致移動節(jié)點(diǎn)不能進(jìn)行正常通信。因為當(dāng)移動節(jié)點(diǎn)連接在外地網(wǎng)絡(luò)上時,它發(fā)出的報文要經(jīng)過外地網(wǎng)絡(luò)的路由器。路由器會檢查報文的源地址和目的地址,而報文的源地址是移動節(jié)點(diǎn)的家鄉(xiāng)地址不屬于本網(wǎng)絡(luò),于是報文被丟棄。
為了解決這個問題,IETF在移動IP中引入了反向隧道技術(shù)。反向隧道是指以移動節(jié)點(diǎn)的轉(zhuǎn)交地址為源地址,以家鄉(xiāng)代理為目的地址的隧道。如果移動節(jié)點(diǎn)要向通信對端發(fā)送數(shù)據(jù)包,首先要將數(shù)據(jù)包送到外地代理,并由外地代理進(jìn)行IP in IP封裝,然后通過隧道發(fā)送給家鄉(xiāng)代理,再由家鄉(xiāng)代理轉(zhuǎn)發(fā)給通信對端。這樣一來,對外地網(wǎng)絡(luò)的路由器來講,它收到的數(shù)據(jù)包的源地址是移動節(jié)點(diǎn)的轉(zhuǎn)交地址,轉(zhuǎn)交地址屬于路由器所在的網(wǎng)絡(luò)。所以,數(shù)據(jù)包的源地址和目的地址在拓?fù)渖隙际钦_的,不會被丟棄。
反向隧道技術(shù)的引入解決了入口過濾路由器給移動IP通信帶來的問題,但是它對通信的速率產(chǎn)生了一定的影響。我們搭建了一個移動IP模擬平臺,并對三角路由和反向隧道的傳輸速率做了測試,表1是我們所做的一些測試結(jié)果。
可以看出,當(dāng)移動主機(jī)漫游到外地網(wǎng)絡(luò)時,如果使用三角路由,ping程序中的ICMP包平均往返時間從0.827ms激增至2.598ms,網(wǎng)絡(luò)延遲明顯增加。這是因為在隧道的起點(diǎn)和終點(diǎn)處對數(shù)據(jù)包的封裝和解封裝會引入延遲,降低速度,更為重要的一個原因是,傳統(tǒng)的移動IP使用三角路由,即通信節(jié)點(diǎn)發(fā)送數(shù)據(jù)包到移動節(jié)點(diǎn)時,需要通過其家鄉(xiāng)代理,而移動節(jié)點(diǎn)根據(jù)標(biāo)準(zhǔn)IP路由規(guī)則將數(shù)據(jù)包直接發(fā)送到通信節(jié)點(diǎn),這個三角形的路由過程與直接路由相比,網(wǎng)絡(luò)開銷大大增加。另外,三角路由還存在一些潛在的危害,例如增加引入流量的時候容易引起家鄉(xiāng)代理處的路由瓶頸。而反向隧道的通信效率更低,因為它比三角路由增加了更多封裝、解封過程,而且數(shù)據(jù)包多走了從外地代理到家鄉(xiāng)代理的通信鏈路。
2.3 路由優(yōu)化
根據(jù)測試結(jié)果可以看出采用三角路由和反向隧道會產(chǎn)生一定延遲,加重網(wǎng)絡(luò)負(fù)擔(dān),所以它們都不是好的報文傳輸方式。實際上,我們可以很容易想到最佳的路由方案就是讓移動節(jié)點(diǎn)和通信對端之間直接進(jìn)行通信,而不經(jīng)過家鄉(xiāng)代理轉(zhuǎn)發(fā)。
要實現(xiàn)移動節(jié)點(diǎn)和通信對端之間直接通信,通信對端必須要記錄下移動節(jié)點(diǎn)的轉(zhuǎn)交地址,并且必須要將移動節(jié)點(diǎn)的轉(zhuǎn)交地址和家鄉(xiāng)地址對應(yīng)。通常,通信對端是采用綁定表來記錄和它通信的移動節(jié)點(diǎn)的信息,這種表有兩個表項,分別是移動節(jié)點(diǎn)的家鄉(xiāng)地址和轉(zhuǎn)交地址。當(dāng)通信對端有能力記錄移動節(jié)點(diǎn)的轉(zhuǎn)交地址后,剩下的問題就是如何將轉(zhuǎn)交地址告訴它,這個任務(wù)通常是由家鄉(xiāng)代理來完成的。在通信對端不知道移動節(jié)點(diǎn)的轉(zhuǎn)交地址時,它就會向移動節(jié)點(diǎn)的家鄉(xiāng)地址發(fā)送數(shù)據(jù)包,這個數(shù)據(jù)包會路由到移動節(jié)點(diǎn)的家鄉(xiāng)網(wǎng)絡(luò)。家鄉(xiāng)代理收到這個數(shù)據(jù)包后就會利用和外地代理之間的隧道發(fā)往外地代理,然后它會檢查移動節(jié)點(diǎn)的注冊請求中的P比特數(shù),看移動節(jié)點(diǎn)是否允許將轉(zhuǎn)交地址發(fā)給其他節(jié)點(diǎn)。如果允許,則發(fā)綁定更新報文給通信對端。綁定更新報文中包括了以下一些信息:移動節(jié)點(diǎn)的家鄉(xiāng)地址、轉(zhuǎn)交地址以及一個生存時間值。其中生存時間值用于告訴通信對端多長時間要重新更新綁定表表項,如果為零,則表示要將有關(guān)這個移動節(jié)點(diǎn)的表項刪除,也就意味著通信對端不能和移動節(jié)點(diǎn)用優(yōu)化的路由通信,而只能采用三角路由或反向隧道。
采用這種方案,顯然可以提高數(shù)據(jù)包的傳輸效率,但是值得注意的是這對與移動節(jié)點(diǎn)通信的每一臺主機(jī)都提出了很高的要求。因為這些主機(jī)各自需要維護(hù)一個綁定表,也就是說要對Internet上的幾乎所有的主機(jī)的軟件做出修改,這是不太現(xiàn)實的。
為此,我們對上述方法進(jìn)行了改進(jìn)。在同一個子網(wǎng)中,我們選擇用一個專門的節(jié)點(diǎn)來維護(hù)這個子網(wǎng)中所有其他主機(jī)的綁定表,姑且把它叫做對端代理CA(Correspondent Agent), 與通信對端(Corres-
pondent Node)對應(yīng)。這樣一來,如果這個子網(wǎng)中的某一臺主機(jī)A要與一個連接在外地鏈路上的移動節(jié)點(diǎn)B通信,它會首先發(fā)數(shù)據(jù)包到移動節(jié)點(diǎn)B的家鄉(xiāng)網(wǎng)絡(luò),正常情況下B的家鄉(xiāng)代理會發(fā)綁定更新消息給A,告訴它移動節(jié)點(diǎn)B當(dāng)前的轉(zhuǎn)交地址。A然后發(fā)請求給對端代理,請求建立綁定表。以后,從A發(fā)出的數(shù)據(jù)包就根據(jù)B的轉(zhuǎn)交地址直接發(fā)往移動節(jié)點(diǎn)所連接的外地鏈路。
這種改進(jìn)方案大大縮短了傳輸路徑,減小了傳輸延遲,可為綜合業(yè)務(wù)提供很好的支持,減輕了家鄉(xiāng)代理處的負(fù)擔(dān)。更關(guān)鍵的是,這種方案的實現(xiàn)并不是很困難。
對于優(yōu)化的路由來說,最大的問題在于它的安全性。相對與傳統(tǒng)的移動IP來講,它需要對更多的實體進(jìn)行認(rèn)證。為了提高路由優(yōu)化后移動IP網(wǎng)絡(luò)中實體之間通信的安全性,我們采用了IPSec協(xié)議對數(shù)據(jù)進(jìn)行封裝。對家鄉(xiāng)代理、外地代理和對端代理三對實體間的通信采用IPSec中的ESP協(xié)議封裝,選擇通道模式。
采用通道模式的原因是可以穿過家鄉(xiāng)網(wǎng)絡(luò)和外地網(wǎng)絡(luò)的防火墻,而且可以對整個IP數(shù)據(jù)包進(jìn)行保護(hù)。假如通信對端要發(fā)數(shù)據(jù)包到移動節(jié)點(diǎn),則由對端代理進(jìn)行封裝。外層IP頭的源IP地址為對端代理地址,目的地址為外地代理的地址。內(nèi)層IP頭的源IP地址為通信對端地址,而目的地址為移動節(jié)點(diǎn)的家鄉(xiāng)地址。采用ESP協(xié)議可以確保IP數(shù)據(jù)包的機(jī)密性、數(shù)據(jù)的完整性以及對數(shù)據(jù)源的身份驗證。
在這三對實體間采用IPSec加密可以保證數(shù)據(jù)包在Internet上的安全傳遞,再加上移動IP自身的認(rèn)證、鑒權(quán)以及加密機(jī)制,已經(jīng)可以滿足移動IP通信的安全性要求。
3 結(jié)束語
通過以上的路由優(yōu)化方案,縮短了傳輸路徑,減小了傳輸延遲,顯著提高了移動IP的通信效率,解決家鄉(xiāng)代理網(wǎng)絡(luò)瓶頸的問題,保證了移動IP用戶的業(yè)務(wù)質(zhì)量。而且,還引入了可靠的安全機(jī)制,保證了通信的安全。我們相信這種方案的提出,會對移動IP技術(shù)的發(fā)展產(chǎn)生積極的意義。
----《中國數(shù)據(jù)通信》